Einzelne Zeile in einem Edit ersetzen

  • Und schon wieder eine Frage: :D ^^:rolleyes:

    Wie kann ich eine einzelne Zeile in einem Edit ersetzen ?( :?:

    Dankeschön für jede Antwort! (So langsam kann ich mir das mit in die Signatur schreiben :) )

    Einmal editiert, zuletzt von MatthiasG. (14. Februar 2009 um 09:44)

  • was meinst Du mit "in einem Edit ersetzen" ?(

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Meinst Du in etwa so ... ???

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 447, 193, 125)
    $IDC_EDIT = GUICtrlCreateEdit('Anton'&@crlf&'Bertie'&@crlf&'Det'&@crlf, 56, 72, 473, 257)
    $IDC_BUTTON = GUICtrlCreateButton ('OK', 20, 400, 80)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $IDC_BUTTON
    GUICtrlSetData ($IDC_EDIT, _
    StringReplace (GUICtrlRead ($IDC_EDIT), 'Bertie', 'Ersatztext'))

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

    EndSwitch
    WEnd

    [/autoit]


    LG
    Greenhorn


    • Offizieller Beitrag

    Da ich gerade langweile hatte, habe ich dir mal ein Beispiel geschrieben. Ich denke das macht das was du suchst.

    Spoiler anzeigen
    [autoit]

    #include <GuiEdit.au3>
    #include <GuiConstantsEx.au3>

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

    Opt('MustDeclareVars', 1)

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

    _Main()

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

    Func _Main()
    Local $hEdit, $hInput1, $hInput2, $hButton, $nMsg, $sSource, $sDest, $iZeile
    Local $sFile = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt", "InstallDir") & "\include\changelog.txt"

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

    ; Create GUI
    GUICreate("Edit Get Line", 400, 400)
    $hEdit = GUICtrlCreateEdit("", 2, 2, 394, 268)
    GUICtrlCreateLabel("Welche Zeile soll ausgetauscht werden ?", 2, 290, 200, 17)
    $hInput1 = GUICtrlCreateInput("", 2, 310, 20, 17)
    GUICtrlCreateLabel("Ersatztext", 2, 330, 200, 17)
    $hInput2 = GUICtrlCreateInput("", 2, 350, 380, 17)
    GUISetState()
    $hButton = GUICtrlCreateButton("Ersetzen", 2, 370, 100, 17)
    _GUICtrlEdit_SetText($hEdit, FileRead($sFile))

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hButton
    $iZeile = GUICtrlRead($hInput1)
    If StringIsInt($iZeile) Then
    $sSource = _GUICtrlEdit_GetLine($hEdit, $iZeile - 1)
    $sDest = GUICtrlRead($hInput2)
    GUICtrlSetData($hEdit, StringReplace(GUICtrlRead($hEdit), $sSource, $sDest))
    Else
    MsgBox(0,"Info","Zeilenauswahl ist keine Nummer ")
    ContinueLoop
    EndIf
    EndSwitch
    WEnd
    GUIDelete()
    EndFunc ;==>_Main

    [/autoit]
  • Hab auch mal schnell was zusammengeschrieben.
    Vielleicht kannst hilft es dir ja auf die Sprünge :D

    Spoiler anzeigen
    [autoit]

    #include <GuiEdit.au3>
    #include <GUIConstantsEx.au3>

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

    $sFile = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt", "InstallDir") & "\include\changelog.txt"

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

    ; Create GUI
    GUICreate("Edit Get Line", 400, 300)
    $hEdit = GUICtrlCreateEdit("", 2, 2, 394, 268)

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

    $zeile = 0 ;Zeilennummer

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

    GUISetState()
    _GUICtrlEdit_SetText($hEdit, FileRead($sFile))

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

    _GUICtrlEdit_BeginUpdate($hEdit)
    $count = _GUICtrlEdit_GetLineCount($hEdit)
    ConsoleWrite($count & @CRLF)

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

    $index = _GUICtrlEdit_LineIndex($hEdit, $zeile)
    $index2 = _GUICtrlEdit_LineIndex($hEdit, $zeile+1) - 2
    ConsoleWrite($index & @CRLF)
    ConsoleWrite($index2 & @CRLF)
    Sleep(2000)
    _GUICtrlEdit_SetSel($hEdit, $index, $index2)
    _GUICtrlEdit_ReplaceSel($hEdit, "Hallo ich bin der Neue hier")
    _GUICtrlEdit_EndUpdate($hEdit)

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

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()

    [/autoit]
    • Offizieller Beitrag

    So geht es auch :

    Spoiler anzeigen
    [autoit]

    #include <GuiEdit.au3>
    #include <GUIConstantsEx.au3>

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

    $sFile = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt", "InstallDir") & "\include\changelog.txt"

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

    ; Create GUI
    GUICreate("Edit Get Line", 400, 300)
    $hEdit = GUICtrlCreateEdit("", 2, 2, 394, 268)

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

    $zeile = 2 ;Zeilennummer

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

    GUISetState()
    _GUICtrlEdit_SetText($hEdit, FileRead($sFile))

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

    _GUICtrlEdit_BeginUpdate($hEdit)
    $count = _GUICtrlEdit_GetLineCount($hEdit)
    ConsoleWrite($count & @CRLF)

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

    $index = _GUICtrlEdit_LineIndex($hEdit, $zeile)
    $index2 = _GUICtrlEdit_LineLength ($hEdit, $zeile)
    ConsoleWrite($index & @CRLF)
    ConsoleWrite($index2 & @CRLF)
    Sleep(2000)
    _GUICtrlEdit_SetSel($hEdit, $index, $index + $index2)
    _GUICtrlEdit_ReplaceSel($hEdit, "Hallo ich bin der Neue hier")
    _GUICtrlEdit_EndUpdate($hEdit)

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

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()

    [/autoit]


    :D