Jak nazywa sie funkcja, jezeli taka jest, rozbijajaca mi string w tablice, gdzie znakiem rozdzielajacym elementy różnych komórek jest jakiś konkretny znak?
Chodzi mi o odpowiednik "explode" w PHP. {glowa}
Jak nazywa sie funkcja, jezeli taka jest, rozbijajaca mi string w tablice, gdzie znakiem rozdzielajacym elementy różnych komórek jest jakiś konkretny znak?
Chodzi mi o odpowiednik "explode" w PHP. {glowa}
Zajrzyj w zrodla b4p albo w moje zrodelka FB :)--W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi.
W b4p Adam Boduch umieścił taki oto moduł:
(*
b4p Project v. 1.1
-----------
Utworzenie pliku: 28.06.2002 00:28
Autorzy: Adam Boduch [[email protected]]
-----------
Modul SplitUnit
http://4programmers.net
*)
unit SplitUnit;
(*
Modul ten zawiera procedure Split, ktora rozdziela dane w Stringu wg. okreslonego
znaku.
*)
interface
uses Windows;
var
KeyChar : Char = #1; * znak wg. bedzie nastepywac rozdzielenie
type
TSplit = array of String; * nowy typ danych okreslajacy tablice stringow
procedure Split(Value : String; var Output : TSplit); * funkcja rozdzielajaca Split
implementation
procedure Split(Value : String; var Output : TSplit);
var
iCount : Integer;
procedure Explode;
var
Found : Integer;
begin
SetLength(Output, iCount+1);
Found := Pos(KeyChar, Value); * najpierw nastepuje odnalezienie szukanego znaku
{ pozniej za pomoca funkcji Copy nastepuje skopiowanie czesci danych do elementu
tablicy }
Output[iCount] := Copy(Value, 1, Found -1);
Delete(Value, 1, Found); * skopiowane juz dane zostaja ze stringa usuniete
Inc(iCount); * zwiększenie licznika
Found := Pos(KeyChar, Value); * ponowne odszukanie znaku KeyChar
if Found > 0 then Explode; * w razie znaleienia ponownie wywolaj te procedure
end;
begin
{
Funkcja Split powoduje rozdzielenie danych ze stringa na kilka(kilkanascie)
elementow i przypisanie jej do tablicy Output. Procedura ta wywoluje inna - Explode,
ktora to jest procedura rekurencyjna (o rekurencji mozesz poczytac m.in na stronie
www.4programmers.net/algo/ ) i to ona ma kluczowe zadanie rozdzielenie lancucha.
}
iCount := 0;
SetLength(Output, 1); * okreslenie liczby elementow tablicy dynamicznej
Insert(KeyChar, Value, Length(Value)+1); * dodanie na samym koncu lancucha ze stalej KeyChar
Explode; * wywolanie funkcji rekurencyjnej
end;
end.
Mam nadzieję, że się nie obrazi, że to tu umieściłem. Jednak pochodzi to z b4p, którego kod jest oficjalnie dostępny, wobec czego każdy może sobie podejrzeć te procedury.--Jest jeszcze jeden błąd ... :)
Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.
Pomoc do Delphi po polsku. http:*www.4programmers.net/forum/index.php?action=show&id=21335&c=2
Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net
Nie ma nic wbudowanego? A jak to najprzejzysciej dodac? Da sie to zrobic jakos na zewnatrz, czy wkleic do swojego kodu?
Czy powinienem stworzyc nowy projekt i dodac go gdzies w uses?
kondziop napisał:
Czy powinienem stworzyc nowy projekt i dodac go gdzies w uses?
Możesz utworzyć nowy moduł i wkleić to co tu widzisz, albo tylko skopiować samą procedurę (uczciwiej chyba będzie jak użyjesz całego modułu).
Jest jeszcze jeden błąd ... :)
Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.
Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2
Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net
Zaadoptowana do moich potrzeb dziala znakomicie...
Wielkie dzieki. Szczególnie Adamowi!
PS. Co to jest b4p i "moje zrodelka FP"?
kondziop napisał:
PS. Co to jest b4p i "moje zrodelka FP"?
b4p to program do przeglądania postów offline. Z tego programu pochodzi ten moduł.--Jest jeszcze jeden błąd ... :)
Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.
Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2
Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net