_FileWriteToLine & Anzahl der Zeichen löschen

  • Hallo,

    ich habe folgendes Prob.
    ich würde gerne in eine bestehende Datei was hinzufügen, wofür ich _FileWriteToLine benutze. was in das File geschrieben wird, wird aus einer GUI gelesen. jedoch soll die anzahl der zeichen, nach dem geschriebenen text auch wieder gelöscht werden, damit die textdatei quasi nacher genau so aussieht, wie vorher, ausser dass dort leerzeichen durch zeichen ersetz wurden (also keine zeichen nur HINZUGEFÜGT werden).

    eine art überschreibmodus. hat jmd ne ahnung wie man das anstellen kann?

    • Offizieller Beitrag

    Hier mal mit Strings gemacht:

    Spoiler anzeigen
    [autoit]

    $strAlt = 'A Z'
    $strInsert = 'X $$ X'
    ; einfügen ab Pos. 7
    $arAlt = StringSplit($strAlt, '')
    $arInsert = StringSplit($strInsert, '')
    $pos = 7
    For $i = 1 To UBound($arInsert) -1
    $arAlt[$pos+$i] = $arInsert[$i]
    Next
    $strOut = ''
    For $i = 1 To UBound($arAlt) -1
    $strOut &= $arAlt[$i]
    Next
    MsgBox(0, '', $strOut)

    [/autoit]
  • ay caramba ... klappt wunderbar *g*

    aber leider hab ich dazu noch ein ähnliches prob, was mir gerade aufgefallen ist.
    ich habe input & combo boxen, wo das ganze prächtig funktioniert, aber mit ner editbox geht das leider nicht.

    in der editbox sind zeilenumbrüche drin, da darf natürlich dann nicht einfach ein zeilenumbruch geschrieben werden, sondern es muss die nächste zeile ausgelesen werden und darein dann der text ... wäre das auch noch machbar?

    • Offizieller Beitrag

    Verstehe ich richtig:
    Du liest aus einer Editbox, in der der enthaltene Text aber als ein String betrachtet werden soll?

    Edit:
    Dann mach aus dem Edit-Inhalt einen fortlaufenden String und behandele es wie im anderen Bsp.:

    [autoit]

    #Include <GuiEdit.au3>
    $str = ''
    For $i = 1 To _GUICtrlEditGetLineCount($hEdit)
    $str &= _GUICtrlEditGetLine($hEdit, $i)
    Next

    [/autoit]
  • es geht um NFastO aus der Script-Abteilung.
    wie es jetzt steht, kann ich alle oberen combo bzw inputboxen so in die neuen nfos einbringen, dass die bilder nicht zerstört werden (da sich die zeilen sonst nach links verschoben hätten).

    jetzt muss ich aber noch die "description" sowie die "notes" editboxen in die neuen nfos schreiben. die enthalten aber zeilenumbrüche. würde ich jetzt das gleiche verfahren wie oben anwenden, würden die ganzen zeilenumbrüche die nfo wiederum zerstören (zeilen nach unten verschieben, die eine lücke in das bild reissen würden) ... also müsste pro zeilenumbruch die nächste zeile ausgelesen werden und der neue teil dort hinzugefügt werden.

    hoffe das beantwortet deine frage *g*

    • Offizieller Beitrag

    OK, habs mal schnell entworfen. Die Funktion '_StrOverwrite' kannst du in den anderen Fällen genauso einsetzen. Beachten, der übergebene Originalstring ($STR) wir direkt bearbeitet (ByRef). Also nicht versuchen ein Return der Funktion auszuwerten. ;)

    Das ganze ist ungetestet - also auf eigene Gefahr :rofl:

    Spoiler anzeigen
    [autoit]

    #Include <GuiEdit.au3>
    #include <Array.au3>
    Dim $Pfad = @ScriptDir & '\BLABLA.nfo'
    Dim $line = 9 ; Zeile festlegen, ab der Inhalt aus Editbox geschrieben werden soll
    Dim $posX = 5 ; Spalte ab der der Text eingefügt werden soll innerhalb der Zeile
    Dim $arNFO ; hier wird nfo-Datei eingelesen
    Dim $lineCount = 1
    If IsArray(_FileReadToArray($Pfad, $arNFO)) Then
    For $i = $line To ($line + _GUICtrlEditGetLineCount($hEdit))-1
    _StrOverwrite($arNFO[$i], _GUICtrlEditGetLine($hEdit, $lineCount)
    $lineCount += 1
    Next
    _ArrayDelete($arNFO, 0)
    FileMove($Pfad, $Pfad & '.BAK', 1)
    _FileWriteFromArray($Pfad, $arNFO)
    EndIf

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

    Func _StrOverwrite(ByRef $STR, $TXT2OVERWRITE, $STARTPOS)
    Local $strTmp = ''
    Local $arAlt = StringSplit($STR, '')
    Local $arInsert = StringSplit($TXT2OVERWRITE, '')
    $pos = 7
    For $i = 1 To UBound($arInsert) -1
    $arAlt[$STARTPOS+$i] = $arInsert[$i]
    Next
    For $i = 1 To UBound($arAlt) -1
    $strTmp &= $arAlt[$i]
    Next
    $STR = $strTmp
    EndFunc ;==>_StrOverwrite

    [/autoit]
  • hallo,

    leider bin ich immer noch nicht weitergekommen.
    so sieht zZ mein script aus

    Spoiler anzeigen
    [autoit]

    ;
    ; NFastO
    ;
    ; © sc4ry

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

    #include <guiconstants.au3>
    #include <date.au3>
    #include <File.au3>
    #Include <GuiEdit.au3>

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

    Global $z = 0
    Global $flag
    Global $nfo

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

    DirCreate(@scriptdir & "\savings")
    DirCreate(@scriptdir & "\NFOs")

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

    $maingui = GUICreate("NFastO", 800, 400)
    $build = GUICtrlCreateButton("&Build", 710, 5, 80)
    $save = GUICtrlCreateButton("&save", 725, 60, 50, 20)
    $openbutton = GUICtrlCreateButton("&open", 725, 80, 50, 20)
    $exit = GUICtrlCreateButton("&Exit", 710, 135, 80)

    GUICtrlCreateGroup("general Release Infos", 10, 0, 460, 100)
    GUICtrlCreateLabel("Release", 20, 23)
    $rel = GUICtrlCreateInput("", 70, 20, 230, 20)
    GUICtrlCreateLabel("Type", 320, 23)
    $type = GUICtrlCreateCombo("", 360, 20, 100, 20)
    GUICtrlSetData(-1, "Software|Movie|Game|Music|Else", "Software")
    $ltoday = GUICtrlCreateLabel("Date", 20, 50)
    $today = GUICtrlCreateInput(_NowCalcDate(), 20, 70, 70)
    $llang = GUICtrlCreateLabel("Language", 110, 50)
    $lang = GUICtrlCreateInput("", 110, 70, 170)
    $lsize = GUICtrlCreateLabel("Size (MB)", 300, 50)
    $size = GUICtrlCreateInput("", 300, 70, 90)
    $search = GUICtrlCreateButton("from File", 400, 68, 60)

    GUICtrlCreateGroup("Group Infos", 480, 0, 220, 100)
    GUICtrlCreateLabel("Group", 490, 20)
    $group = GUICtrlCreateInput("", 490, 35, 200, 20)
    $authlabel = GUICtrlCreateLabel("Author", 490, 60)
    $author = GUICtrlCreateInput("", 490, 75, 200, 20)

    GUICtrlCreateGroup("further Infos", 10, 100, 690, 60)
    $label1 = GUICtrlCreateLabel("Version", 20, 120, 80, 20)
    $input1 = GUICtrlCreateInput("", 100, 118, 100, 18)
    $label2 = GUICtrlCreateLabel("OS", 20, 140, 80, 15)
    $input2 = GUICtrlCreateInput("", 100, 138, 100, 18)
    $label3 = GUICtrlCreateLabel("", 270, 120, 80, 20)
    GUICtrlSetState(-1, $GUI_HIDE)
    $input3 = GUICtrlCreateInput("", 350, 118, 100, 18)
    GUICtrlSetState(-1, $GUI_HIDE)
    $label4 = GUICtrlCreateLabel("", 270, 140, 80, 15)
    GUICtrlSetState(-1, $GUI_HIDE)
    $input4 = GUICtrlCreateInput("", 350, 138, 100, 18)
    GUICtrlSetState(-1, $GUI_HIDE)
    $label5 = GUICtrlCreateLabel("", 520, 120, 60, 20)
    GUICtrlSetState(-1, $GUI_HIDE)
    $input5 = GUICtrlCreateInput("", 580, 118, 100, 18)
    GUICtrlSetState(-1, $GUI_HIDE)
    $label6 = GUICtrlCreateLabel("", 520, 140, 60, 15)
    GUICtrlSetState(-1, $GUI_HIDE)
    $input6 = GUICtrlCreateInput("", 580, 138, 100, 18)
    GUICtrlSetState(-1, $GUI_HIDE)

    GUICtrlCreateGroup("Description", 10, 160, 390, 230)
    $desc = GUICtrlCreateEdit("", 30, 180, 350, 200)
    GUICtrlSetData($desc, @CRLF & @CRLF & "Install Notes:" & @CRLF & @CRLF & "1) " & @CRLF & "2) ")

    GUICtrlCreateGroup("Notes", 410, 160, 380, 230)
    $notes = GUICtrlCreateEdit("Website: " & @CRLF & @CRLF & "Mail: " & @CRLF & @CRLF & "IRC: " & @CRLF & @CRLF & "We are looking for: "& @CRLF & @CRLF & "Group-Info: "& @CRLF & @CRLF & "Greetings: ", 430, 180, 350, 200)

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

    GUISetState(@SW_SHOW, $maingui)

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

    While 1
    $msg = GUIGetMsg()
    Select
    case $msg = $type
    $switch = GUICtrlRead($type)
    Switch $switch
    case "Software"
    GUICtrlSetData($authlabel, "Author")
    GUICtrlSetData($label1, "Version")
    GUICtrlSetData($label2, "OS")
    GUICtrlSetData($label3, "")
    GUICtrlSetData($label4, "")
    GUICtrlSetData($label5, "")
    GUICtrlSetData($label6, "")
    GUICtrlSetState($label1, $GUI_SHOW)
    GUICtrlSetState($label2, $GUI_SHOW)
    GUICtrlSetState($label3, $GUI_HIDE)
    GUICtrlSetState($label4, $GUI_HIDE)
    GUICtrlSetState($label5, $GUI_HIDE)
    GUICtrlSetState($label6, $GUI_HIDE)
    GUICtrlSetData($input1, "")
    GUICtrlSetData($input2, "")
    GUICtrlSetData($input3, "")
    GUICtrlSetData($input4, "")
    GUICtrlSetData($input5, "")
    GUICtrlSetData($input6, "")
    GUICtrlSetState($input1, $GUI_SHOW)
    GUICtrlSetState($input2, $GUI_SHOW)
    GUICtrlSetState($input3, $GUI_HIDE)
    GUICtrlSetState($input4, $GUI_HIDE)
    GUICtrlSetState($input5, $GUI_HIDE)
    GUICtrlSetState($input6, $GUI_HIDE)
    GUICtrlSetData($desc, @CRLF & @CRLF & "Install Notes:" & @CRLF & @CRLF & "1) " & @CRLF & "2) ")
    case "Movie"
    GUICtrlSetData($authlabel, "Ripper")
    GUICtrlSetData($label1, "V-Codec")
    GUICtrlSetData($label2, "A-Codec")
    GUICtrlSetData($label3, "V-Bitrate")
    GUICtrlSetData($label4, "A-Bitrate")
    GUICtrlSetData($label5, "Runtime")
    GUICtrlSetData($label6, "Genre")
    GUICtrlSetState($label1, $GUI_SHOW)
    GUICtrlSetState($label2, $GUI_SHOW)
    GUICtrlSetState($label3, $GUI_SHOW)
    GUICtrlSetState($label4, $GUI_SHOW)
    GUICtrlSetState($label5, $GUI_SHOW)
    GUICtrlSetState($label6, $GUI_SHOW)
    GUICtrlSetData($input1, "")
    GUICtrlSetData($input2, "")
    GUICtrlSetData($input3, "")
    GUICtrlSetData($input4, "")
    GUICtrlSetData($input5, "")
    GUICtrlSetData($input6, "")
    GUICtrlSetState($input1, $GUI_SHOW)
    GUICtrlSetState($input2, $GUI_SHOW)
    GUICtrlSetState($input3, $GUI_SHOW)
    GUICtrlSetState($input4, $GUI_SHOW)
    GUICtrlSetState($input5, $GUI_SHOW)
    GUICtrlSetState($input6, $GUI_SHOW)
    GUICtrlSetData($desc, @CRLF & @CRLF & "IMDB: ")
    case "Game"
    GUICtrlSetData($authlabel, "Cracker")
    GUICtrlSetData($label1, "Secure")
    GUICtrlSetData($label2, "Genre")
    GUICtrlSetData($label3, "Serial")
    GUICtrlSetData($label4, "")
    GUICtrlSetData($label5, "")
    GUICtrlSetData($label6, "")
    GUICtrlSetState($label1, $GUI_SHOW)
    GUICtrlSetState($label2, $GUI_SHOW)
    GUICtrlSetState($label3, $GUI_SHOW)
    GUICtrlSetState($label4, $GUI_HIDE)
    GUICtrlSetState($label5, $GUI_HIDE)
    GUICtrlSetState($label6, $GUI_HIDE)
    GUICtrlSetData($input1, "")
    GUICtrlSetData($input2, "")
    GUICtrlSetData($input3, "")
    GUICtrlSetData($input4, "")
    GUICtrlSetData($input5, "")
    GUICtrlSetData($input6, "")
    GUICtrlSetState($input1, $GUI_SHOW)
    GUICtrlSetState($input2, $GUI_SHOW)
    GUICtrlSetState($input3, $GUI_SHOW)
    GUICtrlSetState($input4, $GUI_HIDE)
    GUICtrlSetState($input5, $GUI_HIDE)
    GUICtrlSetState($input6, $GUI_HIDE)
    GUICtrlSetData($desc, @CRLF & @CRLF & "Install Notes:" & @CRLF & @CRLF & "1) " & @CRLF & "2) ")
    case "Music"
    GUICtrlSetData($authlabel, "Ripper")
    GUICtrlSetData($label1, "Genre")
    GUICtrlSetData($label2, "Codec")
    GUICtrlSetData($label3, "Songs")
    GUICtrlSetData($label4, "Bitrate")
    GUICtrlSetData($label5, "")
    GUICtrlSetData($label6, "")
    GUICtrlSetState($label1, $GUI_SHOW)
    GUICtrlSetState($label2, $GUI_SHOW)
    GUICtrlSetState($label3, $GUI_SHOW)
    GUICtrlSetState($label4, $GUI_SHOW)
    GUICtrlSetState($label5, $GUI_HIDE)
    GUICtrlSetState($label6, $GUI_HIDE)
    GUICtrlSetData($input1, "")
    GUICtrlSetData($input2, "")
    GUICtrlSetData($input3, "")
    GUICtrlSetData($input4, "")
    GUICtrlSetData($input5, "")
    GUICtrlSetData($input6, "")
    GUICtrlSetState($input1, $GUI_SHOW)
    GUICtrlSetState($input2, $GUI_SHOW)
    GUICtrlSetState($input3, $GUI_SHOW)
    GUICtrlSetState($input4, $GUI_SHOW)
    GUICtrlSetState($input5, $GUI_HIDE)
    GUICtrlSetState($input6, $GUI_HIDE)
    GUICtrlSetData($desc, "")
    case "Else"
    GUICtrlSetData($authlabel, "Author")
    GUICtrlSetState($label1, $GUI_HIDE)
    GUICtrlSetState($label2, $GUI_HIDE)
    GUICtrlSetState($label3, $GUI_HIDE)
    GUICtrlSetState($label4, $GUI_HIDE)
    GUICtrlSetState($label5, $GUI_HIDE)
    GUICtrlSetState($label6, $GUI_HIDE)
    GUICtrlSetState($input1, $GUI_SHOW)
    GUICtrlSetData($input1, "")
    GUICtrlSetState($input2, $GUI_SHOW)
    GUICtrlSetData($input2, "")
    GUICtrlSetState($input3, $GUI_SHOW)
    GUICtrlSetData($input3, "")
    GUICtrlSetState($input4, $GUI_SHOW)
    GUICtrlSetData($input4, "")
    GUICtrlSetState($input5, $GUI_SHOW)
    GUICtrlSetData($input5, "")
    GUICtrlSetState($input6, $GUI_SHOW)
    GUICtrlSetData($input6, "")
    GUICtrlSetData($desc, "")
    EndSwitch
    case $msg = $gui_event_close
    Exit
    case $msg = $exit
    Exit
    case $msg = $save
    $ini = FileSaveDialog("Save your Settings", @scriptdir & "\savings\", "All (*.*)", 16, GUICtrlRead($rel) & ".ini")
    If @error Then
    Else
    IniWrite($ini, "Settings", "Release", GUICtrlRead($rel))
    IniWrite($ini, "Settings", "Type", GUICtrlRead($type))
    IniWrite($ini, "Settings", "Date", GUICtrlRead($today))
    IniWrite($ini, "Settings", "Language", GUICtrlRead($lang))
    IniWrite($ini, "Settings", "Size", GUICtrlRead($size))
    IniWrite($ini, "Settings", "Group", GUICtrlRead($group))
    IniWrite($ini, "Settings", "Author", GUICtrlRead($author))
    IniWrite($ini, "Settings", "Description", StringReplace(GUICtrlRead($desc), @CRLF, "[CRLF]"))
    IniWrite($ini, "Settings", "Notes", StringReplace(GUICtrlRead($notes), @CRLF, "[CRLF]"))
    IniWrite($ini, "Settings", "Input1", GUICtrlRead($input1))
    IniWrite($ini, "Settings", "Input2", GUICtrlRead($input2))
    IniWrite($ini, "Settings", "Input3", GUICtrlRead($input3))
    IniWrite($ini, "Settings", "Input4", GUICtrlRead($input4))
    IniWrite($ini, "Settings", "Input5", GUICtrlRead($input5))
    IniWrite($ini, "Settings", "Input6", GUICtrlRead($input6))
    MsgBox(64, "Settings saved", $ini, 3)
    EndIf
    case $msg = $openbutton
    $openfile = FileOpenDialog("Open existing NFO", @scriptdir & "\savings", "All (*.*)")
    If @error Then
    Else
    $open = IniReadSection($openfile, "Settings")
    If $open[2][1] = "Software" Then
    GUICtrlSetData($authlabel, "Author")
    GUICtrlSetData($label1, "Version")
    GUICtrlSetData($label2, "OS")
    GUICtrlSetData($label3, "")
    GUICtrlSetData($label4, "")
    GUICtrlSetData($label5, "")
    GUICtrlSetData($label6, "")
    GUICtrlSetState($label1, $GUI_SHOW)
    GUICtrlSetState($label2, $GUI_SHOW)
    GUICtrlSetState($label3, $GUI_HIDE)
    GUICtrlSetState($label4, $GUI_HIDE)
    GUICtrlSetState($label5, $GUI_HIDE)
    GUICtrlSetState($label6, $GUI_HIDE)
    GUICtrlSetState($input1, $GUI_SHOW)
    GUICtrlSetState($input2, $GUI_SHOW)
    GUICtrlSetState($input3, $GUI_HIDE)
    GUICtrlSetState($input4, $GUI_HIDE)
    GUICtrlSetState($input5, $GUI_HIDE)
    GUICtrlSetState($input6, $GUI_HIDE)
    ElseIf $open[2][1] = "Movie" Then
    GUICtrlSetData($authlabel, "Ripper")
    GUICtrlSetData($label1, "Video Codec")
    GUICtrlSetData($label2, "Audio Codec")
    GUICtrlSetData($label3, "Video Bitrate")
    GUICtrlSetData($label4, "Audio Bitrate")
    GUICtrlSetData($label5, "Runtime")
    GUICtrlSetData($label6, "Genre")
    GUICtrlSetState($label1, $GUI_SHOW)
    GUICtrlSetState($label2, $GUI_SHOW)
    GUICtrlSetState($label3, $GUI_SHOW)
    GUICtrlSetState($label4, $GUI_SHOW)
    GUICtrlSetState($label5, $GUI_SHOW)
    GUICtrlSetState($label6, $GUI_SHOW)
    GUICtrlSetState($input1, $GUI_SHOW)
    GUICtrlSetState($input2, $GUI_SHOW)
    GUICtrlSetState($input3, $GUI_SHOW)
    GUICtrlSetState($input4, $GUI_SHOW)
    GUICtrlSetState($input5, $GUI_SHOW)
    GUICtrlSetState($input6, $GUI_SHOW)
    ElseIf $open[2][1] = "Game" Then
    GUICtrlSetData($authlabel, "Cracker")
    GUICtrlSetData($label1, "Protection")
    GUICtrlSetData($label2, "Gametype")
    GUICtrlSetData($label3, "Serial")
    GUICtrlSetData($label4, "")
    GUICtrlSetData($label5, "")
    GUICtrlSetData($label6, "")
    GUICtrlSetState($label1, $GUI_SHOW)
    GUICtrlSetState($label2, $GUI_SHOW)
    GUICtrlSetState($label3, $GUI_SHOW)
    GUICtrlSetState($label4, $GUI_HIDE)
    GUICtrlSetState($label5, $GUI_HIDE)
    GUICtrlSetState($label6, $GUI_HIDE)
    GUICtrlSetState($input1, $GUI_SHOW)
    GUICtrlSetState($input2, $GUI_SHOW)
    GUICtrlSetState($input3, $GUI_SHOW)
    GUICtrlSetState($input4, $GUI_HIDE)
    GUICtrlSetState($input5, $GUI_HIDE)
    GUICtrlSetState($input6, $GUI_HIDE)
    ElseIf $open[2][1] = "Music" Then
    GUICtrlSetData($authlabel, "Ripper")
    GUICtrlSetData($label1, "Genre")
    GUICtrlSetData($label2, "Audio Codec")
    GUICtrlSetData($label3, "Songs")
    GUICtrlSetData($label4, "Audio Bitrate")
    GUICtrlSetData($label5, "")
    GUICtrlSetData($label6, "")
    GUICtrlSetState($label1, $GUI_SHOW)
    GUICtrlSetState($label2, $GUI_SHOW)
    GUICtrlSetState($label3, $GUI_SHOW)
    GUICtrlSetState($label4, $GUI_SHOW)
    GUICtrlSetState($label5, $GUI_HIDE)
    GUICtrlSetState($label6, $GUI_HIDE)
    GUICtrlSetState($input1, $GUI_SHOW)
    GUICtrlSetState($input2, $GUI_SHOW)
    GUICtrlSetState($input3, $GUI_SHOW)
    GUICtrlSetState($input4, $GUI_SHOW)
    GUICtrlSetState($input5, $GUI_HIDE)
    GUICtrlSetState($input6, $GUI_HIDE)
    ElseIf $open[2][1] = "Else" Then
    GUICtrlSetData($authlabel, "Author")
    GUICtrlSetData($label1, "")
    GUICtrlSetData($label2, "")
    GUICtrlSetData($label3, "")
    GUICtrlSetData($label4, "")
    GUICtrlSetData($label5, "")
    GUICtrlSetData($label6, "")
    GUICtrlSetState($label1, $GUI_HIDE)
    GUICtrlSetState($label2, $GUI_HIDE)
    GUICtrlSetState($label3, $GUI_HIDE)
    GUICtrlSetState($label4, $GUI_HIDE)
    GUICtrlSetState($label5, $GUI_HIDE)
    GUICtrlSetState($label6, $GUI_HIDE)
    GUICtrlSetState($input1, $GUI_SHOW)
    GUICtrlSetState($input2, $GUI_SHOW)
    GUICtrlSetState($input3, $GUI_SHOW)
    GUICtrlSetState($input4, $GUI_SHOW)
    GUICtrlSetState($input5, $GUI_SHOW)
    GUICtrlSetState($input6, $GUI_SHOW)
    EndIf
    GUICtrlSetData($rel, $open[1][1])
    GUICtrlSetData($type, $open[2][1])
    GUICtrlSetData($today, $open[3][1])
    GUICtrlSetData($lang, $open[4][1])
    GUICtrlSetData($size, $open[5][1])
    GUICtrlSetData($group, $open[6][1])
    GUICtrlSetData($author, $open[7][1])
    GUICtrlSetData($desc, StringReplace($open[8][1], "[CRLF]", @CRLF))
    GUICtrlSetData($notes, StringReplace($open[9][1], "[CRLF]", @CRLF))
    GUICtrlSetData($input1, $open[10][1])
    GUICtrlSetData($input2, $open[11][1])
    GUICtrlSetData($input3, $open[12][1])
    GUICtrlSetData($input4, $open[13][1])
    GUICtrlSetData($input5, $open[14][1])
    GUICtrlSetData($input6, $open[15][1])
    EndIf
    case $msg = $search
    $filesize = FileGetSize(FileOpenDialog("Search for your file", -1, "All (*.*)" , 1))
    GUICtrlSetData($size, Round($filesize / 1024 / 1024, 2))
    case $msg = $build
    _build()
    If $flag = True Then
    Else
    MsgBox(64, "NFO saved", GUICtrlRead($rel) & ".nfo", 3)
    EndIf
    EndSelect
    WEnd

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

    Func _build()
    $guistyle = GUICreate("NFO-Style", 300, 150)
    $Ok2 = GUICtrlCreateButton("&Ok", 10, 125, 80, 20)
    $Cancel2 = GUICtrlCreateButton("&Cancel", 210, 125, 80, 20)
    $combo = GUICtrlCreateCombo("", 10, 15)
    GUICtrlSetData($combo, "Tribal|Tribal 2|Dragon|Dragon 2|Tigerdragon|Horny|Pluto|Pluto 2", "")
    $pluto2 = GUICtrlCreatePic(@scriptdir & "\Templates\Pluto2.JPG", 135, 15, 155, 100, $SS_CENTERIMAGE)
    $pluto = GUICtrlCreatePic(@scriptdir & "\Templates\Pluto.jpg", 135, 15, 155, 100, $SS_CENTERIMAGE)
    $horny = GUICtrlCreatePic(@scriptdir & "\Templates\Horny.jpg", 135, 15, 155, 100, $SS_CENTERIMAGE)
    $tigerdragon = GUICtrlCreatePic(@scriptdir & "\Templates\Tigerdragon.jpg", 135, 15, 155, 100, $SS_CENTERIMAGE)
    $dragon2 = GUICtrlCreatePic(@scriptdir & "\Templates\Dragon2.jpg", 135, 15, 155, 100, $SS_CENTERIMAGE)
    $dragon = GUICtrlCreatePic(@scriptdir & "\Templates\Dragon.jpg", 135, 15, 155, 100, $SS_CENTERIMAGE)
    $tribal2 = GUICtrlCreatePic(@scriptdir & "\Templates\Tribal2.jpg", 135, 15, 155, 100, $SS_CENTERIMAGE)
    $tribal = GUICtrlCreatePic(@scriptdir & "\Templates\Tribal.jpg", 135, 15, 155, 100, $SS_CENTERIMAGE)
    GUICtrlSetState($pluto2, $GUI_HIDE)
    GUICtrlSetState($pluto, $GUI_HIDE)
    GUICtrlSetState($horny, $GUI_HIDE)
    GUICtrlSetState($tigerdragon, $GUI_HIDE)
    GUICtrlSetState($dragon2, $GUI_HIDE)
    GUICtrlSetState($dragon, $GUI_HIDE)
    GUICtrlSetState($tribal2, $GUI_HIDE)
    GUICtrlSetState($tribal, $GUI_HIDE)

    GUISetState(@sw_show)

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

    While 1
    $msg = GUIGetMsg()
    Select
    case $msg = $gui_event_close Or $msg = $Cancel2
    $flag = True
    GUIDelete($guistyle)
    ExitLoop
    case $msg = $combo
    $switch2 = GUICtrlRead($combo)
    Switch $switch2
    case "Tribal"
    GUICtrlSetState($pluto2, $GUI_HIDE)
    GUICtrlSetState($pluto, $GUI_HIDE)
    GUICtrlSetState($horny, $GUI_HIDE)
    GUICtrlSetState($tigerdragon, $GUI_HIDE)
    GUICtrlSetState($dragon2, $GUI_HIDE)
    GUICtrlSetState($dragon, $GUI_HIDE)
    GUICtrlSetState($tribal2, $GUI_HIDE)
    GUICtrlSetState($tribal, $GUI_SHOW)
    case "Tribal 2"
    GUICtrlSetState($pluto2, $GUI_HIDE)
    GUICtrlSetState($pluto, $GUI_HIDE)
    GUICtrlSetState($horny, $GUI_HIDE)
    GUICtrlSetState($tigerdragon, $GUI_HIDE)
    GUICtrlSetState($dragon2, $GUI_HIDE)
    GUICtrlSetState($dragon, $GUI_HIDE)
    GUICtrlSetState($tribal, $GUI_HIDE)
    GUICtrlSetState($tribal2, $GUI_SHOW)
    case "Dragon"
    GUICtrlSetState($pluto2, $GUI_HIDE)
    GUICtrlSetState($pluto, $GUI_HIDE)
    GUICtrlSetState($horny, $GUI_HIDE)
    GUICtrlSetState($tigerdragon, $GUI_HIDE)
    GUICtrlSetState($dragon2, $GUI_HIDE)
    GUICtrlSetState($tribal2, $GUI_HIDE)
    GUICtrlSetState($tribal, $GUI_HIDE)
    GUICtrlSetState($dragon, $GUI_SHOW)
    case "Dragon 2"
    GUICtrlSetState($pluto2, $GUI_HIDE)
    GUICtrlSetState($pluto, $GUI_HIDE)
    GUICtrlSetState($horny, $GUI_HIDE)
    GUICtrlSetState($tigerdragon, $GUI_HIDE)
    GUICtrlSetState($dragon, $GUI_HIDE)
    GUICtrlSetState($tribal2, $GUI_HIDE)
    GUICtrlSetState($tribal, $GUI_HIDE)
    GUICtrlSetState($dragon2, $GUI_SHOW)
    case "Tigerdragon"
    GUICtrlSetState($pluto2, $GUI_HIDE)
    GUICtrlSetState($pluto, $GUI_HIDE)
    GUICtrlSetState($horny, $GUI_HIDE)
    GUICtrlSetState($dragon2, $GUI_HIDE)
    GUICtrlSetState($dragon, $GUI_HIDE)
    GUICtrlSetState($tribal2, $GUI_HIDE)
    GUICtrlSetState($tribal, $GUI_HIDE)
    GUICtrlSetState($tigerdragon, $GUI_SHOW)
    case "Horny"
    GUICtrlSetState($pluto2, $GUI_HIDE)
    GUICtrlSetState($pluto, $GUI_HIDE)
    GUICtrlSetState($tigerdragon, $GUI_HIDE)
    GUICtrlSetState($dragon2, $GUI_HIDE)
    GUICtrlSetState($dragon, $GUI_HIDE)
    GUICtrlSetState($tribal2, $GUI_HIDE)
    GUICtrlSetState($tribal, $GUI_HIDE)
    GUICtrlSetState($horny, $GUI_SHOW)
    case "Pluto"
    GUICtrlSetState($pluto2, $GUI_HIDE)
    GUICtrlSetState($horny, $GUI_HIDE)
    GUICtrlSetState($tigerdragon, $GUI_HIDE)
    GUICtrlSetState($dragon2, $GUI_HIDE)
    GUICtrlSetState($dragon, $GUI_HIDE)
    GUICtrlSetState($tribal2, $GUI_HIDE)
    GUICtrlSetState($tribal, $GUI_HIDE)
    GUICtrlSetState($pluto, $GUI_SHOW)
    case "Pluto 2"
    GUICtrlSetState($pluto, $GUI_HIDE)
    GUICtrlSetState($horny, $GUI_HIDE)
    GUICtrlSetState($tigerdragon, $GUI_HIDE)
    GUICtrlSetState($dragon2, $GUI_HIDE)
    GUICtrlSetState($dragon, $GUI_HIDE)
    GUICtrlSetState($tribal2, $GUI_HIDE)
    GUICtrlSetState($tribal, $GUI_HIDE)
    GUICtrlSetState($pluto2, $GUI_SHOW)
    EndSwitch
    case $msg = $ok2
    $nfo = FileSaveDialog("Save your NFO", @scriptdir & "\NFOs\", "All (*.*)", 16, GUICtrlRead($rel) & ".nfo")
    If @error Then
    Else
    $switch2 = GUICtrlRead($combo)
    Switch $switch2
    case "Tribal"
    FileCopy(@ScriptDir & "\Templates\Tribal.txt", $nfo, 1)
    ;group
    If GUICtrlRead($group) = "" Then
    Else
    $strInsert = GUICtrlRead($group)
    $pos = 80
    $line = 3
    _Insert($strInsert, $pos, $line)
    EndIf
    ;release
    If GUICtrlRead($rel) = "" Then
    Else
    $strInsert = GUICtrlRead($rel)
    $pos = 80
    $line = 14
    _Insert($strInsert, $pos, $line)
    EndIf
    ;today
    If GUICtrlRead($today) = "" Then
    $z = -1
    Else
    $strInsert = GUICtrlRead($ltoday) & ": " & GUICtrlRead($today)
    $pos = 85
    $line = 59
    _Insert($strInsert, $pos, $line)
    EndIf
    ;lang
    If GUICtrlRead($lang) = "" Then
    $z = $z -1
    Else
    $strInsert = GUICtrlRead($llang) & ": " & GUICtrlRead($lang)
    $pos = 85
    $line = 60 + $z
    _Insert($strInsert, $pos, $line)
    EndIf
    ;size
    If GUICtrlRead($size) = "" Then
    $z = $z -1
    Else
    $strInsert = GUICtrlRead($lsize) & ": " & GUICtrlRead($size)
    $pos = 85
    $line = 61 + $z
    _Insert($strInsert, $pos, $line)
    EndIf
    ;author
    If GUICtrlRead($author) = "" Then
    $z = $z -1
    Else
    $strInsert = GUICtrlRead($authlabel) & ": " & GUICtrlRead($author)
    $pos = 85
    $line = 62 + $z
    _Insert($strInsert, $pos, $line)
    EndIf
    ;input
    If GUICtrlRead($input1) = "" Then
    $z = $z -1
    Else
    $strInsert = GUICtrlRead($label1) & ": " & GUICtrlRead($input1)
    $pos = 85
    $line = 64 + $z
    _Insert($strInsert, $pos, $line)
    EndIf
    If GUICtrlRead($input2) = "" Then
    $z = $z -1
    Else
    $strInsert = GUICtrlRead($label2) & ": " & GUICtrlRead($input2)
    $pos = 85
    $line = 65 + $z
    _Insert($strInsert, $pos, $line)
    EndIf
    If GUICtrlRead($input3) = "" Then
    $z = $z -1
    Else
    $strInsert = GUICtrlRead($label3) & ": " & GUICtrlRead($input3)
    $pos = 85
    $line = 66 + $z
    _Insert($strInsert, $pos, $line)
    EndIf
    If GUICtrlRead($input4) = "" Then
    $z = $z -1
    Else
    $strInsert = GUICtrlRead($label4) & ": " & GUICtrlRead($input4)
    $pos = 85
    $line = 67 + $z
    _Insert($strInsert, $pos, $line)
    EndIf
    If GUICtrlRead($input5) = "" Then
    $z = $z -1
    Else
    $strInsert = GUICtrlRead($label5) & ": " & GUICtrlRead($input5)
    $pos = 85
    $line = 68 + $z
    _Insert($strInsert, $pos, $line)
    EndIf
    If GUICtrlRead($input6) = "" Then
    $z = $z -1
    Else
    $strInsert = GUICtrlRead($label6) & ": " & GUICtrlRead($input6)
    $pos = 85
    $line = 69 + $z
    _Insert($strInsert, $pos, $line)
    EndIf
    If GUICtrlRead($desc) = "" Then
    $z = $z -1
    Else
    Dim $Pfad = $nfo
    Dim $line = 73 ; Zeile festlegen, ab der Inhalt aus Editbox geschrieben werden soll
    Dim $posX = 73 ; Spalte ab der der Text eingefügt werden soll innerhalb der Zeile
    Dim $arNFO ; hier wird nfo-Datei eingelesen
    Dim $lineCount = 1
    If IsArray(_FileReadToArray($Pfad, $arNFO)) Then
    For $i = $line To ($line + _GUICtrlEditGetLineCount($desc))-1
    _StrOverwrite($arNFO[$i], _GUICtrlEditGetLine($desc, $lineCount))
    $lineCount += 1
    Next
    _ArrayDelete($arNFO, 0)
    FileMove($Pfad, $Pfad & '.BAK', 1)
    _FileWriteFromArray($Pfad, $arNFO)
    EndIf
    $z = 0
    EndIf
    EndSwitch
    EndIf
    GUIDelete($guistyle)
    ExitLoop
    EndSelect
    WEnd
    EndFunc

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

    Func _StrOverwrite(ByRef $STR, $TXT2OVERWRITE, $STARTPOS)
    Local $strTmp = ''
    Local $arAlt = StringSplit($STR, '')
    Local $arInsert = StringSplit($TXT2OVERWRITE, '')
    $pos = 7
    For $i = 1 To UBound($arInsert) -1
    $arAlt[$STARTPOS+$i] = $arInsert[$i]
    Next
    For $i = 1 To UBound($arAlt) -1
    $strTmp &= $arAlt[$i]
    Next
    $STR = $strTmp
    EndFunc ;==>_StrOverwrite

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

    Func _Insert($strInsert, $pos, $line)
    $strAlt = FileReadLine($nfo, $line)
    $arAlt = StringSplit($strAlt, '')
    $arInsert = StringSplit($strInsert, '')
    For $i = 1 To UBound($arInsert) -1
    $arAlt[$pos+$i] = $arInsert[$i]
    Next
    $strOut = ''
    For $i = 1 To UBound($arAlt) -1
    $strOut &= $arAlt[$i]
    Next
    _FileWriteToLine($nfo, $line, $strOut, 1)
    EndFunc

    [/autoit]

    bei zeile 587 versuche ich, den text aus der editbox auszulesen und zeile für zeile in die neue datei zu schreiben. leider funktioniert das nicht ... was mache ich falsch?

    • Offizieller Beitrag

    Hi,
    in der Funktion ist eine Zeile, die ich nur beim tetsweise drinhatte. Kannst du rausschmeißen -macht keinen Sinn: $pos = 7
    Hat aber keinen Einfluß weiter.

    Mach mal ein Debugging für alle Variablen in der Funktion
    (in SciTE: Variable markieren, Alt+D ==> Wert wird in Console geschrieben).
    Dann kannst du am einfachsten feststellen, wo es hakt.

    Rein vom Ablauf sehe ich im Moment keinen Fehler.