Edukiak
Indizea 🔎︎

# ScriptForge.TextStream zerbitzua

TextStream zerbitzua ScriptForge.FileSystem zerbitzuaren bidez ireki edo sortu diren fitxategiak sekuentzialki irakurtzeko edo idazteko erabiltzen da.

FileSystem zerbitzuaren OpenTextFile eta CreateTextFile metodoek TextStream zerbitzuaren instantzia bat itzultzen dute.

Erabiltzaileak lerro-mugatzaileak zehaztu ditzakte. Sarrerako eragiketetan, CR, LF edo CR+LF onartzen dira. Irteerako eragiketetan, sistema eragileak erabiltzen duen lerro-mugatzailea erabiliko da modu lehenetsian.

Makroa exekutatzen ari den sistema eragilearen lerro-mugatzailea atzitzeko, erabili SF_String.sfNEWLINE propietatea.

Fitxategi bat irakurtzeko edo idazteko behar diren eragiketa guztiak (ireki, irakurri/idatzi eta itxi) makroa exekutatzen den unean gertatzen direla suposatzen da.

## Zerbitzuaren instantzia sortzea

Beheko kode-zatiak OpenTextFile metodoa darabil TextStream zerbitzuaren instantzia bat sortzeko.

            GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
            Dim FSO As Variant
            FSO = CreateScriptService("FileSystem")
            Set myFile = FSO.OpenTextFile("C:\Temp\ThisFile.txt", FSO.ForReading)

Zerbitzu hau erabat onartuta dago bai Basic bai Python lengoaietan. Adibide guztiak Basic programazio-lengoaian eman dira, baina erraz bihurtu daitezke Python lengoaiara.

Fitxategia itxi egin behar da, CloseFile metodoa erabilita, irakurtzeko edo idazteko eragiketa guztiak exekutatu ondoren:

          myFile.CloseFile()

Aukeran, TextStream instantziak erabilitako baliabideak askatu egin daitezke Dispose metodoaren bidez:

          Set myFile = myFile.Dispose()

TextStream zerbitzuko metodoak XTextInputStream eta XTextOutputStream UNO interfazeetan daude oinarrituta gehien bat.

## Propietateak

Izena | Irakurtzeko soilik | Mota | Deskribapena
AtEndOfStream | Bai | Boolean | Irakurtzeko moduan erabilia. True balioak adierazten du fitxategiaren amaiera iritsi dela. Propietate hau darabilen proba bat erabili beharko litzateke ReadLine metodoari egindako deien aurretik.
Encoding | Bai | String | Erabiliko den karaktere-jokoa. Kodeketa lehentsia "UTF-8" da.
FileName | Bai | String | Uneko fitxategiaren izena URL formatuan edo sistema eragilearen jatorrizko formatuan itzultzen du, FileSystem zerbitzuaren FileNaming propietatearen balioa zein den kontuan hartuta.
IOMode | Bai | String | Sarrerako/irteerako modua adierazten du. Balio posibleak "READ", "WRITE" edo "APPEND" dira.
Line | Bai | Long | Momentura arte irakurritako edo idatzitako lerro kopurua itzultzen du.
NewLine | Ez | String | Elkarren jarraian idatzitako bi lerroren artean txertatuko den uneko mugatzailea ezartzen edo itzultzen du. Balio lehenetsia uneko sistema eragilearen jatorrizko lerro-mugatzailea da.

Karaktere-jokoen izenei buruz gehiago jakiteko, begiratu IANAk karaktere-jokoei buruz duen orria. Kontuan izan LibreOffice aplikazioak ez dituela dauden karaktere-joko guztiak inplementatu.

TextStream zerbitzuaren metodoen zerrenda
CloseFile ReadAll | ReadLine SkipLine | WriteBlankLines WriteLine

## CloseFile

Uneko sarrerako edo irteerako korrontea ixten du eta irteerako bufferra husten du, beharrezkoa bada. True itzuliko du fitxategia ongi itxi bada.

### Sintaxia:

            myFile.CloseFile() As Boolean

## ReadAll

Testu-korrontean geratzen diren lerro guztiak kate bakar gisa itzultzen ditu. Lerro-jauziak ez dira kenduko.

Emaitza gisa lortutako katea lerroetan zatitu daiteke, bai integratutako Split Basic funtzioaren bidez lerro-mugatzailea ezaguna bada, bai SF_String.SplitLines metodoaren bidez.

Fitxategi handien kasuan, ReadAll metodoa erabiltzen bada memoria-baliabideak alferrik galtzen dira. Kasu horietan, hobe da fitxategia lerroz lerro irakurtzea ReadLine metodoaren bidez.

### Sintaxia:

            myFile.ReadAll() As String

### Adibidea:

Adibidez, demagun "Students.txt" fitxategiak honako edukiak dituela (izen bana lerro bakoitzean):

          Herbie Peggy
          Hardy Jarrett
          Edith Lorelle
          Roderick Rosamund
          Placid Everette

Beheko adibideak ReadAll eta SplitLines metodoak erabiltzen ditu fitxategi baten edukiak irakurri eta kateen matrize batean jartzeko:

          Sub ReadFile_Example
              ' FileSystem zerbitzua kargatzen du
              Dim FSO : FSO = CreateScriptService("FileSystem")
              ' Irakurri behar diren izenak dituen testu-fitxategia irekitzen du
              Dim inputFile as Object
              Set inputFile = FSO.OpenTextFile("~/Documents/Students.txt")
              'Reads all the contents in the input file as a single string
              Dim allData as String
              allData = inputFile.ReadAll()
              'Splits the string into an array
              Dim arrNames as Variant
              arrNames = SF_String.SplitLines(allData)
              ' (...)
              inputFile.CloseFile()
          End Sub

## ReadLine

Hurrengo lerroa itzultzen du testu-korrontea kate bat bada. Lerro-jauziak ezabatu egingo dira itzulitako fitxategitik.

AtEndOfStream probak ReadLine metodoaren aurretik egon behar du, beheko adibidean bezala.

Errore bat sortuko da AtEndOfStream iristen bada aurreko ReadLine edo SkipLine metodoari deitu baino lehen.

### Sintaxia:

            myFile.ReadLine() As String

### Adibidea:

            Dim sLine As String
            Do While Not myFile.AtEndOfStream
                sLine = myFile.ReadLine()
                ' (...)
            Loop

## SkipLine

Sarrera-korronteko hurrengo lerroa saltatzen du TextStream fitxategi bat irakurtzean.

Metodo honen emaitza izan daiteke AtEndOfStream propietatean True ezartzea.

### Sintaxia:

            myFile.SkipLine()

## WriteBlankLines

Lerro hutsen kopuru zehatz bat idazten du irteera-korrontean.

### Sintaxia:

            myFile.WriteBlankLines(Lines As Long)

### Parametroak:

Lines: Idatziko den lerro hutsen kopurua.

## WriteLine

Emandako katea irteera-korrontean idazten du lerro bakar gisa.

NewLine propietatean definitutako karakterea lerro-mugatzaile gisa erabiliko da.

### Sintaxia:

            myFile.WriteLine(Line As String)

### Parametroak:

Line: Idatziko den lerroa, hutsik egon daiteke.

### Adibidea:

          Sub SquaredValuesFile(lastValue as Integer)
              'FileSystem zerbitzuaren instantzia bat sortzen du
              Dim FSO as Variant : FSO = CreateScriptService("FileSystem")
              'Testu-fitxategi bat sortzen du
              Dim myFile as Variant : myFile = FSO.CreateTextFile("~/Documents/squares.csv")
              ' 'Balioa' eta 'Balio karratua' balioak idazten ditu, ";" ikurrarekin bananduta
              Dim value as Integer
              myFile.WriteLine("Balioa;Balio karratua")
              For value = 1 To lastValue
                  myFile.WriteLine(value & ";" & value ^ 2)
              Next value
              'Fitxategia ixten du eta baliabideak askatzen ditu
              myFile.CloseFile()
              myFile.Dispose()
          End Sub

Aurrizki gisa azpimarra bat ("_") duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez daude Basic makroetan erabiltzeko pentsatuta.

Erlazionatutako gaiak

ScriptForge.FileSystem zerbitzua

Input funtzioa

Open instrukzioa