ExtractStrings
Adam Boduch
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 ExtractStrings
rozdziela ł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.
WhiteSpace
to 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 TMemo
nastę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ż:
kurczę, ja też sobie zrobiłem własną funkcję na potrzeby czytania csv, no ale moja nie pomija pustych wartości:)
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