AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Text an einer bestimmten stelle kopieren

Ein Thema von The Re@l · begonnen am 26. Jan 2003 · letzter Beitrag vom 27. Jan 2003
Antwort Antwort
The Re@l

Registriert seit: 2. Jan 2003
77 Beiträge
 
#1

Text an einer bestimmten stelle kopieren

  Alt 26. Jan 2003, 17:52
Code:
ajfsp://file|Versuch|E6940DEB8DA42DBAF6A4E458A994B271|836987424/
Ich möchte nur das Wort Versuch aus dem Text haben, da es aber variable ist, dachte ich mir das mann es so machen könnte das er nur den Text zwischen | | rauskopieren könnte. Geht das so ohne weiteres?

Hilfe wäre super!
The Re@l
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Text an einer bestimmten stelle kopieren

  Alt 26. Jan 2003, 18:04
Zitat von The Re@l:
... könnte das er nur den Text zwischen | | rauskopieren könnte. Geht das so ohne weiteres? ...
Geht ganz einfach.

Stichwörter

Copy und Pos

Schau mal in der OnlineHilfe.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
The Re@l

Registriert seit: 2. Jan 2003
77 Beiträge
 
#3
  Alt 26. Jan 2003, 19:15
so richtig verstehen tu ich es ja nicht was da Steht. von daher lern ich erstmal wider aus dem Buch.

bis dann

The Re@l
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4
  Alt 26. Jan 2003, 19:30
Zitat von The Re@l:
so richtig verstehen tu ich es ja nicht was da Steht. von daher lern ich erstmal wider aus dem Buch.
Die Funktion POS liefert dir die Start Position von einen Substring.

z.B.:

Pos ('ist','Dies ist ein Test') liefert 6 als ergebniss (ist beginnt an der sechsten stelle des Strings.

In einem Fall müsstest Du nach dem ersten auftauchen von "|" suchen.
Dann von dieser Position + 1 in eine Stringvariable kopieren. Damit hast Du einen String der mit dem Wort das duch haben möchtest beginnt.

Jetzt suchst Du nach dem nächsten "|" und kopierst einfach vom anfang deines neuen Strings bis zu der gefundenen Position -1.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#5
  Alt 26. Jan 2003, 19:31
Ganz einfach!
Über Pos oder Ansipos ermittelst du das ERSTE Vorkommen deines Trennzeichens. Anschließend löschst du alle Zeichen bis dahin aus dem String ( Delete() ). Nun suchst du wieder mittels Ansipos dein (jetzt ja das zweite) Trennzeichen und kopierst dann mit Copy alles bis zu dieser Stelle aus dem String. Dein Kopiertes ist jetzt das Wort Versuch.

Gruß
  Mit Zitat antworten Zitat
The Re@l

Registriert seit: 2. Jan 2003
77 Beiträge
 
#6
  Alt 27. Jan 2003, 08:17
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.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#7
  Alt 27. Jan 2003, 09: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
The Re@l

Registriert seit: 2. Jan 2003
77 Beiträge
 
#8
  Alt 27. Jan 2003, 09:11
Ich danke Dir

Jetzt hats auch geklingelt. Aller anfang ist schwer .
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz