TStringList

Iz SDMS
Jump to navigationJump to search
Ta stran je trenutno še v izdelavi.

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 StringListo

Osnovne funkcije

Count

Lastnost Count določa število zapisov v TStringListi.

RO Property TStringList.Count As Long
ResultLongVelikost 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
IndexLong.
ResultString.

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
IndexLong.
ResultFloat.
Spodnji izrazi so identični:
F=StrToFloat (SL.Strings(1))
F=SL.AsFloat(1)
in
SL.Strings(1)=FloatToStr(F)
SL.AsFloat(1)=F

Data

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
IndexLong.
ResultLong.

AsClass

Lastnost AsClass .

Property TStringList.AsClass (Index As Long) As TClass
IndexLong.
ResultTClass.

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
SStringText, ki se išče.
ResultLongIndeks zapisa v StringListi.

Pos

Lastnost Pos .

RO Property TStringList.Pos (S As String) As Long
SString.
ResultLong.

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
ResultBoolean.

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
ResultBoolean.
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 file

Spreminjanje 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)
SStringText, ki se bo dodal.

AddStrings

Metoda AddStrings .

Method TStringList.AddStrings (SL As TStringList)
SLTStringList.

Insert

Metoda Insert vrine podan text na podano mesto v TStringListi.

Method TStringList.Insert (S As String, Index As Long)
SStringTekst, ki se bo vrinil.
IndexLongMesto 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)
IndexLongIndex zapisa, ki se bo brisal.

DeleteStrings

Metoda DeleteStrings .

Method TStringList.DeleteStrings (Index, Count As Long)
IndexLong.
CountLong.

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)
Index1LongIndeksi zapisov, ki se bodo zamenjali. Prvi index ima vrednost 0.
Index2LongIndeksi 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)
CurIndexLongIndex zapisa, ki se bo prestavil. Prvi zapis ima vrednost 0.
NewIndexLongIndex 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
ResultString.

CommaText

Lastnost CommaText poda vrednosti TStringListe zapisane v eni vrstici ločene z vejico.

Property TStringList.CommaText As String
ResultString.

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
SeparatorString.
ResultString.

TokenText

Metoda TokenText pretvori podan string S v zloge.

Method TStringList.TokenText (S As String)
SStringString, 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 listo

Filter

Lastnost Filter prenese določene tekste v novo listo. To novo listo je potrebno dealocirati.

RO Property TStringList.Filter (S As String) As TStringList
SStringText, ki mora biti vsebovan v vrstici, da se vrstica doda med rezultate.
ResultTStringListNova 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)
SStringText, 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 StringListo

Load

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)
FileNameStringPolno 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)
FileNameStringPolno ime datoteke.

LoadXML

Metoda LoadXML naloži podano XML datoteko iz diska. za narediti: kako naloži

Method TStringList.LoadXML (FileName As String)
FileNameStringPolno 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 StringListo

FindFiles

Metoda FindFiles zapiše v TStringListo vse najdene datoteke v podanem direktoriju.

Method TStringList.FindFiles (Path, Mask As String, Recursive As Boolean)
PathStringZačetni direktorij (mapa), kjer naj se iščejo datoteke.
MaskStringDefinicija tipa datotek, ki se iščejo. Primer: "*.txt" vrne vse datoteke z ekstenzijo TXT.
RecursiveBooleanOpredelitev 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)
PathStringZačetni direktorij (mapa), kjer naj se iščejo poddirektoriji.
MaskStringDefinicija tipa direktorijev, ki se iščejo. Primer: "*" vrne vse direktorije brez ekstenzije.
RecursiveBooleanOpredelitev 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)
ChangeWhatStringTekst, ki se bo spremenil.
ChangeToStringTekst 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.DestroyObjects

Opuščeno

Destroy

Metoda Destroy dealocira razred. Metoda je opuščena in se priporoča uporaba funkcije Rutine.Destroy.

Method TStringList.Destroy