Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#7
  Alt 27. Jan 2003, 08:02
Zitat von The Re@l:
sorry wenn ich nerve

Code:
procedure TForm1.FormCreate(Sender: TObject);
 var
 x, y: integer;
 m: array[1..3] of char;
begin

AjLink.PasteFromClipboard;
  m[1] := '|';
  m[2] := '|';
  m[3] := '|';

  x := pos (m[1], ajlink.Text);
  y := pos (m[2], ajlink.Text);

  linkname.Text := copy (ajlink.Text, x +1, y );

end;

das tut´s ein bisschen, aber nich richtig. Was is denn daran Falsch.
Erstmal zu deinem "Fehler"

Du rufst zweimal hintereinander Pos mit den gleichen Werten auf.
Darum bekommen x und y auch zweimal die Gleiche Position zugewiesen.

Pos liefert immer die erste gefundene Position der gesuchten Zeichenfolge. Auch wenn diese mehrmal in deinem String vorkommt !!!

Hier mal etwas code.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 tmp_string : String;
 trenn_pos : Integer;
 trennzeichen : Char;
begin
 tmp_string := ajlink.Text; // zur Manipulation arbeite ich nur mit tmp-variablen
 trennzeichen := '|'; // Dein Trennzeichen
 trenn_pos := pos (trennzeichen, tmp_string); // Position des ersten |
 Delete (tmp_string,1,trenn_pos); //alles vor dem ersten | löschen
 trenn_pos := pos (trennzeichen, tmp_string); // Position des nächsten | (da das erste gelöscht wurde, ist dies jetzt auch wieder das erste
 Delete (tmp_string,trenn_pos,Length(tmp_string)); // vom Trennzeichen (ink.) bis zum ende des Strings löschen
 linkname.Caption := tmp_string;
end;
[/b]
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat