Wykorzystanie funkcji Split w Delphi 8
Adam Boduch
Funkcja Split na pewno jest znana programistom PHP, czy Perla. Warto dodać że jest to funkcja bardzo przydatna i często używana. Umożliwia bowiem rozdzielenie łańcucha na mniejsze fragmenty na podstawie podanego separatora. W Delphi 8 za sprawą .NET funkcja Split wprowadzona została do klasy System.String.
Poniższy listing prezentuje sposób na rozdzielenie łańcucha "Ala ma kota" na pojedyncze wyrazy. Znakiem separatora będzie spacja.
program Split_String;
{$APPTYPE CONSOLE}
uses
Windows,
System; // <-- odpowiednie moduły
var
S : String;
Separator : array of Char; // separator
Result : array of String; // tablica po rozdzieleniu
I : Integer;
begin
SetLength(Separator, 1);
Separator[0] := ' '; // tylko jeden separator
S := 'Ala ma kota'; // łańcuch do rozdzielenia
Result := S.Split(Separator);
for I := Low(Result) to High(Result) do
begin
Writeln('Pozycja nr ' + Convert.ToString(I) + ': ' + Result[i]);
end;
Readln;
end.
Wobec tego, że zmienna S wskazuje na klasę System.String można z takiej zmiennej korzystać jak ze zwykłego obiektu.
Funkcja Split wymagania podania parametru w postaci tablicy typu Char zawierającej znaki mające posłużyć jako separator na podstawie którego łańcuch zostanie rozdzielony.
Rezultatem działania funkcji jest tablica typu String zawierająca rozdzielony tekst, po jednym wyrazie w jednym elemencie. Rezultatem działania takiego programu będzie pojawienie się w konsoli tekstu:
Pozycja nr 0: Ala
Pozycja nr 1: ma
Pozycja nr 2: kota
Sprawdziłem u siebie.. i działa :)
A nie można wrzucić tego do FAQ'a?
wow, w d8 string jest obiektem?
Dla mnie jakos to nie wyglonda najlepiej w PHp i perlu lepiej to wyglonda.
Nie, parametrem musi być tablica Char.
A nie można zrobić np. tak:
Result := S.Split(' &?;');
?