Eljárások és függvények a delphi, delphi, delphi komponensek, delphi források string-el való feldolgozásához
Eljárások és funkciók a Delphi szalagokkal való munkához
Strings gyakran használják programok - legalábbis megjelenítésére különböző üzeneteket a felhasználó, így nem vesznek el a felületen. Nos, ilyen egyszerű esetekben elegendő, hogy a leckében szentelt információk érkezzenek. Ha komolyabb szándék és a kezelni kívánt húrok, ahogy szeretné (például írsz valamiféle szójáték Balda vagy logogriph), akkor Delphi megtalál minden szükséges ilyen irodalmat kedvelők és zsonglőr elő- és utótag.
Határozottan, a példákban azt feltételezzük
Amikor egyszerű műveleteket tanulmányoztunk stringekkel, a + operátor használatával összefűzött stringeket tekintettük. De két vonalat kombinálhat egy funkcióval
amely két sor "összegét" adja vissza:
A vonalkódok összehasonlításához a relációs operátorok helyett a következő funkciókat használhatja.
Mindkét függvény összehasonlítja az s1 és s2 sorokat. Az első - figyelembe véve a betűk (nagybetűs / kisbetű), a második - figyelembe véve.
Ezek a funkciók értéket adnak vissza
0, ha a vonalak egyenlőek;
Nem alkalmazhatók az orosz szóra, ezért jobb használni a funkciókat:
amelyek ugyanolyan jól működnek a latin és az orosz betűkkel.
Most lépjünk át azokhoz az eljárásokhoz és funkciókhoz, amelyek bonyolultabb műveleteket végeznek szavakkal.
Gyakran előfordul, hogy egy szó minden betűjét nagybetűs vagy kisbetűsre kell konvertálni. Ha a szavak csak latin betűkből állnak, akkor a következő funkciókat használhatja:
Az első a kisbetűket (kisbetűket), a második - a felső (nagybetű) betűket fordítja le. Az orosz (és a latin) levelek esetében a funkciók megfelelőek.
Az AnsiLowerCase (S1) függvény a "ribizli" karakterláncot adja vissza.
Az AnsiUpperCase ("ribizli") funkció visszaadja a "CURRANT" karakterláncot.
Hozzászólások következtetési eljárások a képernyőn (általában egy címke vagy lista) van szükség, mint a paraméter karakterláncot, és mi a teendő, ha azt szeretné, hogy a felhasználó a szám? - Szám konvertálása string-be! Maga is megteheti, de sokkal kényelmesebb a Delphi beépített funkcióit használni.
Leggyakrabban a programok az egész számokat egy karakterláncra konvertálják:
Például az IntToStr (1234) visszaadja a "1234" karakterláncot.
A valós számokhoz hasonló funkció is van
Ha tudni szeretné, hogy egy decimális számot hexadecimálisan írnak, használja a következő funkciókat:
A második paraméter - Számjegyek - a hexadecimális számjegyek számát adja meg.
Ha fájlból vagy egyes összetevőkből ad adatokat, a szám helyett egy karakterláncot kapunk. És bár számokból áll, ez nem szám. Ebben az esetben a funkció
És az S sztring nemcsak tizedes, hanem hexadecimális számot is tartalmazhat.
Azonban ez a funkció a „veszélyes”, ha a karakterlánc megtalálható legalább egy érvénytelen karaktert, ha hiba történik. Ha alapos kétség merül fel a karakterlánc helyességével kapcsolatban, akkor jobb, ha megbízható függvényre váltasz
TRUE értéket ad vissza, ha a karakterlánc számtalan hibára konvertálódik, FALSE pedig ha hibás. A Value változó (a példánkban i) tárol egy számot.
Az eljárást is elvégezheti:
V egy egész vagy valós típusú változó.
A kód egy egész típusú változó, amelyben a karakterlánc hibás karakterének száma visszaadódik. Ha nincs ilyen szimbólum, akkor a változó értéke nulla lesz.
Hasonló funkciók a valós számokhoz:
A vonal elején és / vagy végén felesleges helyek lehetnek. Ezek könnyen megszabadulhatnak. funkciók alkalmazásával
Az első eltávolítja a vezető tereket, a második - a végső, a harmadik - mindkettőt, és mások. Ezek a funkciók új sorba térnek vissza - már szóközök nélkül.
A karakterlánc hosszának megismeréséhez (a karakterek száma) használhatja a funkciót
Például. A hossza (S1) 9-et, a hosszt (S2) -7 pedig visszatér.
Nos, most - a legérdekesebb eljárások és funkciók!
Törölje az S karaktersorozat egy részét a szimbólum számáról Index:
Itt a szám a törölni kívánt karakterek száma.
Például az eljárás befejezése után:
A string si lesz az "ANYAG" érték.
És az eljárás után törölje (s2,5,3); Az s2 karakterláncot "STEAM" -ra kell csonkolni.
Ha az Index változó értéke kevesebb, mint egy vagy több, mint a húr hossza, akkor a karakterlánc változatlan marad. Semmi nem történik meg a karakterlánccal, és ha a gróf kevesebb mint egy.
Ha a gráf több, mint a karakterláncok száma, kezdve az indexel, akkor az összes karakter törlődik a vonal végére.
A Beszúrás eljárás ellentétes módon működik - a szimbólumszám beillesztése után a Substr sztringet beilleszti a Dest stringbe:
Például, a beillesztési eljárás ('Z', s1, 6) végrehajtása után; Az s1 string egy vicces "WINDOW" szóvá alakul.
És az eljárás beillesztése ("КА", s2,8); lehetővé teszi számunkra, hogy élvezzük a neologizmológiai "PARASHUTKA" -t.
Ha nem szeretnénk elrontani az eredeti karakterláncot, ahogyan a Törlés művelet végrehajtja, akkor létrehozhatunk egy új vonalat a kívánt elem kivágásával bármely sorból:
Megjegyzés: ugyanazt a szót kapja, mint a példában a törléssel (s2,5,3); megadtunk más paraméterértékeket a függvényhívásban!
És az utolsó függvény a substr szubsztring pozíciót a string str-ban találja meg. Pos (const substr: string; const str: string): Integer;
Ha a vonal kívánt részsztring belül többször, akkor az első hívást Pos függvény első előfordulását, majd keresse meg kell folytatni a következő tételt. Például a FELDFEBEL szó, így mindkettő "megevett".
Ha nincsenek sztringek a stringben, akkor reménytelen zéró visszatér!