Entwickler-Ecke

Sonstiges (Delphi) - string abschneiden...


Leathl - Fr 28.02.03 18:20
Titel: string abschneiden...
---


Keldorn - Fr 28.02.03 18:36

Hallo schau dir mal copy,Pos und delete an.

Mfg Frank


Leathl - Fr 28.02.03 18:46

---


Keldorn - Fr 28.02.03 18:49

Na was unterscheidet denn das erste Wort vom zweiten? irgendwas muß dazwischen sein. frage mit Pos(' ',s) das erste Leerzeichen ab und lösch dann den Rest

Mfg Frank


Leathl - Fr 28.02.03 19:03

---


Christian S. - Fr 28.02.03 19:06

Was er meint, ist: Du suchst nach dem ersten Zeichen, welches kein Buchstabe ist. Dort endet das erste Wort. Dann weißt Du, wo Du abschneiden musst.


Leathl - Fr 28.02.03 19:49

---


Keldorn - Fr 28.02.03 20:20

es kommt drauf an, wie die Zeilen aufgebaut sind
entweder du hangelst dich einzeln durch den String und suchst dein "Trennzeichen" (wie Peter) oder du gehst (wie ich jetzt) davon aus, daß die Wörter mit einem Leerzeichen getrennt sind (also nix mit Komma oder so)


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Button1Click(Sender: TObject);
Var i,_pos:integer;
    s:string;
begin
  for i:=0 to Memo1.Lines.count-1 do
    begin
      s:=memo1.lines[i];
      _pos:=pos(' ',s);
      if _pos<>0 then
        //Leerzeichen gefunden, rest der zeile abknipsen
        begin
          delete(s,_pos,length(s)-_pos+1);
          memo1.lines[i]:=s;
        end;
    end;
end;


so schwer ist das doch nicht, oder?

Mfg Frank


Delete - Fr 28.02.03 20:24

So jetzt mal ohne Debugger blind hier reingehauen:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  i : Integer;
  s : String;
begin
  for i := 0 to Memo1.Lines.Count-1 d
  begin
     s := copy(Memo1.Items.Strings[i], 0, pos(' ', Memo1.Items.Strings[i]));   
     ShowMessage(s);
  end;


Leathl - Fr 28.02.03 20:35

---