Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Copy() von bis, wie gehts genau? (https://www.delphipraxis.net/127333-copy-von-bis-wie-gehts-genau.html)

SyntaxXx 11. Jan 2009 14:41


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

mkinzler 11. Jan 2009 14:47

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>);

Noedel 11. Jan 2009 14:52

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);

SyntaxXx 11. Jan 2009 15:07

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="http://lix.in/-39f1c3">

</td><td align="right" style="padding-right: 5px"></td>


Das fett geschriebene nöchte ich auslesen.
Nur das was hinter http://lix.in/ stehtm ändert sich immer.
Wie sol ich das denn suchen?

ich könnte natürlih nach http://lix.in/ suchen, hab schon geschaut, das gibts auch nur einmal im gesammten Quelltext. Und dann könnt ich natürlich auch sagen das kopieren + 6 weitere zeichen. Nur irgentwann werdes es bestimmt auch mal mehr als 6 sein, und dann ist mein programm wertlos. Deswegen muss ich das irgentwie anders machen.

mkinzler 11. Jan 2009 15:09

Re: Copy() von bis, wie gehts genau?
 
Vielleicht wären hier reguläre Ausdücke besser geeignet

SyntaxXx 11. Jan 2009 15:10

Re: Copy() von bis, wie gehts genau?
 
Wie meinste den das?

Blackheart 11. Jan 2009 15:21

Re: Copy() von bis, wie gehts genau?
 
Suche nach http://lix.in/ - Position merken - suche weiter bis " neue Position - dazwischen ist die länge des Strings.

SyntaxXx 11. Jan 2009 15:32

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.

Noedel 11. Jan 2009 15:32

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 ' " '

mkinzler 11. Jan 2009 15:34

Re: Copy() von bis, wie gehts genau?
 
Welche Delphi-Version setzt du ein?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 Uhr.
Seite 1 von 2  1 2      

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