Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: aus datenblöcken bestimmte Daten filtern

  Alt 28. Feb 2007, 08:44
Zitat von BBoy:
Ich sniffe den Datenverkehr vom Internet mit. Und aus diesen Datenblöcken möchte ich bestimmte daten extrahieren.
Nun sind die Daten die ich extrahieren möchte nicht in einem datenblock, sondern über mehrere Blöcke verteilt (am stück).
Hi,
wie genau extrahierst Du denn die Daten, die zwischen diesen Markierungen stehen? Diese können doch genauso über mehr als einen Block verteilt sein (sehe zumindestens nicht, warum man das ausschließen können könnte). Dann hättest Du doch theoretisch das gleich Problem, oder?

Jedenfalls hast Du mindestens zwei Wege, die beide über einen Puffer führen. Einerseits kannst Du einen großen Puffer verwenden. In den schreibst Du jeden empfangenen Datensatz, so dass Du eine lange Kette aller Daten erhälst. Nach jedem Anhängen neuer Daten schaust Du dann einfach, ob %ENDE sich schon im Puffer befindet.
Die Alternative besteht darin, dass Du nur diesen Spezialfall abdecken möchtest. An sich kannst Du hier einen Puffer nehmen, dessen Größe G gerade der von %ENDE entspricht. Dann kannst Du einfach die G letzten Zeichen (eigentlich sogar G-1, aber hier egal), des Datensatzes in diesen Puffer schreiben. Nun kannst Du für den nächsten Datensatz einfach schauen ob der Puffer + die ersten G Zeichen des neuen Datums %ENDE enthalten. Ist dies der Fall, dann war Ende am Anfang des neuen Satzes oder über zwei Blöcke verteilt. Der Rest bleibt wie gehabt.

Gruß Der Unwissende

[edit]
unnötiges /quote entfernt
[/edit]
  Mit Zitat antworten Zitat