Editfeld updaten

  • HAllo liebe Forengemeinde,

    sitze jetzt schon geraumezeit daran, ein definiertes TXT file auf Buttonclick zu öffnen , dann editierbar zu machen (ist es ja schon) und dann nach der Möglichkeit, per neuem Button das file upzudaten. Die Hilfe konnte mir dabei auch nicht unbedingt behilflich sein, beim Stichwort update ging es dann lediglich zu einer Tabelle, aber keine entsprechenden Beispiele. Also was ich möchte, ganz simpel, nur ein Button der mir das angezeigte abspeichert. Weiss da einer genauerers? mein Code bezüglich dessen schaut so aus:

    Danke schon mal und allen ein schönes Weekend

    Chris

  • Btw.: Das Suchwort "Update" ist hierbei auch vollkommen verkehrt.

    Das was du willst, ist:

    1. Datei öffnen/lesen (Fileopen), hast du ja gefunden

    2. In das Edit den Inhalt schreiben

    3. Den Inhalt auslesen

    4. Das ausgelesene in eine Datei schreiben

  • casi4712
    Wenn Du wieder eingecheckt hast wirst Du sehen, das die AW's v. Moombas passen wie der Deckel auf den Topf.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • So dann checke ich mal wieder ein, das Statement was Du mir nanntest klang ja auch logisch, hatte das jetzt eben mal zu meiner Edit GUI hinzugefügt, aber der Speichererfolg ist leider nur mässig:( Der Coder schaut so aus (nur die Edit GUI):

  • du hast in der func global variablen da sollten nur local rein

    deswegen geht es bestimmt nicht da du $file bestimmt öfter hast.

    nur eine Vermutung.

  • hm, also dass kann es auch nicht sein, hab jetzt alle Variablen in der Funktion auf Local gesetzt.

    schönen Abend noch und Danke

  • was ich grad sehe

    C:\Program Files\ <- versuch mal scrite mit admin zu starten(per kontextmenu) und dann dein skript auszuführen.

    $nMSG kommt auch 2 mal vor einmal als global und einmal als local

  • also an dem Pfad sollte es nicht liegen, das hatte ich auch schon überprüft, indem ich eine txt nach c:\test.txt versucht hatte, der selbe Effekt. Das andere schau ich gerade mal und vergebe dann einen anderen Namen.

    lg


    chris

  • Habe jetzt die lokale Variable umgetauft in mMSG, speichert ebenfalls nicht, ist doch zum Mäusemelken.

  • :saint:


    ich weiß nicht was du mit

    Code
    Func CheckX($hGui, $CtrlID, $sCMD, $eCMD)
        Local $cGui = GUIGetCursorInfo($hGui)
        If Not IsArray($cGui) Then
            Return 0
        EndIf
          If $LastHwnd <> $cGui[4] And $cGui[4] = $CtrlID Then Return Execute($sCMD) + Assign("LastHwnd", $cGui[4])
          If $LastHwnd <> $cGui[4] Then Return Execute($eCMD) + Assign("LastHwnd", $cGui[4])
    EndFunc

    erreichen möchtest.

    9 Mal editiert, zuletzt von MojoeB (26. Juni 2022 um 12:23) aus folgendem Grund: ElseIf 0 'ElseIf=0' fehler behoben.

  • Hallo Mojo, wegen der checX muss ich noch mal nachschauen, benutze ich standardmässig schon lange, hatte ich nie Probleme mit, sind auch keine Variablen mehr doppelt belegt, aber ich kanns gern in eine Einfach GUI mal testweise einbetten, um Fehler auszuschliessen, ist ja schliesslich nix unmögkich. Mit Deinem Code schreibt er mir nur; include GuiCtrlonHover Error opening file, ich hatte es mir vorher aber gezogen. Das ich immer so komplizierte Probleme habe, dachte das wäre vielleicht mal ne simple Sache. Ich weiss kann auch ein Editor öffnen lassen, dachte geht vielleicht eleganter.


    LG und danke noch mal

    eine schöne Woche

  • nein mein Code funktioniert aber ich kannte deine

    #include <GuiCtrlSetOnHover_UDF.au3>

    nicht, deshalb hab ich sie mir aus dem netz gezogen und dort heißt diese GuiCtrlOnHover.au3

    benenne Zeile 6 einfach in
    #include <GuiCtrlSetOnHover_UDF.au3>

  • hey, ok es funzt, dankeschön, aber nicht durch Umbennen, die Idee hatte ich auch schon, sondern durch auskommentieren. Du spielst gerne mit Arrays, habe ich mich in Autoit leider noch nicht befasst. Ist es für diese einfache Funktion nicht ein bisl überkandidelt, dass hier über 100 Zeilen Code notwendig sind? Wieso funktioniert es denn nicht einfach mit der Writefunktion, wie dein Vorredner schon sagte, und es auch an einigen Stellen beschrieben steht?

    danke noch mal

    lg


    Chris

  • deine GUIS habe ich in Array gepackt weil ich es leichter finde.

    und wenn du genau hinschauen würdest du erkennen was grundlegend anders an meinem Code ist. ich benutze nur 1 While schleife für alle deine guis,.

    Ich lasse die guis ganz normal in einer Funktion erstellen blos das die elemente eingekachelt sind und direkt als array gesichert (_arrayadd()) werden.

    Damit du weitere Details hast ob das nun im array an 1 oder 2 stelle dein Configbutton ist wird in der zweiten spalte des GUI arrays das Control ausgelesen welche dir deine vergebenen daten anzeigt.

    Die erste spalte sind dann die Controlid selber.

    Man muss es nicht machen aber ich dachte vielleicht verstehst du dann besser, du musst dich auch schon ein klein wenig mit der Materie beschäftigen.

    Vor der While schleife, lasse ich die Guis durch die Funktion erstellen. Der Rückgabe wert wird dann mit Arraydisplay kannst du dir anzeigen lassen was alles im Array ist.

    zwischen zeile 28 und 32 weiße ich die handels der fenster, halt die ControlIDs in ein neues arrays hinzu um es in der While schleife dann einfacher zu erkennen was zu gui 1(handel) oder 2(handel) gehört.

  • Ich findes das auch durchaus eine interessante Technik, hatte mir das gestern noch mal genauer angeschaut, und ich kann mir gut vorstellen, bei nächsten "Projekte" so meine GUIS zu hinterlegen. Habe das schon gesehen, keine Bange. Aber denke bitte daran, auch wenns hier nicht klar wurde, das ist nur ein Mini Teilmodul, für ein bereits weit über 1000 Zeilen enthaltenes Gesammt Sccript, dass jetzt alles umschreiben zu müssen, für diese Mini Funktionalität wäre mit der linken Hand am rechten Ohr gekratzt, denke dass ist einsehbar. Ich nuzte hier nur eine Subgui.

    Aber auf jeden Fall danke, wie gesagt für nächste Projekte kann ich mir das gut vorstellen.


    lg und schöne Woche

    Chris

  • So um noch mal auf meine Version zurückzukommen, hier ist eine mit SimpelGUI, warum funktioniert FileWrite nicht, ChexX und sone Scherze können nun ausgeschlossen werden?

  • 1. Warum hast du Filewrite doppelt?

    2. Ändere das mal wie folgt:

    Code
    Case $hButton
               FileOpen($file); Das brauchst du trotzdem, da du die Datei (richtigerweise) nach dem Einlesen schließt!
               if FileWrite($file, GuiCtrlRead($IEdit)) then
                 MsgBox(0,"Fertig!","Datei wurde gespeichert!")
               Else
                 MsgBox(0,"Fehler!","Datei konnte nicht gespeichert werden!")
               Endif
               FileClose($file)

    Zusätzlicher Tipp: Sollte sich der Inhalt von $file nicht ändern, empfehle ich, diese zudem auch als Const zu definieren.

    Einmal editiert, zuletzt von Moombas (27. Juni 2022 um 10:41)