txt bearbeitung??

  • kann mir einer helfen?

    wollte gerne ne .htm datei bearbeiten!

    hab mir das gante so vorgestellt: in der htm datei stehen ~500 sachen! jetzt soll nen fenster erscheinen wo man was eingibt, und das was man eingibt soll hinter jedes argument in der .hml geschrieben werden----und dann neu gespeichert als .htm!

    die grunddatei kann auhc anders aussehen, also .vcv oder .txt oder so....hat da jemand ne idee??

    danke im voraus :)

    mfg

    m4j0r

  • oehm.....ich meinte eher so:

    aaabbbbb&XX
    bbbbaaaa&XX
    cccaaabb&XX

    so.....und das XX soll er dann durch [.de] ersetzen! :) ist das machbar?

  • also das geht :) lol! aber ich bracuh da ja nu noch ne msgbox wo ich das eintragen kann was er dann hinter den text schreibt....hab gerade gesucht...find aber irgendwie nix passendes :(

  • Zitat

    Original von BugFix
    Du suchst sicher 'ne Inputbox.

    ja....aber....wie kann ich die denn nu weiterverarbeiten??

    also..... $inp = hallo

    dann das ais der txt datei soll er nehmen....und fuer $inp hallo da eintragen.....wobei ja ddie inputbox variiert....je nachdem was man reinschreibt!

    verstehst du was ich meine?? 8o 8o

    ich hab das jetzt mal so gemacht:

    $inp = inputbox("Passwortabfrage","gib dein Passwort ein")
    FileWrite("C:\agstester2.htm", StringReplace(FileRead("C:\agstester.htm"), "**", "$inp"))

    nur....er ersetzt dann ** durch $inp und nicht durch das was ich in der inputbox eingeb :(

    Einmal editiert, zuletzt von m4j0r (13. Oktober 2007 um 22:53)

    • Offizieller Beitrag
    [autoit]

    #include <File.au3>
    Dim $sFilePath = 'Pfad....'
    Dim $outFile = 'Pfad...'
    Dim $aArray
    _FileReadToArray ( $sFilePath, $aArray ) ; datei in Array lesen

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    For $i = 1 To $aArray[0] ; zeilenweise durchgehen
    $Eingabe = InputBox ( "title", "Prompt" ) ; hier kannst du auch die Zeile ($aArray[$i]) mit ausgeben als 'title'
    $aArray[$i] = StringReplace($aArray[$i], 'XX', $Eingabe) ; der String wird ersetzt durch den String mit der Eingabe
    Next

    [/autoit][autoit][/autoit][autoit]

    If FileExists($outFile) Then FileDelete($outFile) ; falls Ausgabedatei bereits vorhanden - löschen
    _FileWriteFromArray($outFile, $aArray, 1) ; vom Array in Ausgabedatei schreiben

    [/autoit]
  • das sieht SUPER aus....nur...kleines probblem:
    LINE23

    For $i = 1 To $aArray[0]
    For $i = 1 To $aArray^ERROR

    Error: Subscript used with non-Arry variable.

    • Offizieller Beitrag

    Das heißt, es ist kein Array da - also konnte die datei nicht eingelesen werden.
    Falscher Pfad oder was auch immer. Rückgabewert der Funktion prüfen.

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    Dim $sFilePath = 'Pfad....'
    Dim $outFile = 'Pfad...'
    Dim $aArray
    $ret = _FileReadToArray ( $sFilePath, $aArray ) ; datei in Array lesen
    If @error Then
    MsgBox(0, '', 'Datei konnte nicht eingelesen werden.')
    Exit
    EndIf

    For $i = 1 To $aArray[0] ; zeilenweise durchgehen
    $Eingabe = InputBox ( "title", "Prompt" ) ; hier kannst du auch die Zeile ($aArray[$i]) mit ausgeben als 'title'
    $aArray[$i] = StringReplace($aArray[$i], 'XX', $Eingabe) ; der String wird ersetzt durch den String mit der Eingabe
    Next

    If FileExists($outFile) Then FileDelete($outFile) ; falls Ausgabedatei bereits vorhanden - löschen
    _FileWriteFromArray($outFile, $aArray, 1) ; vom Array in Ausgabedatei schreiben

    [/autoit]
  • oehm....jo....sry....hab das 3 mal neu gemacht, dann gings....aber:
    das "array" is ne htm datei.....der fragt jetzt die inputbox GANZ OFT ab...selbst wenn da nur 2 adressen drin stehen....eigentlich sollte er ja nur den ersten wert nehmen der in die box eingetragen wird :)

    • Offizieller Beitrag

    Aus deiner Beschreibung habe ich entnommen, dass du zeilenweise abarbeiten möchtest. Deshalb dieser Aufbau.
    Vielleicht kannst du ja mal ganz klar und verständlich sagen, was genau ablaufen soll.
    Und zwar Schritt für Schritt.
    Momentan werd ich nicht ganz schlau draus.

  • schade.....ok....ich versuch das noch mal :) thx fuer deine muehen schon mal!

    also....ich hab ne .htm datei mit 2 - 1500 eintraegen! zeilenweise soll die abgearbeitet werden! richtig....sieht ca. so aus:

    owiejfoijwefojiowjef&**
    wpoefkoprkgergvfff&**
    .
    .
    .

    jetzt moechte ich ne input oder msg box bekommen wo man seine "sid" eingibt.....zb abcdefg123456

    jetzt moechte ich das proggie starten , und es soll aus den ** abcdefg123456 machen

    in jeder zeile....und das dann neu speichern als .htm

    das is eigentlich alles

    waere noch ganz gut wenn es ohne zwingende input datei geht....also impliziert oder so....wenn ich zb diese datei verschicke weiss ich ja nich wo der andere die speichert

    weiss aber nich ob das ueberhauot geht...das waere auch nebensaechsaechlich :)

    • Offizieller Beitrag

    Ich hoffe, dass die Lösung dem entspricht was du möchtest:
    - FileOpenDialog zum Aussuchen der zu bearbeitenden Datei
    - Einlesen Datei in Array
    - Inputbox für Ersetzung
    - in Schleife Ersetzen mit Eingabe
    - Inputbox für Ausgabedateiname
    - Zurückschreiben in Ausgabedatei

    (Wenn du so formulierst, was du möchtest, ist das viel einfacher ;) )

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    Dim $inFile = FileOpenDialog('Datei zum Bearbeiten wählen', @ScriptDir, 'Webdateien (*.htm;*.html)', 3)
    Dim $outFile
    Dim $aArray
    $ret = _FileReadToArray ( $inFile, $aArray ) ; datei in Array lesen
    If @error Then
    MsgBox(0, '', 'Datei konnte nicht eingelesen werden.')
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $Eingabe = InputBox('Ersetzen', 'Bitte eingeben:')

    For $i = 1 To $aArray[0] ; zeilenweise durchgehen
    $aArray[$i] = StringReplace($aArray[$i], 'XX', $Eingabe) ; der String wird ersetzt durch den String mit der Eingabe
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $outFile = InputBox('Datei speichern', 'Bitte Dateinamen für Ausgabe festlegen.')
    _FileWriteFromArray(@ScriptDir & '\' & $outFile, $aArray, 1) ; vom Array in Ausgabedatei schreiben

    [/autoit]
  • hi :)

    noch ne kleine frage dazu....koennte man die erzeugte datei nun im FF oeffnen und jede einzelne zeile nacheinander oeffnen lassen?? also ins browserfenster als string eingeben oder so aehnlich?? ist das machbar?

    mfg

  • #include file.au3

    _FileReadToArray ( @ScriptDir & "\log.txt", $aArray )

    For $i = 1 To $aArray[0]
    Run("E:\Programme\Mozilla Firefox\firefox.exe "&$aArray[$i]&"'")

    Next


    das läd jetzt nacheinander die links aus der datei log.txt , jehnachdem musst du den pfad deines browsers noch ändern...

    Einmal editiert, zuletzt von Goniwa (15. Oktober 2007 um 11:02)

  • das klappt bei mir nicht :(

    _filereadtoarray ( @scriptdir & "\log.txt" , $aArray)
    _filereadtoarray ( @scriptdir & "\log.txt", ^ERROR

    Error: Variable used without being declared :(

    aber die log txt hab ich erstellt, also das kanns nich sein :)

  • ja....jetzt klappt das.....nur....er macht jetzt jede spalte der liste in einen tab...ich wollte das so haben das er spalte1 in den 1. tab schreibt, dann F4 drueckt, dann F5 und dann die spalte 2 der array in den 1.tab schreibt! usw. das sollte er dann mit ~500 spalten machen :) geht das?

    Einmal editiert, zuletzt von m4j0r (15. Oktober 2007 um 13:26)