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"