Procedury obsługi ciągów znaków: programowanie Delphi

mężczyzna przy laptopie

Obrazy bohaterów/obrazy Getty





Funkcja PorównajTekst porównuje dwa ciągi bez rozróżniania wielkości liter.

Deklaracja:
funkcjonować
PorównajTekst( stały S1, S2: strunowy ): liczba całkowita ;



Opis:
Porównuje dwa ciągi bez uwzględniania wielkości liter.

Porównanie NIE uwzględnia wielkości liter i nie uwzględnia ustawień regionalnych systemu Windows. Zwracana wartość całkowita jest mniejsza niż 0, jeśli S1 jest mniejsza niż S2, 0, jeśli S1 równa się S2, lub większa niż 0, jeśli S1 jest większa niż S2.



Ta funkcja jest przestarzała, tzn. nie powinna być używana w nowym kodzie - istnieje tylko dla wstecznej kompatybilności.

Przykład:

|_+_|

Funkcja kopiowania

Zwraca podciąg ciągu lub segment tablicy dynamicznej.

Deklaracja:
funkcjonować
Kopiuj(S; Indeks, Liczba: Liczba całkowita): strunowy ;
funkcjonować Kopiuj(S; Indeks, Liczba: Liczba całkowita): szyk ;



Opis:
Zwraca podciąg ciągu lub segment tablicy dynamicznej.
S jest wyrażeniem typu string lub dynamic-array. Index i Count są wyrażeniami typu całkowitego. Copy zwraca ciąg znaków zawierający określoną liczbę znaków z ciągu lub tablicy podrzędnej zawierającej elementy Count zaczynające się od S[Index].

Jeśli indeks jest większy niż długość S, funkcja Copy zwraca ciąg o zerowej długości ('') lub pustą tablicę.
Jeśli Count określa więcej znaków lub elementów tablicy niż jest dostępnych, zwracane są tylko znaki lub elementy od S[Index] do końca S.



Aby określić liczbę znaków w ciągu, użyj funkcji Długość. Wygodnym sposobem skopiowania wszystkich elementów S z początkowego indeksu jest użycie MaxInt jako hrabiego.

Przykład:



|_+_|

Procedura usuwania

Usuwa podciąg z ciągu.

Deklaracja:
procedura
Usuwać( był S: strunowy ; Indeks, liczba : liczba całkowita)



Opis:
Usuwa znaki Count z ciągu S, zaczynając od Index.
Delphi pozostawia ciąg bez zmian, jeśli indeks nie jest dodatni lub jest większy niż liczba znaków po indeksie. Jeśli liczba jest większa niż reszta znaków po indeksie, reszta ciągu jest usuwana.

Przykład:

|_+_|

Funkcja wyodrębniania ciągów

Wypełnia listę ciągów podciągami przeanalizowanymi z listy rozdzielanej.

Deklaracja:
rodzaj
TSysCharSet = zestaw Zwęglać;
funkcjonować ExtractStrings (Separatory, WhiteSpace: TSysCharSet; Zawartość: PChar; Ciągi: TStrings): Liczba całkowita;

Opis:
Wypełnia listę ciągów podciągami przeanalizowanymi z listy rozdzielanej.

Separatory to zestaw znaków używanych jako ograniczniki, oddzielające podciągi, gdzie zwroty karetki, znaki nowego wiersza i znaki cudzysłowu (pojedyncze lub podwójne) są zawsze traktowane jako separatory. WhiteSpace to zestaw znaków, które mają być ignorowane podczas analizowania zawartości, jeśli występują na początku ciągu. Treść to ciąg zakończony znakiem NULL, który ma zostać przeanalizowany na podciągi. Strings to lista ciągów, do której dodawane są wszystkie podciągi przeanalizowane z zawartości. Funkcja zwraca liczbę ciągów dodanych do parametru Ciągi.

Przykład:

|_+_|

Funkcja LeftStr

Zwraca ciąg zawierający określoną liczbę znaków z lewej strony ciągu.

Deklaracja:
funkcjonować
LewyStr( stały AString: AnsiString; stały Liczba: liczba całkowita): AnsiString; przeciążać ; funkcjonować LewyStr( stały Aciąg: Szeroki ciąg; stały Liczba: Liczba całkowita): Szeroki ciąg; przeciążać ;

Opis:
Zwraca ciąg zawierający określoną liczbę znaków z lewej strony ciągu.

AString reprezentuje wyrażenie ciągu, z którego zwracane są znaki z lewej strony. Liczba wskazuje, ile znaków ma zostać zwróconych. Jeśli 0, zwracany jest ciąg o zerowej długości (''). Jeśli jest większa lub równa liczbie znaków w AString, zwracany jest cały ciąg.

Przykład:

|_+_|

Funkcja długości

Zwraca liczbę całkowitą zawierającą liczbę znaków w ciągu lub liczbę elementów w tablicy.

Opis:
funkcjonować
Długość (const S: strunowy ): liczba całkowita
funkcjonować Długość (const S: szyk ): liczba całkowita

Deklaracja:
Zwraca liczbę całkowitą zawierającą liczbę znaków w ciągu lub liczbę elementów w tablicy.
Dla tablicy Length(S) zawsze zwraca Ord(High(S))-Ord(Low(S))+1

Przykład:

|_+_|

Funkcja małych liter

Zwraca ciąg, który został przekonwertowany na małe litery.

Opis:
funkcjonować
Małe litery ( stały S: strunowy ): strunowy ;

Deklaracja:
Zwraca ciąg, który został przekonwertowany na małe litery.
LowerCase konwertuje tylko wielkie litery na małe; wszystkie małe litery i znaki nieliterowe pozostają niezmienione.

Przykład:

|_+_|

Poz Funkcja

Zwraca liczbę całkowitą określającą pozycję pierwszego wystąpienia jednego ciągu w drugim.

Deklaracja:
funkcjonować
Poz(Str., Źródło: strunowy ): liczba całkowita ;

Opis:
Zwraca liczbę całkowitą określającą pozycję pierwszego wystąpienia jednego ciągu w drugim.

Pos szuka pierwszego pełnego wystąpienia Str w źródle. Jeśli go znajdzie, zwraca pozycję znaku w Źródle pierwszego znaku w Str jako wartość całkowitą, w przeciwnym razie zwraca 0.
W poz. rozróżniana jest wielkość liter.

Przykład:

|_+_|

Funkcja PosEx

Zwraca liczbę całkowitą określającą pozycję pierwszego wystąpienia jednego ciągu w innym, gdzie wyszukiwanie rozpoczyna się od określonej pozycji.

Deklaracja:
funkcjonować
PozEx(Str, Źródło : strunowy , StartFrom : kardynał = 1): liczba całkowita ;

Opis:
Zwraca liczbę całkowitą określającą pozycję pierwszego wystąpienia jednego ciągu w innym, gdzie wyszukiwanie rozpoczyna się od określonej pozycji.

PosEx szuka pierwszego pełnego wystąpienia Str w źródle, rozpoczynając wyszukiwanie od StartFrom. Jeśli go znajdzie, zwraca pozycję znaku w Source pierwszego znaku w Str jako wartość całkowitą, w przeciwnym razie zwraca 0. PosEx zwraca również 0, jeśli StartFrom jest większe niż Length(Source) lub jeśli StartPos jest<0

Przykład:

|_+_|

Funkcja QuotedStr

Zwraca cytowaną wersję ciągu.

Deklaracja:
funkcjonować
CytowanyStr( stały S: strunowy ): strunowy ;

Opis:
Zwraca cytowaną wersję ciągu.

Znak pojedynczego cudzysłowu (') jest wstawiany na początku i na końcu ciągu S, a każdy pojedynczy znak cudzysłowu w ciągu jest powtarzany.

Przykład:

|_+_|

Funkcja odwróconego ciągu

Zwraca ciąg, w którym kolejność znaków określonego ciągu jest odwrócona.

Deklaracja:
funkcjonować
Odwrócony ciąg( stały Ciąg : strunowy ): strunowy ;

Opis: Zwraca ciąg, w którym kolejność znaków określonego ciągu jest odwrócona

Przykład:

|_+_|

Funkcja RightStr

Zwraca ciąg zawierający określoną liczbę znaków z prawej strony ciągu.

Deklaracja:
funkcjonować
PrawoStr( stały AString: AnsiString; stały Liczba: liczba całkowita): AnsiString; przeciążać ;
funkcjonować PrawoStr( stały Aciąg: Szeroki ciąg; stały Liczba: Liczba całkowita): Szeroki ciąg; przeciążać ;

Opis:
Zwraca ciąg zawierający określoną liczbę znaków z prawej strony ciągu.

AString reprezentuje wyrażenie ciągu, z którego zwracane są znaki z prawej strony. Liczba wskazuje, ile znaków ma zostać zwróconych. Jeśli jest większa lub równa liczbie znaków w AString, zwracany jest cały ciąg.

Przykład:

|_+_|

Funkcja zastępowania ciągów

Zwraca ciąg, w którym określony podciąg został zastąpiony innym podciągiem.

Deklaracja:
rodzaj
TRZastąpFlagi = zestaw (rfReplaceAll, rfIgnoreCase);

funkcjonować Zastąp ciąg( stały S, OldStr, NewStr: strunowy ; Flagi: TRZastąpFlagi): strunowy ;

Opis:
Zwraca ciąg, w którym określony podciąg został zastąpiony innym podciągiem.

Jeśli parametr Flags nie zawiera parametru rfReplaceAll, zastępowane jest tylko pierwsze wystąpienie OldStr w S. W przeciwnym razie wszystkie wystąpienia OldStr zostaną zastąpione przez NewStr.
Jeśli parametr Flags zawiera rfIgnoreCase, w operacji porównania nie jest rozróżniana wielkość liter.

Przykład:

|_+_|

Funkcja przycinania

Zwraca ciąg zawierający kopię określonego ciągu bez spacji wiodących i końcowych oraz znaków sterujących.

Deklaracja: funkcja Przycinać( stały S: strunowy ): strunowy ;

Opis: Zwraca ciąg zawierający kopię określonego ciągu bez spacji wiodących i końcowych oraz niedrukowalnych znaków sterujących.

Przykład:

|_+_|

Funkcja wielkich liter

Zwraca ciąg, który został przekonwertowany na wielkie litery.

Deklaracja: funkcja Duże litery( stały S: strunowy ): strunowy ;

Opis: Zwraca ciąg, który został przekonwertowany na wielkie litery.
UpperCase konwertuje tylko małe litery na wielkie; wszystkie wielkie litery i znaki nieliterowe pozostają niezmienione.

Przykład:

|_+_|

Procedura Val

Konwertuje ciąg na wartość liczbową.

Deklaracja: procedura Val( stały S: strunowy ; był Wynik; był Kod: liczba całkowita);

Opis:
Konwertuje ciąg na wartość liczbową.

S jest wyrażeniem typu string; musi to być ciąg znaków, które tworzą podpisaną liczbę rzeczywistą. Argument Wynik może być zmienną typu Integer lub zmiennoprzecinkową. Kod ma wartość zero, jeśli konwersja się powiedzie. Jeśli ciąg jest nieprawidłowy, indeks naruszającego znaku jest przechowywany w kodzie.

Val nie uwzględnia lokalnych ustawień separatora dziesiętnego.

Przykład:

|_+_|