HTML-Datei ändern

  • VB6

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von foxm2k.

    HTML-Datei ändern

    Hi Comm,

    ich hab da mal wieder was Größeres vor mir liegen. Dazu muss ich in einem HTML-File eine Variable, die irgendwo in der Datei ist (immer an einer anderen Stelle) ersetzen. Das Ganze soll dann etwa so aussehen:

    xxxx wird zu bla bla bla

    Nun zu meiner Frage:

    Wie kann ich dieses xxxx mit meinem Text ersetzen?
    Wenn dieses xxx so eindeutig benannt ist, daß es garantiert nur ein einziges Vorkommen dieses Begriffes inerhalb des Textes gibt... replace(x,y)
    Wenn es öfter vorkommt dann mußt du dir halt andere Kriterien suchen die den Ort des Auftretens wenigstens so genau beschreiben daß es innerhalb dieses Teilbereichs des Textdokuments (was anderes ist eine html Datei ja nicht) nur einmal vorkommt, dann wieder ersetzen.
    Auslesen natürlich wie bei einer ganz normalen Textdatei, und zurückschreiben genauso.
    Naja, was ich in solchen Fällen mache ist, daß ich mir irgendwelche Strukturmerkmale suche, die wirklich immer gleich sind. Beispielsweise daß das xxx immer innerhalb der dritten Tabelle steht (also nach dem dritten Auftreten von Table...) oder nach dem insgesamt fünften auftreten von Div=... oder irgendwas in der Richtung. Dann schneidest du dir über String-Operationen (Left - Right - Instr - Instrrev - Mid) genau den passenden Teil aus und ersetzt dann gezielt.
    Wenn es beispielsweise immer das letzte Auftreten von xxx ist dann bestimm mit Instrrev den Start, also die Zeichenposition. Ok, das wär natürlich der schönste Fall.

    Wenns allgemein das n-te Auftreten ist: Geh sequentiell durch... Bestimme die Zeichenposition des ersten Auftretens mit Instr, addiere die Anzahl der Zeichen des gesuchten Ausdrucks mit len(xxx) dazu und beginne die Suche ab dieser Position nach dem nächsten Auftreten, dann addiere wieder len(xxx) dazu und mach das Spielchen sooft bis du am n-ten Auftreten der gewünchschten Zeichenfolge bist.

    Gruß,

    f0x
    Aber das macht doch nichts.

    Das Verfahren das ich im letzten Post beschrieben hab ist allgemeingültig. Du könntest sogar eine Function draus bauen der du den zu durchsuchenden String und den Parameter n (damit ist das n-te Auftreten gemeint) übergibst und die dir einen Integer Wert zurückgibt, der dir die Zeichenposition innerhalb des String angibt.
    Ob das jetzt alles in einer Zeile steht oder in unterschiedlichen ist doch egal. Innerhalb des Strings ist ein Zeilenumbruch (zumindest unter Windows) nichts anderes als ein chr(13) = carriage return (CR) und ein chr(10) = line feed (LF) hintereinander. Daher auch vbCRLF.