Jak podzielić tekst znajdujący się w RichEdit na słowa.
Tzn. Kazde słowo do innej pozycji w tablicy.
tablica[1] := 'Ala';
tablica[2] := 'ma';
tablica[3] := 'Kota';
itd.
hlp.
--
[ Delphi... i wszystko jasne ]
Jak podzielić tekst znajdujący się w RichEdit na słowa.
Tzn. Kazde słowo do innej pozycji w tablicy.
tablica[1] := 'Ala';
tablica[2] := 'ma';
tablica[3] := 'Kota';
itd.
hlp.
--
[ Delphi... i wszystko jasne ]
Musisz przegladac liniami, a pozniej bajt po bajcie, jak znajdziesz spacje, koczyc wyraz i wpisywac go do tablicy... Cos takiego:
for i:=0 to richedit1.lines.count -1 do
begin
str {jakis pomocniczy string} :=; for j:=1 to length(richedit1.lines[i]) do begin if richedit1.lines[i][j]=#32 then begin setlength(tab.length(tab)+1); // tab to twoja tablica tab[length(tab)-1]:=str; continue; end; str:=str+richedit1.lines[i][j]; str:=
;
end;
if str<>'' then
begin
setlength(tab.length(tab)+1);
tab[length(tab)-1]:=str;
end;
end;
powinno dzialac, ale nie mam kompilatora delphi i nie moge sprawdzic
Sorry ale przez je**ne tpsa nie mogłem się wczoraj dostać do netu,
a napisałem to wcześniej, więc mimo iż jest to pewnie to samo
co wyżej to i tak wklejam, mój kod:
var
s: string;
Slowa: TStringList;
begin
Slowa := TStringList.Create;
s := RichEdit1.Text + ' ';
s := TrimLeft(StringReplace(s, #13#10, ' ', [rfReplaceAll]));
while Pos(#32#32, s) > 0 do Delete(s, Pos(#32#32, s), 1);
while Pos(' ', s) > 0 do
begin
Slowa.Add(Copy(s, 1, Pred(Pos(' ', s))));
Delete(s, 1, Pos(' ', s));
end;
end;
i teraz w Slowa.Strings[0] jest pierwsze słowo itd...
--
Pozdrawiam...
piechnat
Mam CHYBA lepsza propozycje. moze sprobuj zapisac ten text do pliku a pozniej wczytywac slowo po slowie (przypomne, ze w ten sposob sa Od razu wychwytywane spacje).
P. S. Napisalem ten spozniony post, zebys mial wiekszy wybor:)--Delphi vs. C++
Ja proponuję użycie starej dobrej funkcji char * strtok (const char * string, const char * delimiters );. Jednakże musisz pamiętać, że ta funkcja wstawia znak '\0' w miejsce poszukiwanych znaków (w tym przypadku będzie to spacja), więc musisz skopiować sobie text z memo do jakiejś tablicy. Jest to chyba najszybszy sposób (zajmuje jakieś 2 linijki). Więcej informacji o tej funkcji znajdziesz jak zwykle w helpie :P --"Imagination is more important than knowledge." - A. Einstein