Entwickler-Ecke

Sonstiges (Delphi) - String durchsuchen


elzumo - Di 09.10.07 17:29
Titel: String durchsuchen
Hallo, ich habe ein Programm geschrieben, welches über POST Daten an ein Script sendet und dan die Seite, die man im Browser angezeigt bekommt in einen String speichert.

Im String ist dann die komplette Webseite.
Mein Problem ist jetzt, dass ich nicht weiß, wie den String nach dem was ich brauche durchsuchen kann.
Das einzige was ich brauche ist ein Hash, welcher dann auf der Webseite steht. Der Hash ist jedoch jedes Mal anders.

Da das was vor und hinter dem Hash steht immer gleich ist, habe ich mir gedacht, dass ich danach suche und dann irgendwie an den Hash komme.

Beispiel des Strings:

Quelltext
1:
2:
3:
4:
5:
6:
7:
<html>
<!-- hier ist dann ganz viel html usw. -->

>Links</a> » 43c658911daaa4829d161aab9065ca66</span></b></font></td>

<!-- hier dann wieder endlich viel html -->
</html>


Wie kann ich das hinbekommen`?


jasocul - Di 09.10.07 17:34

:welcome: in der Entwickler-Ecke

Die Funktionen Pos und Copy sollten Dir bei der Lösung des Problems helfen.


elzumo - Di 09.10.07 17:38

Jo, danke für das Willkommen.
Werd mal ein wenig herumprobieren, habe da was auf deiner Webseite gefunden. :)

Falls ich es nicht hinbekomme dann kann ich ja noch mal schreiben.


elzumo - Di 09.10.07 18:29

Hat alles prima geklappt, an dieser Stelle noch ein Danke!
Damit alle etwas davon haben hier meine Lösung des Problems:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function getHash(HTML: String; sub1: String; sub2: String): String;
Var
 pos1,pos2: integer;
begin
  pos1 := Pos(sub1,HTML);
  pos2 := Pos(sub2,HTML);

  result := Copy(HTML, pos1 + StrLen(PChar(sub1)), pos2 - (pos1 + StrLen(PChar(sub1))));
end;


jasocul - Di 09.10.07 18:56

Hat das eine besonderen Grund, warum Du in PChar wandelst und dann StrLen verwendest?


elzumo - Di 09.10.07 19:23

Ich hatte es vorher ohne die Umwandlung gemacht, dann aber die Meldung bekommen, dass ich unkompatible Typen verwenden würde.


Sinspin - Di 09.10.07 19:57

So war das nicht gemeint, die Funktion Length() tut es auch. Und dazu noch mit String und nicht mit PChar, also ein Stück einfacher :wink:


elzumo - Di 09.10.07 21:01

Achso. Naja ich kenne strlen() aus C++. :)