TStringList
Razred TStringList vzdržuje liste tekstov. String liste uporabljamo za delo z seznami stringov. TStringList ima veliko lastnosti in metod za: dodajanje, brisanje tekstov z/na določene pozicije, reorganizacijo stringov v listi, za zapis stringov v datoteko ali za branje iz datoteke, za razvrščanje stringov po velikosti, za preprečevanje podvojenih stringov v urejeni listi. POMEMBNO: Vedno uničite TStringListo z metodo Destroy.
Dim SL As TStringList, I As Long, a as String
SL = CreateStringList // Kreiranje Stringliste
SL.Add ("Text 1") // Dodaj prvega, 1
SL.Add ("Text 2") // drugega 1,2
SL.Add ("Text 3") // tretjega 1,2,3
SL.Insert ("Text 4", 1)// vstavi drugo linijo teksta 1,4,2,3
SL.Exchange (0, 2) // zamenjava prve in tretje vrstice 2,4,1,3
SL.Move (0, SL.Count-1)// premik prve vrstice na zadnjo 4,1,3,2
I = SL.Find ("Text 3") //
SL.Strings (I) = "Text 5" // sprememba prva vrstice 4,1,5,2
SL.Delete (1) // briši drugo vrstico 4,5,2
// Pokaži String listo razmejeno z
Message ("Vsebina StringListe po vrsticah", SL.Text) // linijami
Message ("Vsebina StringListe z vejico ločenimi vrsticami", SL.CommaText) // vejicami
For I = 0 To SL.Count - 1 // vsaka vrstica
Message ("Vsebina vrstice " +IntToStr(i), SL.Strings (I))
Next
a = Sl.Strings(1) // beri drugo vrstico
Message ("Druga vrstica", a)
i = Sl.Data(1) // beri index druge vrstice
Message ("Index druge vrstice",IntToStr(i))
SL.Clear // Briši StringListoVsebina
Osnovne funkcije
Count
Lastnost Count določa število zapisov v TStringListi.
| RO Property TStringList.Count As Long | ||
| Result | Long | Velikost liste tekstov. |
Strings
Lastnost Strings vrne index-ti zapis v TStringListi. Index se začne s številom 0. Uporablja se za branje ali popravljanje obstoječih zapisov. Za lokacijo določenega besedila v TStringListi uporabljajte Find metodo.
| Property TStringList.Strings (Index As Long) As String | ||
| Index | Long | . |
| Result | String | . |
AsFloat
Lastnost AsFloat je identična String lastnosti. Razlika je v tem da nam vrne podatek v numerični obliki.
| Property TStringList.AsFloat (Index As Long) As Float | ||
| Index | Long | . |
| Result | Float | . |
Spodnji izrazi so identični:
F=StrToFloat (SL.Strings(1))
F=SL.AsFloat(1)
in
SL.Strings(1)=FloatToStr(F)
SL.AsFloat(1)=FData
Lastnost Data lahko zapiše dodaten podatek vsaki vrstici v TStringListi. S to lastnostjo lahko pristopate k določeni vrstici v tabeli, tudi če je bila predhodno lista sortirana.
| Property TStringList.Data (Index As Long) As Long | ||
| Index | Long | . |
| Result | Long | . |
AsClass
Lastnost AsClass .
| Property TStringList.AsClass (Index As Long) As TClass | ||
| Index | Long | . |
| Result | TClass | . |
Find
Lastnost Find vrne index pozicije iskanega teksta. TStringLista mora biti sortirana. Če podanega teksta ni v listi, je vrednost metode -1.
| RO Property TStringList.Find (S As String) As Long | ||
| S | String | Text, ki se išče. |
| Result | Long | Indeks zapisa v StringListi. |
Pos
Lastnost Pos .
| RO Property TStringList.Pos (S As String) As Long | ||
| S | String | . |
| Result | Long | . |
Lastnosti liste
Duplicates
Lastnost Duplicates določi ali se lahko v TStringListo doda podvojeni zapis. Glede na nastavljeno Duplicates: False: Poizkus dodajanja podvojenih zapisov se ignorira. True: Dovoli podvajanje zapisov v listi. Lastnost Duplicates nastavite pred dodajanjem zapisov v listo. Pomni: Duplicates ne stori ničesar, če lista ni sortirana .
| Property TStringList.Duplicates As Boolean | ||
| Result | Boolean | . |
Sorted
Lastnost Sorted opredeljuje ali je TStringLista v sortirnem načinu, kar pomeni, da se vsi zapisi samodejno sortirajo v naraščajočem načinu. Če je Tstring list v sorirnem načine, potem uporabljate Add metodo za dodajanje novih zapisov.
| Property TStringList.Sorted As Boolean | ||
| Result | Boolean | . |
Dim SL As TStringList, I As Long
SL = CreateStringList // Kreiraj string listo
SL.Clear // Briši listo
SL.Duplicates = False // Ignoriraj dvojnike
SL.Add ("Some text 1") // Dodaj
SL.Add ("Some text 1") // Ta linije se ne bo dodala
SL.Clear // Briši listo
SL.Sorted = True // Vzpostavi sortirni način
SL.Add ("b prva linija") // Dodaj linijo
SL.Add ("a druga linija") // Ta linija se bo zapisala na prvo mesto
Sl.Save ("C:\Test.txt")
SL.Destroy // Uniči listo
Run ("Notepad C:\Test.txt") // Odpri v beležnicits notepad to view
this fileSpreminjanje liste
Add
Metoda Add doda nov zapis v TStringListo. Če ima StringLista sortiranje aktivno se zapis shrani na ustrezno mesto, drugače na prvo prosto mesto. Prvo mesto v StringListi ima indeks 0. Če je lastnost Duplicates nastavljena na False in Sort na True, potem se že obstoječa vrednost ne doda v listo.
| Method TStringList.Add (S As String) | ||
| S | String | Text, ki se bo dodal. |
AddStrings
Metoda AddStrings .
| Method TStringList.AddStrings (SL As TStringList) | ||
| SL | TStringList | . |
Insert
Metoda Insert vrine podan text na podano mesto v TStringListi.
| Method TStringList.Insert (S As String, Index As Long) | ||
| S | String | Tekst, ki se bo vrinil. |
| Index | Long | Mesto vrinjenja. Prvo mesto nosi index 0. |
Delete
Metoda Delete zbriše Index-ti zapis v TStringListi. Index 0 je prvi zapis v TStringListi.
| Method TStringList.Delete (Index As Long) | ||
| Index | Long | Index zapisa, ki se bo brisal. |
DeleteStrings
Metoda DeleteStrings .
| Method TStringList.DeleteStrings (Index, Count As Long) | ||
| Index | Long | . |
| Count | Long | . |
Exchange
Metoda Exchange zamenja dva zapisa v StringListi. Ne uporabljate te metode, če je StringLista v sortirnem načinu, ker se poruši način sortiranja.
| Method TStringList.Exchange (Index1, Index2 As Long) | ||
| Index1 | Long | Indeksi zapisov, ki se bodo zamenjali. Prvi index ima vrednost 0. |
| Index2 | Long | Indeksi zapisov, ki se bodo zamenjali. Prvi index ima vrednost 0. |
Move
Metoda Move premakne zapis v TStringListi iz FromIndex na ToIndex mesto.
| Method TStringList.Move (CurIndex, NewIndex As Long) | ||
| CurIndex | Long | Index zapisa, ki se bo prestavil. Prvi zapis ima vrednost 0. |
| NewIndex | Long | Index mesta, kamor se naj zapiše prestavljeni zapis. Prvi zapis ima vrednost 0. |
Clear
Metoda Clear briše vse zapise v TStringListi.
| Method TStringList.Clear |
Text
Lastnost Text je lista vseh zapisov v TStringListi zapisana v en string pri čemer so posamezni stringi ločeni z ( LF/ CR ) novo vrstico. Če kateri od stringov v listi vsebuje LF/CR par bo rezultirajoča lista vsebovala več vrstic kot je dejansko zapisov. Nova vrstica (kombinacija LF/CR) bo vrinjena ob vsakem vsebovanem LF ali CR znaku. Ni nujno, da sta par LF/CR. Če tekst v listi vsebuje LF/CR znake je bolje uporabiti zapis ločen z vejico.
| Property TStringList.Text As String | ||
| Result | String | . |
CommaText
Lastnost CommaText poda vrednosti TStringListe zapisane v eni vrstici ločene z vejico.
| Property TStringList.CommaText As String | ||
| Result | String | . |
Zapisi, ki vsebujejo presledek, vejice ali navednice se zaprejo v navednice. Primer, če lista vsebuje naslednje zapise:
- Stri,ng 1
- Stri”ng 2
- String 3
- String4
potem funkcija CommaText vrne naslednjo obliko:
- “Stri,ng 1”,”Stri””ng 2”,”String 3”,String4
Pri asignaciji CommaText-a, se vrednost sparsa kot SDF oblika teksta. V SDF formatu, so stringi ločeni z vejicami presledki in opcijsko zaprti v dvojne navednice. Dvojne navednice se ponovijo zato, da seločijo od stringov. Presledki in vejice, ki niso zaprte v navednice so ločila posameznih stringov. Dve vejici pomenita prazen string, dva presledka pa se ignororata. Primer z vejico ločenega texta:
- “Stri,ng 1”, ”Stri””ng 2” , String 3,String4
In seznam stringov:
- Stri,ng 1
- Stri”ng 2
- String
- 3
- String4
CustomText
Lastnost CustomText .
| Property TStringList.CustomText (Separator As String) As String | ||
| Separator | String | . |
| Result | String | . |
TokenText
Metoda TokenText pretvori podan string S v zloge.
| Method TStringList.TokenText (S As String) | ||
| S | String | String, ki se razbije na zloge. |
Filter funkcije
Dim SL, SL1 As TStringList
SL = CreateStringList // Kreiraj StringListo
SL.Load ("C:\VseDatoteke.txt") // Napolni listo
SL1 = SL.Filter("aa") // V novo listo da vse tekste, ki vsebujeo "AA"
SL1.Save ("C:\VseDatotekeZaa.txt") // Shrani novo listo na disk
Destroy (SL1) // uniči novo listo
SL.DeleteFilter("aa") // Iz liste odstrani vse tekste, ki vsebujeo "AA"
SL.Save ("C:\VseDatotekeBrezaa.txt") // Shrani listo na disk
Destroy (SL) // uniči listoFilter
Lastnost Filter prenese določene tekste v novo listo. To novo listo je potrebno dealocirati.
| RO Property TStringList.Filter (S As String) As TStringList | ||
| S | String | Text, ki mora biti vsebovan v vrstici, da se vrstica doda med rezultate. |
| Result | TStringList | Nova lista, ki vsebuje samo tekste, ki vsebujejo iskani tekst. |
V novo listo se prenese tudi Data oziroma AsClass parameter. za narediti: A je to res
DeleteFilter
Metoda DeleteFilter zbriše določene tekste iz listo.
| Method TStringList.DeleteFilter (S As String) | ||
| S | String | Text, ki mora biti vsebovan v vrstici, da se vrstica izbriše. |
Nalaganje in shranjevanje
Dim SL As TStringList
SL = CreateStringList // Kreiraj StringListo
SL.Load ("C:\a.txt") // Naloži datoteko v listo
SL.Sort // Sortira listo
SL.Save ("C:\b.txt") // Shrani sortirano listo na disk
Destroy (SL) // uniči StringListoLoad
Metoda Load naloži podano datoteko iz diska, tako da je vsaka vrstica (carriage return ali linefeed) zapisana kot naslednji zapis. Obstoječa vsebina liste se ob nalaganju datoteke izbriše.
| Method TStringList.Load (FileName As String) | ||
| FileName | String | Polno ime datoteke. |
Save
Metoda Save shrani vsebino liste v datoteko na disku. Vsak zapis je v datoteki zapisan v svoji vrstici.
| Method TStringList.Save (FileName As String) | ||
| FileName | String | Polno ime datoteke. |
LoadXML
Metoda LoadXML naloži podano XML datoteko iz diska. za narediti: kako naloži
| Method TStringList.LoadXML (FileName As String) | ||
| FileName | String | Polno ime datoteke. |
Iskanje po disku
Dim SL As TStringList
SL = CreateStringList // Kreiraj StringListo
SL.FindFiles ("C:\", "*.*", True) // Napolni listo z vsemi datotekami na C disku
SL.Save ("C:\VseDatoteke.txt") // Shrani na disk
SL.Clear // Briši listo
SL.FindFolders ("C:\", "*.*", True) // Napolni listo z vsemi mapami na C disku
SL.Save ("C:\VseMape.txt") // Shrani na disk
Destroy (SL) // uniči StringListoFindFiles
Metoda FindFiles zapiše v TStringListo vse najdene datoteke v podanem direktoriju.
| Method TStringList.FindFiles (Path, Mask As String, Recursive As Boolean) | ||
| Path | String | Začetni direktorij (mapa), kjer naj se iščejo datoteke. |
| Mask | String | Definicija tipa datotek, ki se iščejo. Primer: "*.txt" vrne vse datoteke z ekstenzijo TXT. |
| Recursive | Boolean | Opredelitev ali se datoteke iščejo tudi v poddirektorijih. |
FindFolders
Metoda FindFolders zapiše v TStringListo vse poiskane direktorije.
| Method TStringList.FindFolders (Path, Mask As String, Recursive As Boolean) | ||
| Path | String | Začetni direktorij (mapa), kjer naj se iščejo poddirektoriji. |
| Mask | String | Definicija tipa direktorijev, ki se iščejo. Primer: "*" vrne vse direktorije brez ekstenzije. |
| Recursive | Boolean | Opredelitev ali se direktoriji iščejo tudi v poddirektorijih. |
Razno
Replace
Metoda Replace zamenja vse pojavitve določenega teksta z novim.
| Method TStringList.Replace (ChangeWhat, ChangeTo As String) | ||
| ChangeWhat | String | Tekst, ki se bo spremenil. |
| ChangeTo | String | Tekst v kaj se naj spremeni. |
DestroyObjects
Metoda DestroyObjects dealocira razred in vse razrede, ki so dostopni preko AsClass metode.
| Method TStringList.DestroyObjects |
To je samo v primeru, ko je bil objekt alociran z metodo TRecordList.GroupByLists ali TRecordList.GroupByListsFormula. V vseh ostalih primerih se za dealokacijo uporabi funkcijo Rutine.Destroy.
Dim SL As TStringList, L As TLayer
L = [Neka plast]
SL = L.AllRecords.GroupByLists (L.GetField("Polje"), Nil, Nil) // Kreiranje Stringliste
...
SL.DestroyObjectsOpuščeno
Destroy
Metoda Destroy dealocira razred. Metoda je opuščena in se priporoča uporaba funkcije Rutine.Destroy.
| Method TStringList.Destroy |