![]() |
Copy() von bis, wie gehts genau?
Hi und zwar bin ich gerade an einem neuen projekt.
Es ist eigentlich ganz simpel, doch da ich noch ein anfänger bin, ist diese eine Sache noch ein wenig schwer. ich habe nun einen text auf einem String gespeichert. In diesem Text will ich nun etwas bestimmtes raus kopieren. Das geht wie ich gelesen habe mit der funktion copy(). Jetzt ist nur die Sache, das der text den er kopieren soll immer anders ist. Das einzige was bleibt ist, das der Text der kopiert werden soll zwischen " steht. Wie kann ich das jetzt genau sagen, das er alles kopieren soll was zwischen den beiden " steht? Suchen tue ich die das was ich haben will mit der pos() funktion. Würde mich über eine Antwort sehr freuen. EDIT: Am besten wäre es wenn ihr mir sagen könntet, wie ic einen Text kopieren kann, den ich zuvor mit der pos() funktion gesucht habe. Beispiel: <input type="text" name="url" size="40" style="font-family: Tahoma; font-size: 8pt" value="http://lix.in/-39f1c3"> </td><td align="right" style="padding-right: 5px"></td> Das ist der text auf dem String. Dann suche ich mit pos('http://lix.in/', x); auf x liegt der text. Und dann suche ich noch pos('"> </td><td', x); Und jetzt soll er genau das kopieren was zwischen den beiden pox() funktionen liegt. wenns so geht. Ansonsten wie oben beschrieben |
Re: Copy() von bis, wie gehts genau?
Du musst zuerst die Position des ersten "" ermittlen, 1 dazuzählen
Dann mit PosEx() das 2. suchen, 1 abziehen. Differenz zwischen beiden Positionen ermitteln
Delphi-Quellcode:
s2 := Copy( s, <Pos1>, <Differenz>);
|
Re: Copy() von bis, wie gehts genau?
die Antwort hast du schon selbst geliefert.
Die Funktion Copy braucht als Parameter den String, den ersten Buchstaben, den du mit Pos() angibst und die Länge des zu kopierenden Strings. Da du wieder nach ner Position suchst, musst du einfach herausbekommen wie viele Zeichen zwischen Start und Endzeichen liegen. Also die zweite Position von der ersten abziehen
Delphi-Quellcode:
NeuerString:=Copy(AlterString,Pos1,Pos2-Pos1);
|
Re: Copy() von bis, wie gehts genau?
Nagut, aber ich verstehe es nicht so ganz, da sich ja ein teil meines Strings jedesmal ändert. Ums mal zu erläutern:
ich möchte einen Link verschlüsseln. So den ersten teil, also das senden des links zu der seite hab ich. jetzt muss ich nur den zurück gegebenen wert wieder inden und ausgeben. So das ist aber nicht so einfach, da sich die verschlüsslung ja jedesmal ändrt vom Link. Also jeder Link ist ja anders. So das heißt ich kann auch in meinem Quelltext nicht einfach nur nach " suchen, da es da ja in meinem text mehrmals gibt. So hier mal ein teil des Quelltextes: <td><table border="0" width="100%" cellspacing="0" cellpadding="0"><tr><td valign="top"><input type="text" name="url" size="40" style="font-family: Tahoma; font-size: 8pt" value=" ![]() </td><td align="right" style="padding-right: 5px"></td> Das fett geschriebene nöchte ich auslesen. Nur das was hinter ![]() Wie sol ich das denn suchen? ich könnte natürlih nach ![]() |
Re: Copy() von bis, wie gehts genau?
Vielleicht wären hier reguläre Ausdücke besser geeignet
|
Re: Copy() von bis, wie gehts genau?
Wie meinste den das?
|
Re: Copy() von bis, wie gehts genau?
Suche nach
![]() |
Re: Copy() von bis, wie gehts genau?
Ich find ees toll das in so kurzer zeit so viele antworten kommen, aber könnt ihr das nicht mal anhand meines Textes machen?
Ich bin jetzt davon ausgegangen das "Weitersuchen" mir der function posex geht. Aber diese function gibt es garnicht. |
Re: Copy() von bis, wie gehts genau?
in deinem HTML code sind aber mehrere ' " ' eingebaut, bist du sicher, dass du den link so finden kannst?
Ich würde dann nach "www" suchen und dann nach dem nächsten ' " ' |
Re: Copy() von bis, wie gehts genau?
Welche Delphi-Version setzt du ein?
|
Re: Copy() von bis, wie gehts genau?
Ich hab geschaut
![]() Wenn ich danach suche findet der auch nur das, aber das mit dem weitersuchen versteh ich nicht. Denn PosEx gibt es garnicht. Ich nehme mal an das es Delphi 32 ist. Und der Compiler ist von CodeGear RAD Delphi 2009 |
Re: Copy() von bis, wie gehts genau?
|
Re: Copy() von bis, wie gehts genau?
Zitat:
![]() Für deinen Fall dürfte es einfacher sein, mit Pos den ersten Treffer wie von dir selbst vorgeschlagen zu suchen, sich diese Position zu merken und dann mit der Funktion PosEx das abschließende Anführungszeichen zu suchen. Mit einer Kombination aus Pos, PosEx und Copy solltest du dann eigentlich glücklich werden. Falls nicht, frag halt noch mal konkret nach, wo es hakt. :) Bis denn Bommel |
Re: Copy() von bis, wie gehts genau?
Zitat:
|
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz