Anfänger: Wie kann ich Text ersetzen in einer htm Datei ?

  • Hi,
    Ich bin noch recht neu bei AutoIt und brauch mal Hilfe nachdem ich hier schon die ganze Zeit rumbastel, aber nicht weiterkommen.
    Habe mehrere ".htm" Files und möchte in jedem der etwa 10 Files das Wort "Nvu" gegen "Dreamweaver" austauschen.
    Die letzten 3 Zeilen des Scripts sind das einzige was bisher funktioniert (damit kann ich die Zeilen komplett überschreiben. Aber leider nur festgelegte Zeilen. Da das Wort "Nvu" aber in allen Dateien in einer anderen Zeile steht bringt das leider so nicht viel...).
    Mir ist trotz Google Suche und Tutorials noch nicht klar welche Reihenfolge hinter dem Befehl "StringReplace" eingehalten werden soll.
    Wenn jemand nen Code-Schnipsel hat, dann werde ich mich dagegen nicht wehren :)
    Ich danke für alle Hilfen !!!

    Code
    #include <File.au3>
    FileOpen ("c:/Downloads/index.htm", 1)
    FileRead ("c:/Downloads/index.htm")
    StringReplace ("NVU", " ", "Dreamweaver")
    FileClose ("c:/Downloads/index.htm")
    
    
    ;Example: Write to line 3 of c:\test.txt REPLACING line 3. Die 1 hinten bedeutet "überschreiben"
    ;_FileWriteToLine("c:\Downloads\index.htm", 2, "<!-- http://www.Dreamweaver.com/ -->", 1)
    ;_FileWriteToLine("c:\Downloads\index.htm", 12, "<!-- http://www.Dreamweaver.com/ -->", 1)

    Gruß,
    Einsatz

    4 Mal editiert, zuletzt von Einsatz (1. März 2011 um 16:09)

    • Offizieller Beitrag

    Du musst dabei schon Variablen benutzen. ;)

    So geht's:

    Spoiler anzeigen
    [autoit]


    $sHTMLFilename = "c:/Downloads/index.htm"
    $sFile = FileRead ($sHTMLFilename)
    $sFile = StringReplace($sFile, "NVU", "Dreamweaver")
    $hFile = FileOpen($sHTMLFilename, 2)
    If $hFile <> -1 Then
    FileWrite($hFile, $sFile)
    FileClose($hFile)
    EndIf

    [/autoit]
  • Waoh, vielen Dank !!!
    Darauf wäre ich so schnell nicht gekommen. Du hast mir den Tag gerettet. Hab den ganzen Tag probiert und getan.
    Nochmals besten Dank für deine großartige Hilfe !!!

    Gruß,
    Einsatz

  • Hallo Einsatz,

    nur zur Vervollständigung, es geht auch so:

    [autoit]

    #Include <File.au3>
    $sHTMLFilename = "c:/Downloads/index.htm"
    _ReplaceStringInFile($sHTMLFilename,"NVU", "Dreamweaver")

    [/autoit]

    ich denke aber dass dein Problem bereits gelöst ist. Daher wäre es allerdings auch schön wenn du den Thread auf gelöst setzt. Einfach 1. Beitrag bearbeiten, Präfix (nähe Überschrift) ändern und speichern (absenden)

    mfg autoBert

  • Woah, das ist ja mal noch übersichtlicher. Ja, so begreife auch ich die Synthax.
    Herzlichen Dank !
    Habe es natürlich gleich getestet und es funktioniert bestens.

    Gruß,
    Einsatz