Avatar billede Slettet bruger
02. november 2002 - 20:23 Der er 8 kommentarer og
2 løsninger

Se hvad hvert ord i en sætning er - 2

Jeg kunne ikke rigtig se meningen i den kode, som dkn gav mig i et tidligere spørgsmål... Jeg prøvede koden

procedure TForm1.Button1Click(Sender: TObject);
var
st, ord1, ord2, ord3:String;
begin
st := 'SENDMSG ORD1 ORD2 ORD3';
st := copy(st, pos(' ', st)+1, length(st));
ord1 := (copy(st, 0, pos(' ', st)-1));
st := copy(st, pos(' ', st)+1, length(st));
ord2 := (copy(st, 0, pos(' ', st)-1));
st := copy(st, pos(' ', st)+1, length(st));
ord3 := (copy(st, 0, pos(' ', st)-1));
showmessage(ord1+'...'+ord2+'...'+ord3);
end;

Men det virker ikke så godt.
Jeg vil også gerne kunne se det allerførste ord i en sætning. Og kunne se teksten fra et bestemt punkt, fx fra ord1 og så alle ord som der kommer derefter.
Avatar billede dkn Nybegynder
02. november 2002 - 22:20 #1
procedure TForm1.Button1Click(Sender: TObject);
var
st, ord1, ord2, ord3:String;
begin
st := 'SENDMSG ORD1 ORD2 ORD3';
st := copy(st, pos(' ', st)+1, length(st));
ord1 := (copy(st, 0, pos(' ', st)-1));
st := copy(st, pos(' ', st)+1, length(st));
ord2 := (copy(st, 0, pos(' ', st)-1));
ord3 := copy(st, pos(' ', st)+1, length(st));
//ord3 := (copy(st, 0, pos(' ', st)-1));
showmessage(ord1+'...'+ord2+'...'+ord3);
end;


Men ok kan da se om jeg kan fixe noget smartere kode. Men jeg går ud fra at du er ved at lave noget socket ting hvor du så vil sende nogle kommandoer, jeg plajer normalt at lave et array i som den splittede tekst så bliver lagt ind i.
Avatar billede Slettet bruger
03. november 2002 - 00:46 #2
okay:) Tak for din hjælp =)
Avatar billede zimp Nybegynder
03. november 2002 - 09:48 #3
List: TStringList;

List.Text := ReplaceString(st, ' ', #13, [rfReplaceAll]);

Sådan kan du få dem i en stringlist
Avatar billede Slettet bruger
03. november 2002 - 15:01 #4
zimp, sådan kunne man også tænke det. Det prøver jeg :)
Avatar billede Slettet bruger
03. november 2002 - 16:01 #5
hvis du lægget et svar,,,
Avatar billede Slettet bruger
04. november 2002 - 09:43 #6
men...
Hvis man vil have teksten fra et punkt også ud i uendeligheden hvordan så?
eks:
ORD alle ordene som er her vil jeg gerne vide...
Avatar billede zimp Nybegynder
04. november 2002 - 14:50 #7
Noget i denne stil?

Placering := List.IndexOf('ORD');

for i:=Placering to List.Count-1 do begin
EtOrd := List[i];
end;

...eller hvis du har den originale string:

Ord := 'ORD';
Resten := Copy(Original, Pos(Ord, Original)+Length(Ord)+1, MAXINT);
Avatar billede dkn Nybegynder
04. november 2002 - 16:35 #8
problemet er nu bare hvis teksten du har med at gøre indeholder et linie skift
Avatar billede zimp Nybegynder
04. november 2002 - 16:42 #9
Jeg havde indtryk af at det var ord adskilt af spaces. Hvis det skal splitte rigtig tekst korrekt skal der meget, meget mere til... hvad skal det bruges til formatc?
Avatar billede Slettet bruger
16. november 2002 - 21:55 #10
zimp, til en irc klient
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester