TStringList: Razlika med redakcijama

Iz SDMS
Jump to navigationJump to search
m (Nova stran z vsebino: {{Work}} Razred '''TStringList''' vzdržuje liste tekstov. String liste uporabljamo za delo z seznami stringov. TStringList ima veliko lastnosti in metod za: dodajanje, brisanj...)
 
m
Vrstica 309: Vrstica 309:
  
 
==Iskanje po disku==
 
==Iskanje po disku==
 +
 +
<source>Dim SL As TStringList
 +
SL = CreateStringList                  // Kreiraj StringListo
 +
// Fills it with all files on C disk
 +
SL.FindFiles ("C:\", "*.*", True)
 +
SL.Save ("C:\VseDatoteke.txt")        // Shrani na disk
 +
SL.Clear                              // Briši listo
 +
// Fills it with all folders on C disk
 +
SL.FindFolders ("C:\", "*.*", True)
 +
SL.Save ("C:\VseMape.txt")            // Shrani na disk
 +
SL.Destroy                            // uniči StringListo</source>
  
 
===FindFiles===
 
===FindFiles===
Vrstica 318: Vrstica 329:
 
Recursive|Boolean|Opredelitev ali se datoteke iščejo tudi v poddirektorijih.
 
Recursive|Boolean|Opredelitev ali se datoteke iščejo tudi v poddirektorijih.
 
</declaration>
 
</declaration>
<source></source>
 
  
 
===FindFolders===
 
===FindFolders===

Redakcija: 13:04, 29. november 2010

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
Dim 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.Save ("C:\Test.txt")  // Sharni v datoteko
SL.Clear                 // Briši StringListo
SL.Load ("C:\Test.txt")  // Beri iz datoteke               4,5,2
SL.Add ("Some text 6")   // Dodaj drugo linijo           4,5,2,6
SL.Save ("C:\Test.txt")  // in shrani                    4,5,2,6
SL.Destroy               // Unuči stringListo
Run ("Notepad C:\Test.txt") // Z Notepad urejevalnikom poglej datoteko

Osnovne funkcije

Count

Lastnost Count določa število zapisov v TStringListi.

RO Property TStringList.Count As Long
ResultLong.

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.

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

DeleteFilter

Metoda DeleteFilter .

Method TStringList.DeleteFilter (S As String)
SString.

Filter

Lastnost Filter .

RO Property TStringList.Filter (S As String) As TStringList
SString.
ResultTStringList.

Replace

Metoda Replace nadomesti tekst ChangeWhat v tekst ChangeTo v TStringListi.

Method TStringList.Replace (ChangeWhat, ChangeTo As String)
ChangeWhatStringTekst, ki se bo spremenil.
ChangeToStringTekst v kaj se naj spremeni.

Nalaganje in shranjevanje

Load

Metoda Load naloži podano datoteko na disku in jo zapiše v TStringListo, tako da je vsaka vrstica (carriage return ali linefeed) zapisana kot naslednji zapis.

Method TStringList.Load (FileName As String)
FileNameStringPolno ime datoteke.

Save

Metoda Save shrani vsebino TStringListe v imenovano datoteko na disku. Vsak zapis je zapis v svoji vrstici v datoteki.

Method TStringList.Save (FileName As String)
FileNameStringPolno ime datoteke.

LoadXML

Metoda LoadXML .

Method TStringList.LoadXML (FileName As String)
FileNameString.

Iskanje po disku

Dim SL As TStringList
SL = CreateStringList                  // Kreiraj StringListo
// Fills it with all files on C disk
SL.FindFiles ("C:\", "*.*", True) 
SL.Save ("C:\VseDatoteke.txt")         // Shrani na disk
SL.Clear                               // Briši listo
// Fills it with all folders on C disk
SL.FindFolders ("C:\", "*.*", True) 
SL.Save ("C:\VseMape.txt")             // Shrani na disk
SL.Destroy                             // 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.

Uničenje objekta

Destroy

Metoda Destroy uniči objekt tipa TStringList.

Method TStringList.Destroy

DestroyObjects

Metoda DestroyObjects .

Method TStringList.DestroyObjects