textdatei einzelne wörter löschen ??

  • Hallo Libe Gemeinde

    ich habe eine textdatei die folgendermassen aus sieht : https://autoit.de/www.autoit.de|https://autoit.de/www.lokalisten.de|https://autoit.de/www.gmx.de usw.
    wie könnte ich es anstellen das die datei geöffnet wird und z.b. |https://autoit.de/www.lokalisten.de| durch einen | ersetzt wird ?
    mir fällt kein ansatz ein ? ich hoffe ihr könnt mir helfen
    MFG Eistee

    P.S. hier der Script

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include<Array.au3>

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

    Global $fileliste = "C:\BS\XP-SideBar\line.txt"
    Global $liste = FileReadLine($fileliste,1)

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

    $Form1 = GUICreate("Form1", 163, 51, 518, 475)
    GUISetBkColor(0x000000)

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

    $Button1 = GUICtrlCreateButton("Entfernen", 0, 24, 75, 25, 0)
    GUICtrlSetCursor (-1, 0)

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

    $Button2 = GUICtrlCreateButton("Hinzufügen", 87, 24, 75, 25, 0)
    GUICtrlSetCursor (-1, 0)

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

    $Combo1 = GUICtrlCreateCombo("www.google.de", 0, 0, 161, 25)
    GUICtrlSetData(-1, $liste)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    entf ()
    EndSwitch
    WEnd

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

    Func entf ()

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • ich würde es generell mit einer Ini Datei machen.

    [autoit]


    [Url]
    http://www.google.de=1

    [/autoit][autoit]

    zum speichern
    IniWrite("c:\url.ini","url",GUICtrlRead($Combo1),1)

    [/autoit][autoit]

    zum "löschen" markieren
    IniWrite("c:\url.ini","url",GUICtrlRead($Combo1),0)

    [/autoit]

    und dann bietest du nur die mit einer 1 zur Auswahl an.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Andere Möglichkeit währe das ganze als Array zu benutzen:

    [autoit]

    Func entf ()
    Msgbox (0,"", $liste)
    $listenarray = StringSplit($liste, "|", 2)
    _ArrayDelete($listenarray, _ArraySearch($listenarray, 'www.lokalisten.de'))
    $liste = _ArrayToString($listenarray, "|")
    Msgbox (0,"", $liste)
    EndFunc

    [/autoit]

    Ini Datei währe aber tatsächlich übersichtlicher, will nur noch ne Alternative mitgeben ;)

  • wie soll das bitte funktionieren ?
    ich habe ein programm das eine .txt erstellt in dem die urls so angegeben sind wie in meinem ersten post beschrieben und ich will ein zusatzprogramm schreiben das mir ermöglicht einzelne elemente zu löschen oder hinzuzufügen
    das ganze ist im endeffekt für eine Combobox gedacht wie sollte ich so etwas also realisieren ?

    MFG

  • _ReplaceStringInFile sollte das tun was Du möchtest...

    Spoiler anzeigen
    [autoit]

    #include <File.au3>

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

    $find = "BEFORE"
    $replace = "AFTER"

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

    $filename = "C:\_ReplaceStringInFile.test"

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

    $msg = "Hello Test " & $find & " Hello Test" & @CRLF
    $msg &= "Hello Test" & @CRLF
    $msg &= @CRLF
    $msg &= $find

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

    FileWrite($filename, $msg )

    msgbox(0,"BEFORE",$msg)

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

    $retval = _ReplaceStringInFile($filename,$find,$replace)
    if $retval = -1 then
    msgbox(0, "ERROR", "The pattern could not be replaced in file: " & $filename & " Error: " & @error)
    exit
    else
    msgbox(0, "INFO", "Found " & $retval & " occurances of the pattern: " & $find & " in the file: " & $filename)
    endif

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

    $msg = FileRead($filename, 1000)
    msgbox(0,"AFTER",$msg)
    FileDelete($filename)

    [/autoit]

    und dann ersetzte GuiCtrlRead[$Combo1] & "|" mit ""

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o