AGB  ·  Datenschutz  ·  Impressum  







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

Copy() von bis, wie gehts genau?

Ein Thema von SyntaxXx · begonnen am 11. Jan 2009 · letzter Beitrag vom 11. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#1

Copy() von bis, wie gehts genau?

  Alt 11. Jan 2009, 15:41
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Copy() von bis, wie gehts genau?

  Alt 11. Jan 2009, 15:47
Du musst zuerst die Position des ersten "" ermittlen, 1 dazuzählen
Dann mit PosEx() das 2. suchen, 1 abziehen.
Differenz zwischen beiden Positionen ermitteln
s2 := Copy( s, <Pos1>, <Differenz>);
Markus Kinzler
  Mit Zitat antworten Zitat
Noedel
(Gast)

n/a Beiträge
 
#3

Re: Copy() von bis, wie gehts genau?

  Alt 11. Jan 2009, 15:52
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

NeuerString:=Copy(AlterString,Pos1,Pos2-Pos1);
  Mit Zitat antworten Zitat
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#4

Re: Copy() von bis, wie gehts genau?

  Alt 11. Jan 2009, 16:07
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Copy() von bis, wie gehts genau?

  Alt 11. Jan 2009, 16:09
Vielleicht wären hier reguläre Ausdücke besser geeignet
Markus Kinzler
  Mit Zitat antworten Zitat
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#6

Re: Copy() von bis, wie gehts genau?

  Alt 11. Jan 2009, 16:10
Wie meinste den das?
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Copy() von bis, wie gehts genau?

  Alt 11. Jan 2009, 16:21
Suche nach http://lix.in/ - Position merken - suche weiter bis " neue Position - dazwischen ist die länge des Strings.
Blackheart
  Mit Zitat antworten Zitat
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#8

Re: Copy() von bis, wie gehts genau?

  Alt 11. Jan 2009, 16:32
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.
  Mit Zitat antworten Zitat
Noedel
(Gast)

n/a Beiträge
 
#9

Re: Copy() von bis, wie gehts genau?

  Alt 11. Jan 2009, 16:32
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 ' " '
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Copy() von bis, wie gehts genau?

  Alt 11. Jan 2009, 16:34
Welche Delphi-Version setzt du ein?
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:21 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