[Delphi] Jak rozbic string w tablice?

0

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}

0

Zajrzyj w zrodla b4p albo w moje zrodelka FB :)--W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi.

0

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 &gt 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

0

Nie ma nic wbudowanego? A jak to najprzejzysciej dodac? Da sie to zrobic jakos na zewnatrz, czy wkleic do swojego kodu?

0

Czy powinienem stworzyc nowy projekt i dodac go gdzies w uses?

0

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).

P. S. Tam w prawym rogu, ostatnia ikonka (podpisana "Usuń post" :D ) służy do edycji postu. Jak zapmniałeś czegoś dopisać to możesz tego użyć.

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

0

Zaadoptowana do moich potrzeb dziala znakomicie...

Wielkie dzieki. Szczególnie Adamowi!

PS. Co to jest b4p i "moje zrodelka FP"?

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1