Tulong sa LibreOffice 25.8
Ang TextStream Ang serbisyo ay ginagamit upang sunod-sunod na basahin at isulat ang mga file na binuksan o nilikha gamit ang ScriptForge.FileSystem serbisyo.
Ang mga pamamaraan OpenTextFile at CreateTextFile mula sa FileSystem serbisyo ay nagbabalik ng isang halimbawa ng TextStream serbisyo.
Maaaring tukuyin ng user ang mga line delimiter. Sa mga pagpapatakbo ng pag-input, sinusuportahan ang CR, LF o CR+LF. Sa mga pagpapatakbo ng output, ang default na line delimiter ay ang ginagamit ng operating system.
Ang line delimiter para sa operating system kung saan ang macro ay isinasagawa ay maaaring ma-access gamit ang SF_String.sfNEWLINE ari-arian.
Ang lahat ng mga operasyong kailangan upang magbasa mula o magsulat sa isang file (bukas, basahin/magsulat at isara) ay ipinapalagay na mangyayari sa parehong macro run.
Ang mga halimbawa sa ibaba sa Basic at Python ay gumagamit ng OpenTextFile paraan upang lumikha ng isang halimbawa ng TextStream Serbisyo.
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim FSO As Variant
    FSO = CreateScriptService("FileSystem")
    Set myFile = FSO.OpenTextFile("C:\Temp\ThisFile.txt", FSO.ForReading)
  Dapat na sarado ang file gamit ang CloseFile pamamaraan pagkatapos maisakatuparan ang lahat ng read or write operations:
    myFile.CloseFile()
  Opsyonal, ang mga mapagkukunang ginagamit ng TextStream halimbawa ay maaaring ilabas gamit ang Itapon paraan:
    Set myFile = myFile.Dispose()
  Ang mga pamamaraan sa TextStream ang serbisyo ay kadalasang nakabatay sa XTextInputStream at XTextOutputStream Mga interface ng UNO.
    from scriptforge import CreateScriptService
    fs = CreateScriptService("FileSystem")
    myFile = fs.OpenTextFile(r"C:\Temp\ThisFile.txt", fs.ForReading)
    # ...
    myFile.CloseFile()
    myFile = myFile.Dispose()
  | Pangalan | Readonly | Type | Mga nilalaman | 
|---|---|---|---|
| AtEndOfStream | Mayroon | Boolean | Ginagamit sa read mode. A totoo ang halaga ay nagpapahiwatig na ang dulo ng file ay naabot na. Ang isang pagsubok gamit ang property na ito ay dapat mauna sa mga tawag sa ReadLine paraan. | 
| Encoding | Mayroon | String | Ang set ng character na gagamitin. Ang default na encoding ay "UTF-8". | 
| FileName | Mayroon | String | Ibinabalik ang pangalan ng kasalukuyang file alinman sa format ng URL o sa format ng native na operating system, depende sa kasalukuyang halaga ng FileNaming ari-arian ng FileSystem serbisyo. | 
| IOMode | Mayroon | String | Isinasaad ang input/output mode. Ang mga posibleng value ay "READ", "WRITE" o "APPEND". | 
| Line | Mayroon | Long | Ibinabalik ang bilang ng mga linyang nabasa o naisulat sa ngayon. | 
| NewLine | Hindi | String | Itinatakda o ibinabalik ang kasalukuyang delimiter na ilalagay sa pagitan ng dalawang magkasunod na nakasulat na linya. Ang default na halaga ay ang native line delimiter sa kasalukuyang operating system. | 
Upang matuto nang higit pa tungkol sa mga pangalan ng set ng character, bisitahin ang IANA's Character Set pahina. Magkaroon ng kamalayan na hindi ipinapatupad ng LibreOffice ang lahat ng umiiral na set ng character.
| Listahan ng Mga Paraan sa Serbisyo ng TextStream | ||
|---|---|---|
Isinasara ang kasalukuyang input o output stream at binibigyan ng laman ang output buffer kung may kaugnayan. Nagbabalik totoo kung matagumpay na naisara ang file.
myFile.CloseFile(): bool
Ibinabalik ang lahat ng natitirang linya sa stream ng teksto bilang isang string. Hindi inaalis ang mga line break.
Ang resultang string ay maaaring hatiin sa mga linya alinman sa pamamagitan ng paggamit ng Hatiin built-in Basic function kung ang line delimiter ay kilala, o may SF_String.SplitLines paraan.
Para sa malalaking file, gamit ang Basahin Lahat Ang pamamaraan ay nag-aaksaya ng mga mapagkukunan ng memorya. Sa ganitong mga kaso, inirerekumenda na basahin ang file sa bawat linya gamit ang ReadLine paraan.
myFile.ReadAll(): str
Isaalang-alang ang text file na "Students.txt" na may mga sumusunod na nilalaman (isang pangalan sa bawat linya):
    Herbie Peggy
    Hardy Jarrett
    Edith Lorelle
    Roderick Rosamund
    Placid Everette
  Ang mga halimbawa sa ibaba sa Basic at Python ay gumagamit ng Basahin Lahat at SplitLines mga pamamaraan upang basahin ang mga nilalaman ng file sa isang hanay ng mga string:
    'Naglo-load ng serbisyo ng FileSystem
    Dim FSO : FSO = CreateScriptService("FileSystem")
    'Nagbubukas ng text file na may mga pangalang babasahin
    Dim inputFile as Object
    Set inputFile = FSO.OpenTextFile("/home/user/Documents/Students.txt")
    'Binabasa ang lahat ng nilalaman sa input file bilang isang string
    Dim allData as String
    allData = inputFile.ReadAll()
    'Splis ang string sa isang array
    Dim arrNames as Variant
    arrNames = SF_String.SplitLines(allData)
    ' (...)
    inputFile.CloseFile()
  
    fs = CreateScriptService("FileSystem")
    inputFile = fs.OpenTextFile("/home/user/Documents/Students.txt")
    allData = inputFile.ReadAll()
    arrNames = allData.split(inputFile.NewLine)
    # ...
    inputFile.CloseFile()
  Ibinabalik ang susunod na linya sa stream ng teksto bilang isang string. Ang mga line break ay tinanggal mula sa ibinalik na string.
Ang AtEndOfStream dapat mauna ang pagsubok sa ReadLine pamamaraan tulad ng sa halimbawa sa ibaba.
Ang isang error ay itataas kung ang AtEndOfStream ay naabot noong nakaraan ReadLine o SkipLine tawag sa pamamaraan.
myFile.ReadLine(): str
    Dim sLine As String
    Do While Not myFile.AtEndOfStream
        sLine = myFile.ReadLine()
        ' (...)
    Loop
  
    while not myFile.AtEndOfStream:
        sLine = myFile.ReadLine()
        # ...
  Nilalaktawan ang susunod na linya sa input stream kapag nagbabasa ng a TextStream file.
Ang pamamaraang ito ay maaaring magresulta sa AtEndOfStream itinakda sa totoo .
myFile.SkipLine()
Sumulat ng isang tinukoy na bilang ng mga walang laman na linya sa output stream.
myFile.WriteBlankLines(lines: int)
mga linya : Ang bilang ng mga walang laman na linya na isusulat sa file.
Isinulat ang ibinigay na string sa output stream bilang isang linya.
Ang karakter na tinukoy sa BagongLine Ang ari-arian ay ginagamit bilang line delimiter.
myFile.WriteLine(line: str)
linya : Ang linyang isusulat, maaaring walang laman.
Ang mga halimbawa sa ibaba sa Basic at Python ay lumikha ng isang text file sa CSV na format kung saan ang bawat linya ay naglalaman ng isang halaga at ang parisukat nito hanggang lastValue ay naabot.
    Sub SquaredValuesFile(lastValue as Integer)
        'Isinasagawa ang Serbisyo ng FileSystem
        Dim FSO as Variant : FSO = CreateScriptService("FileSystem")
        'Gumagawa ng text file
        Dim myFile as Variant : myFile = FSO.CreateTextFile("/home/user/Documents/squares.csv")
        'Isinulat ang Halaga at Halaga na parisukat, na pinaghihiwalay ng ";"
        Dim value as Integer
        myFile.WriteLine("Value;Value Squared")
        For value = 1 To lastValue
            myFile.WriteLine(value & ";" & value ^ 2)
        Next value
        'Isinasara ang file at mga libreng mapagkukunan
        myFile.CloseFile()
        Set myFile = myFile.Dispose()
    End Sub
  
    def squared_values_file(lastValue):
        fs = CreateScriptService("FileSystem")
        myFile = fs.CreateTextFile("/home/user/Documents/squares.csv")
        myFile.WriteLine("Value;Value Squared")
        for value in range(1, lastValue + 1):
            myFile.WriteLine("{};{}".format(value, value ** 2))
        myFile.CloseFile()
        myFile = myFile.Dispose()