HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Műveletek String és PChar típusú változókkal


A SysUtils Str függvényei 2. rész

Példaprogram letöltése

4079 bájt

Az előző részben megismerkedtünk a String-ek konvertálására szolgáló függvényekkel. Ebben a részben azokat a függvényeket vizsgáljuk meg, amelyek segítségével másolást, hozzáfűzést, keresést, cserét, vagy összehasonlítást hajthatunk végre.

A másolás végrehajtásához több függvény is a rendelkezésünkre áll.
Az StrCopy függvény segítségével egy PChar teljes tartalmát átmásolhatjuk egy másikba.
function StrCopy(Dest: PChar; const Source: PChar): PChar;
A Source paraméter határozza meg a forrást, a Dest pedig a célt. A rendszer nem ellenőrzi, hogy a másolandó PChar tartalma belefér-e a célváltozóba. Nekünk kell gondoskodnunk arról, hogy ott elég hely legyen. Minimum StrLen(Source)+1 helynek kell lennie a Dest változóban.
Az StrLCopy az előző függvény kibővített változata.
function StrLCopy(Dest: PChar; const Source: PChar; MaxLen: Cardinal): PChar;
A függvény csak a MaxLen paraméterben megadott számú karaktert másol át.
Mindkét függvény esetében a Dest előző tartalma törlődik.
Az StrMove is másolásra szolgál, de nem törli a Dest előző tartalmát.
function StrMove(Dest: PChar; const Source: PChar; Count: Cardinal): PChar;
Itt is található egy Count paraméter, amelyben megadhatjuk a másolandó karakterek számát.
Az StrECopy függvény úgy másol át egy PChart egy másikba, hogy másolás után, visszatérési értékként egy PChar változóban megadja a Dest változó végét jelző Null karaktert.
function StrECopy(Dest: PChar; const Source: PChar): PChar;
Ez hasznos lehet például akkor, ha több ilyen függvényt akarunk egymásba ágyazni.
Az StrPCopy segítségével egy String típusú változó tartalmát másolhatjuk át egy PChar-ba.
function StrPCopy(Dest: PChar; const Source: string): PChar;
Ennek bővített változata az StrPLCopy, amely lehetőséget biztosít arra, hogy csak a MaxLen paraméterben megadott számú karakter kerüljön átmásolásra.
function StrPLCopy(Dest: PChar; const Source: string; MaxLen: Cardinal): PChar;
A hozzáfűzés műveletét az StrCat valósítja meg.
function StrCat(Dest: PChar; const Source: PChar): PChar;
A Dest paraméterben megadott célváltozó végéhez hozzáfűzi a Source tartalmát. Ehhez az is szükséges, hogy a Dest hossza legalább StrLen(Dest)+StrLen(Source)+1 legyen.
Két String tartalmának összehasonlítására négy függvény használható.
function StrComp(const Str1, Str2 : PChar): Integer;
function StrLComp(const Str1, Str2: PChar; MaxLen: Cardinal): Integer;
function StrIComp(const Str1, Str2:PChar): Integer;
function StrLIComp(const Str1, Str2: PChar; MaxLen: Cardinals): Integer;
Az StrComp és StrLComp függvények különbséget tesznek kis- és nagybetűk között, míg a másik két függvény nem. Az StrComp és az StrIComp függvények a paraméterben kapott két PChar-t teljes hosszúságukban összehasonlítják. Az StrLComp és az StrLIComp függvényekben lehetőségünk van arra, hogy a MaxLen paraméterben megadjuk az összehasonlítandó karakterek számát. A megadott érték azt jelenti, hogy az első karaktertől kezdődően hány karakterben kell egyezni a két PChar-nak, hogy teljesüljön az egyenlőség.
Mind a négy függvény integer típusú értéket ad vissza. A visszatérési érték három féle lehet. Ha kisebb 0-nál, akkor az azt jelenti, hogy Str1<Str2-nél. 0 érték esetén a Str1=Str2-vel. Ha a függvény értéke nagyobb 0-nál, akkor Str1>Str2-nél.
Lehetőségünk van arra is, hogy egy String-ben karaktert, vagy karaktersorozatot keressünk.
Az StrScan függvény egyetlen karakter keresésére szolgál. A Chr paraméterben adhatjuk meg a keresendő karaktert.
function StrScan(const Str: PChar; Chr: Char): PChar;
A keresés az Str első karakterétől kezdődik. Amikor a függvény megtalálja az első Chr-ben megadott karaktert, akkor visszatérési értékként az Str Chr-től kezdődő tartalmát adja.
Ugyanígy működik az StrRScan is, annyi különbséggel, hogy a keresést az Str utolsó karakterétől kezdi, visszafelé.
function StrRScan(const Str: PChar; Chr: Char): PChar;
Az StrPos segítségével nem csak egy karaktert, hanem egy egész karaktersorozatot is kereshetünk.
function StrPos(const Str1, Str2: PChar): PChar;
A függvény ugyanúgy működik, mint az StrScan.
Egy String bizonyos részeit a StringReplace függvénnyel cserélhetjük ki.
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string; 
A függvény ellentétben az előzőekkel, String típusú változókat kezel, nem PChar-t. Az S paraméterben kell megadnunk azt a String-et, amelyben keresni szeretnénk. Az OldPattern paraméterben kell megadnunk a keresendő szöveget, és a NewPattern-ben, azt a szöveget, amire cserélni szeretnénk. A Flags paraméterben két értéket használhatunk.
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
Ha a Flags tartalmazza az rfReplaceAll-t, akkor minden egyes megtalált szövegrész kicserélésre kerül, hiányában pedig csak az első. Ha figyelembe akarjuk venni a kis- és nagybetűk különbségét, akkor az rfIgnoreCase-t is használnunk kell.
A függvény visszatérési értéke az a szöveg, amely a már lecserélt szövegrészeket tartalmazza. Az S tartalma nem változik.

Cikksorozat

#IDKategóriaCikk címeSorozat
1621DelphiMySQL szerverek elérése Delphi-ből1. rész
1632DelphiMySQL szerverek elérése Delphi-ből2. rész
1641DelphiMySQL szerverek elérése Delphi-ből3. rész
1649DelphiMySQL szerverek elérése Delphi-ből4. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 50. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |