ExtractStrings

Adam Boduch
ExtractStrings
Moduł: Classes
function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer;

Funkcja umożliwia rozdzielenie łańcucha przekazanego w parametrze Content na podstawie separatorów.

Czasami zachodzi konieczność rozdzielenie łańcucha na podstawie określonych separatorów (znaków) i przypisanie rozdzielonych fragmentów tekstu do tablicy czy innego typu danych. Funkcja ExtractStringsrozdziela łańcuch Content na podstawie separatórow określonych w parametrze Separators. Rozdzielone fragmenty łańcucha zostaną przypisane do typu TStrings określonego w parametrze Strings.

WhiteSpaceto zbiór znaków, które będą ignorowane jeżeli występują na początku rozdzieloneg fragmentu. Aby lepiej to zrozumieć przypatrz się poniższemu fragmentowi kodu:

const
  Foo = 'Delphi, Classes, Split, rozdzielanie łancucha; Memo1';
begin
  ExtractStrings([',', ';'], [], Foo, Memo1.Lines);
end;

Takie instrukcje spowodują dodanie do komponentu TMemonastępującego tekstu:

<tt>Delphi
Classes
Split
rozdzielanie łancucha
Memo1</tt>

Jak widać uwzględnione zostały spacje na poczatku rozdzielonych fragmentów. Aby temu zaradzić możemy wywołać funkcję ExtractStrings w następujący sposób:

ExtractStrings([',', ';'], [' '], Foo, Memo1.Lines);
Funkcja `ExtractStrings` zwraca ilość fragmentów, które zostały przypiasne do parametru `Strings`.

Zobacz też:

2 komentarzy

W Delphi nie sprawdzałem ale gdy korzystam z Lazarusa to funkcja nie działa prawidłowo, jeżeli w łańcuchu wejściowym występują puste kolumny (kilka separatorów pod rząd). Funkcja pomija wtedy puste łańcuchy np. gdy we= 123,abc,,,xyz zwraca tylko trzy wiersze 123 abc xyz

Kurwa... A ja przez tyle lat robilem to "recznie"... Tak to jest jak sie nie zna funkcji... xD