1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. MotDy2k

Beiträge von MotDy2k

  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 23. Juni 2017 um 17:36

    Nein, dann meine ich die Fensterleiste.
    Wie ich den Fenstinhalt, also das hinter meinen Buttons, mit einer Farbe oder einem Hintergrundbild versehen kann weiß ich inzwischen.
    Dort wo "Microtik Enabled Interfaces" steht, ich habe es mal mit einem Pfeil markiert möchte ich z.B. im Hintergrund die Farbe z.B. dunkleres Grau oder Gelb o.ä. haben.

    Dateien

    MEI.jpg 50,4 kB – 0 Downloads
  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 23. Juni 2017 um 16:50

    Hi,

    klasse, DANKE!
    Werde ich mir mal alles in Ruhe heute Abend anschauen.
    THX

    @autoiter
    Mit Formularen meine ich die Form Objekte, also die Fenster / Formulare werden sie ja auch in anderen Sprachen genannt.
    Also solche, die ich mit dem KODA FormDesigner z.B. erstellen kann.

  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 23. Juni 2017 um 16:25

    Hi,

    so Zentrieren der Fenster habe ich auch geschafft, das war wirklich sehr einfach.

    Aber außer für die Hindergrundfarbe bzw. ein Bild in den Hintergrund zu setzen habe ich nur etliche Fragen gefunden wie man die Hintergrundfarbe der Titelleiste ändert.
    Nur keine Antwort dazu, außer sehr alte (5-8 Jahre) mit der Aussage das es nicht möglich ist.
    Stimmt das, ist es wirklich nicht möglich die Hintergrundfarbe der Titelleiste / Header zu ändern?
    Oder auf einfache Art das Aussehen der Formulare an das Standard Windows Design / Symbole usw. anzupassen?

  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 21. Juni 2017 um 21:04

    Habe ich gemacht, sofern der Zieldateiname anders ist erhalte ich auch meine MsgBox.
    Aber er übernimmt den Wert nicht und sofern ich dann in der geöffneten GUI den Dateinamen noch Mal ändere bekomme ich MsgBox auch nicht mehr.

    Zudem funktioniert die Prüfung ob die Datei bereits existiert nicht.

    Das ich eine GUI schließen muss wusste ich so nicht, ich dachte das passiert in dem Moment wenn das Script den Bereich verlässt.
    Na dann werde ich noch Mal gucken wie man das macht.


    Aktualisierung:
    So ich habe es korrekt hin bekommen und es funktioniert auch alles :)
    DANKE

    Ich suche nebenbei auch schon sehr lange nach einer Möglichkeit die Hintergrundfarbe von dem Formulartitel / Header wie auch die Schaltflächen (Minimieren, Maximieren, Schließen) zu ändern bzw. diese auszublenden o.ä.
    Also die Hintergrundfarbe von dem GUICreate Header meine ich.

    Und gibt es eine einfache Möglichkeit die Formulare / Fenster zu zentrieren?

  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 21. Juni 2017 um 20:50

    Das Problem mit der Schriftgröße habe ich "gelöst", ich habe in einem anderen Beitrag etwas dazu von Oscar gefunden:

    AutoIt
    $iAppDPI = RegRead('HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics', 'AppliedDPI')
    
    
    GUICtrlSetFont(-1, 10 / $iAppDPI * 96, 400, 0, 'Verdana')

    Und wegen dem GUI anstatt einer Inputbox, doch der Code ist von mir.
    Ich hatte vorhin halt nicht das ganze Script neu rein kopiert sondern nur den Teil der in der Do Until Anweisung steht.
    Hier das gesamte Script.
    Wenn das GUI zur Eingabe für den neuen Dateinamen offen ist, komme ich da einfach nicht raus - außer durch Beenden.
    Dabei ist es völlig egal was mein eingibt.

    AutoIt
    #Region 
    #AutoIt3Wrapper_Icon=MikroTik.ico
    #AutoIt3Wrapper_Compression=3
    #EndRegion
    #include <MsgBoxConstants.au3>
    #include <Array.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    Global $FileContent
    Global $fileToUse
    Global $newFileName
    Global $sourceFileName
    Global $path
    $newFileName = 0
    Opt("GUIResizeMode", $GUI_DOCKAUTO+$GUI_DOCKLEFT+$GUI_DOCKRIGHT+$GUI_DOCKTOP+$GUI_DOCKBOTTOM+$GUI_DOCKHCENTER+$GUI_DOCKVCENTER+$GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    #Region ### START Koda GUI section ### Form=d:\mikrotik\f_start.kxf
    $F_Start = GUICreate("MikroTik Enabled Interfaces", 692, 323, 423, 362)
    GUISetIcon("D:\Mikrotik\MikroTik.ico", -1)
    GUISetBkColor(0xFFFFFF)
    $B_End = GUICtrlCreateButton("Beenden", 480, 153, 137, 40)
    GUICtrlSetFont(-1, 10, 800, 0, "Verdana")
    $B_FileOpen = GUICtrlCreateButton("Datei wählen", 64, 153, 137, 40)
    GUICtrlSetFont(-1, 10, 800, 0, "Verdana")
    $B_Start = GUICtrlCreateButton("Start", 274, 153, 137, 40)
    GUICtrlSetFont(-1, 10, 800, 0, "Verdana")
    $L_Titel = GUICtrlCreateLabel("Aktive Interfaces aus MikroTik Konfiguration filtern", 121, 8, 430, 35)
    GUICtrlSetFont(-1, 11, 800, 0, "Verdana")
    $L_Version = GUICtrlCreateLabel("V 1.0", 624, 8, 34, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Verdana")
    $L_Info1 = GUICtrlCreateLabel("Unterstützt werden MikroTik RSC Files", 16, 72, 271, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $L_Info2 = GUICtrlCreateLabel("Das Tool filtert alle aktivierten Interfaces und speichert diese in einem neuem Konfigurationsfile.", 16, 96, 660, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $L_Path = GUICtrlCreateLabel("Dateipfad:", 24, 232, 75, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Verdana")
    
    
    $L_Source = GUICtrlCreateLabel("Quelldatei:", 24, 264, 75, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Verdana")
    
    
    $L_Destination = GUICtrlCreateLabel("Zieldatei:", 24, 296, 75, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Verdana")
    
    
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    
    
    		Case $B_FileOpen
    			OpenFile()
    
    
    		Case $B_Start
    			Edit()
    
    
    		Case $B_End
    			Exit
    	EndSwitch
    WEnd
    
    
    Func OpenFile()
    
    
    $newFileName = 0
    $path = @DesktopDir
    $fileToUse = FileOpenDialog("MikroTik Konfigurationsdatei wählen", $path, "MikroTik RSC Datei (*.rsc)", 1  )
    
    
    
    
    If @error Then
        MsgBox($MB_ICONERROR,"Fehler","Keine Datei ausgewählt!")
    Else
    $sourceFileName = 0
    $path = $fileToUse
    $split = StringInStr($path, '\', 1, -1)
    $sourceFileName = StringMid($path, $split+1)
    $path = StringLeft($path, $split)
    GUICtrlCreateLabel($path, 100, 232, 562, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Verdana")
    GUICtrlCreateLabel($sourceFileName, 100, 264, 562, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Verdana")
    $FileContent = FileRead($fileToUse)
    
    
    Do
    
    
    $Input = GUICreate("Ausgabedatei", 400, 200, 423, 362)
    $newFileName = GUICtrlCreateInput($sourceFileName, 11, 66, 307, 21)
    GUICtrlCreateLabel("Neuer Dateiname", 9, 9, 129, 17)
    $B_OK = GUICtrlCreateButton("OK", 100, 94, 112, 26)
    GUISetState(@SW_SHOW)
    
    
    
    
    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
       Case $GUI_EVENT_CLOSE
       ExitLoop
    
    
    	Case $B_OK
    	ExitLoop
        EndSwitch
    WEnd
    
    
    if FileExists($path & $newFileName) Then
    MsgBox($MB_ICONINFORMATION, "Fehler", "Datei ist schon vorhanden !")
    EndIf
    
    
    Until FileExists($path & $newFileName) = 0
    
    
    If $newFileName <> "0" Then
    GUICtrlCreateLabel($newFileName, 100, 296, 562, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Verdana")
    Endif
    
    
    EndIf
    
    
    EndFunc
    
    
    Func Edit()
    If $newFileName == "0" Then
    	MsgBox($MB_ICONINFORMATION, "Fehler", "Verarbeitung nicht möglich" & @CRLF & "Quell- und Zieldatei prüfen !")
    EndIf
    If $newFileName <> "0" Then
    $aOut = StringRegExp($FileContent, '(?s)add configuration.+?disabled=no.+?name=\\*\s*(.+?)\s+', 3)
    $sOut = ''
    
    
    ProgressOn("Verarbeite Daten", "Fortschritt")
    For $i = 0 To UBound($aOut) - 1
    	$sOut &= 'enable ' & $aOut[$i] & @CRLF
     	ProgressSet($i)
     	Sleep(5)
     Next
    
    
     ProgressSet(100, "Erledigt, Datei wird gespeichert")
     Sleep(500)
    
    
    $newFileName = $path & $newFileName
    $hFile = FileOpen($newFileName, 2)
    If $hFile <> -1 Then
    	FileWrite($hFile, "/interfaces" & @CRLF)
    	FileWrite($hFile, $sOut)
    	FileClose($hFile)
    
    
    EndIf
    ProgressOff()
    MsgBox($MB_ICONINFORMATION, "Abgeschlossen", "Datei wurde unter: " & @CRLF & $newFileName & @CRLF & "gespeichert!")
    EndIf
    EndFunc
    Alles anzeigen
  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 21. Juni 2017 um 20:12

    Habe wegen der Schrift noch Mal geschaut, es ist wirklich die DPI Einstellung.
    Also auf meinem PC 100% auf dem anderen 125%.

    Lässt sich sowas pauschal lösen, das wird ja fast jeder anders eingestellt haben.
    Oder kann mann die Einstellung irgendwie Abfragen und die Schriftgröße je nach DPI Einstellung in Variablen legen o.ä. ?

  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 21. Juni 2017 um 19:20

    Hi,

    Bezüglich der Schriftart, könnte sein das die DPI-Einstellung anders ist das müsste ich noch Mal prüfen.
    Gibt es dafür denn eine Lösung? So ist es ja nun so das der Text nicht mehr in die definierten Feld / Button größen passt und abgeschnitten wird.
    Zudem kann das ja auf jedem PC anders sein.

    Ich habe versucht in der DO Until Anweisung die Inputbox durch ein GUI zu ersetzen, soweit auch kein Problem.
    Aber mit einem Klick auf OK oder Enter komme ich nicht aus der GUI, ein ExitLoop usw. hat hier nicht funktioniert.

    Hier mal einer der Versuche:

    AutoIt
    Do
    
    
    $Input = GUICreate("Ausgabedatei", 400, 200, 423, 362)
    $newFileName = GUICtrlCreateInput($sourceFileName, 11, 66, 307, 21)
    GUICtrlCreateLabel("Neuer Dateiname", 9, 9, 129, 17)
    $B_OK = GUICtrlCreateButton("OK", 100, 94, 112, 26)
    GUISetState(@SW_SHOW)
    
    
    
    
    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
       Case $GUI_EVENT_CLOSE
    	ExitLoop
    
    
    	Case $B_OK
    	ExitLoop
        EndSwitch
    WEnd
    
    
    if FileExists($path & $newFileName) Then
    MsgBox($MB_ICONINFORMATION, "Fehler", "Datei ist schon vorhanden !")
    EndIf
    
    
    Until FileExists($path & $newFileName) = 0
    Alles anzeigen
  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 21. Juni 2017 um 18:51

    So, nun bin ich eigentlich fast fertig.
    Mit Sicherheit hätte man das ein oder andere einfacher, besser machen können - für Tipps bin ich Dankbar :).
    Zudem habe noch ein paar Fragen, zu denen ich keine Lösung / Antwort gefunden habe.

    1. Ich habe die Schriftart Verdana verwendet, offensichtlich wird sie nicht im Script eingebettet.
    Und obwohl die Schriftart auf einem anderen PC vorhanden ist, wird sie falsch angezeigt (zu groß usw.)
    Wie bekomme ich es hin, das die Schriftart immer gleich ist, evtl. auch wenn diese auf dem PC nicht installiert ist?

    2. Ich wollte eigentlich gerne ein GUI für die Abfrage nach dem Zieldateinamen, vor allem weil bei der Inputbox OK und Cancel auftaucht (das Cancel stört mich)
    Nur habe ich es nicht geschafft das GUI zu verlassen, also einen neuen Dateinamen mit zu übernehmen und somit das GUI und die Until Funktion zu verlassen.

    Aber hier erstmal das vorerst fertige Script

    AutoIt
    #Region
    #AutoIt3Wrapper_Icon=MikroTik.ico
    #AutoIt3Wrapper_Compression=3
    #EndRegion
    #include <MsgBoxConstants.au3>
    #include <Array.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    Global $FileContent
    Global $fileToUse
    Global $newFileName
    Global $sourceFileName
    Global $path
    $newFileName = 0
    Opt("GUIResizeMode", $GUI_DOCKAUTO+$GUI_DOCKLEFT+$GUI_DOCKRIGHT+$GUI_DOCKTOP+$GUI_DOCKBOTTOM+$GUI_DOCKHCENTER+$GUI_DOCKVCENTER+$GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    #Region ### START Koda GUI section ### Form=d:\mikrotik\f_start.kxf
    $F_Start = GUICreate("MikroTik Enabled Interfaces", 692, 323, 423, 362)
    GUISetIcon("D:\Mikrotik\MikroTik.ico", -1)
    GUISetBkColor(0xFFFFFF)
    $B_End = GUICtrlCreateButton("Beenden", 480, 153, 137, 40)
    GUICtrlSetFont(-1, 10, 800, 0, "Verdana")
    $B_FileOpen = GUICtrlCreateButton("Datei wählen", 64, 153, 137, 40)
    GUICtrlSetFont(-1, 10, 800, 0, "Verdana")
    $B_Start = GUICtrlCreateButton("Start", 274, 153, 137, 40)
    GUICtrlSetFont(-1, 10, 800, 0, "Verdana")
    $L_Titel = GUICtrlCreateLabel("Aktive Interfaces aus MikroTik Konfiguration filtern", 121, 8, 430, 35)
    GUICtrlSetFont(-1, 11, 800, 0, "Verdana")
    $L_Version = GUICtrlCreateLabel("V 1.0", 624, 8, 34, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Verdana")
    $L_Info1 = GUICtrlCreateLabel("Unterstützt werden MikroTik RSC Files", 16, 72, 271, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $L_Info2 = GUICtrlCreateLabel("Das Tool filtert alle aktivierten Interfaces und speichert diese in einem neuem Konfigurationsfile.", 16, 96, 660, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $L_Path = GUICtrlCreateLabel("Dateipfad:", 24, 232, 75, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Verdana")
    
    
    $L_Source = GUICtrlCreateLabel("Quelldatei:", 24, 264, 75, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Verdana")
    
    
    $L_Destination = GUICtrlCreateLabel("Zieldatei:", 24, 296, 75, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Verdana")
    
    
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    
    
    		Case $B_FileOpen
    			OpenFile()
    
    
    		Case $B_Start
    			Edit()
    
    
    		Case $B_End
    			Exit
    	EndSwitch
    WEnd
    
    
    Func OpenFile()
    
    
    $newFileName = 0
    $path = @DesktopDir
    $fileToUse = FileOpenDialog("MikroTik Konfigurationsdatei wählen", $path, "MikroTik RSC Datei (*.rsc)", 1  )
    
    
    
    
    If @error Then
        MsgBox($MB_ICONERROR,"Fehler","Keine Datei ausgewählt!")
    Else
    $sourceFileName = 0
    $path = $fileToUse
    $split = StringInStr($path, '\', 1, -1)
    $sourceFileName = StringMid($path, $split+1)
    $path = StringLeft($path, $split)
    GUICtrlCreateLabel($path, 100, 232, 562, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Verdana")
    GUICtrlCreateLabel($sourceFileName, 100, 264, 562, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Verdana")
    $FileContent = FileRead($fileToUse)
    
    
    Do
    
    
    $newFileName = InputBox("Neuer Dateiname", "Datei speichern unter: ", $sourceFileName )
    If @error then
    	$newFileName = 0
    	ExitLoop
    EndIf
    
    
    if FileExists($path & $newFileName) Then
    MsgBox($MB_ICONINFORMATION, "Fehler", "Datei ist schon vorhanden !")
    EndIf
    
    
    Until FileExists($path & $newFileName) = 0
    
    
    If $newFileName <> "0" Then
    GUICtrlCreateLabel($newFileName, 100, 296, 562, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Verdana")
    Endif
    
    
    EndIf
    
    
    EndFunc
    
    
    Func Edit()
    If $newFileName == "0" Then
    	MsgBox($MB_ICONINFORMATION, "Fehler", "Verarbeitung nicht möglich" & @CRLF & "Quell- und Zieldatei prüfen !")
    EndIf
    If $newFileName <> "0" Then
    $aOut = StringRegExp($FileContent, '(?s)add configuration.+?disabled=no.+?name=\\*\s*(.+?)\s+', 3)
    $sOut = ''
    
    
    ProgressOn("Verarbeite Daten", "Fortschritt")
    For $i = 0 To UBound($aOut) - 1
    	$sOut &= 'enable ' & $aOut[$i] & @CRLF
     	ProgressSet($i)
     	Sleep(5)
     Next
    
    
     ProgressSet(100, "Erledigt, Datei wird gespeichert")
     Sleep(500)
    
    
    $newFileName = $path & $newFileName
    $hFile = FileOpen($newFileName, 2)
    If $hFile <> -1 Then
    	FileWrite($hFile, "/interfaces" & @CRLF)
    	FileWrite($hFile, $sOut)
    	FileClose($hFile)
    
    
    EndIf
    ProgressOff()
    MsgBox($MB_ICONINFORMATION, "Abgeschlossen", "Datei wurde unter: " & @CRLF & $newFileName & @CRLF & "gespeichert!")
    EndIf
    EndFunc
    Alles anzeigen
  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 17. Juni 2017 um 22:34

    Danke, damit komme ich schon deutlich weiter!

    Sicher eine ganz blöde Frage, aber warum wird das Flag nicht wie in der Funktionserklärung in den eckigen Klammern angegeben?
    Wie hier im Beispiel der Erklärung
    StringRegExp ( "test", "pattern" [, flag = 0 [, offset = 1]] )

  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 17. Juni 2017 um 21:59

    Vielen Dank für die Hilfe, soweit für mich auch alles verständlich und nachvollziehbar.
    Nur die eine Zeile nicht ganz, könntest du mir die etwas erklären:

    AutoIt
    $aOut = StringRegExp($sText, '(?s)disabled=no.+?name=\\*\s*(.+?)\s+', 3)

    Die Funktionsbeschreibung habe ich mir schon angeschaut und der Aufbau der Funktion ist mir auch verständlich.
    Bis zu dem Teil "name=\\" komme ich auch noch mit, aber der Rest ist mir noch nicht ganz klar. Zumal am Ende das ", 3)" das Flag sein soll und in eckige Klammern gehört?
    Oder irre ich mich da total? Das \s oder ?s ist mir auch klar, aber \\* z.B. nicht.

  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 17. Juni 2017 um 15:18

    Hi,

    hier mal eine Beispielkonfiguration, die Werte wie Passworte usw. habe ich geändert aber das Dateiformat / der Aufbau ist unverändert.
    Eigentlich ist die Dateiendung .rsc, aber ich musste sie umbenennen da die Dateiendung abgeleht wurde.

    Es geht um den Bereich ab "/caps-man interface", in diesem Fall bis "/ip pool" - allerdings könnte bei erweiterter Konfiguration ein anderer Abschnitt anstatt "/ip pool" folgen.


    Im Prinzip benötige ich für jede Zeite von den "add configuration=" Zeilen, bei denen "disabled=no" ist, den Wert der hinter "name=" auftaucht, egal ob in der gleichen der 2. oder 3 o.ä. Zeile danach.

    Der Text hinter "name=" kann natürlich unterschiedlich lang sein, daher halt bis zum nächsten Leerzeichen.


    THX

    Dateien

    Mikrotik-Sample.txt 8,29 kB – 256 Downloads
  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 17. Juni 2017 um 08:24

    Moin,

    dank eurer Hilfe bin ich extrem weiter gekommen, habe auch etliches gelesen vor allem zur Bearbeitung von Textdateien wie auch Variablen usw. und den Konstanten auf Anraten von autoiter nicht die Flags bei z.B. einer MessageBox zu nutzen usw.

    Hier mal ein Auszug aus meinem Script, die Möglichkeit die Verarbeitung der gewählen Datei mit OK zu starten oder Abzubrechen:

    AutoIt
    if MsgBox($MB_ICONINFORMATION + $MB_OKCANCEL,"Hinweis","Folgende Datei ausgewählt: "& @CRLF & $fileToUse) = 1 thenElse    Exit


    Ich habe es natürlich getestet und es funktioniert, aber ich würde gerne wissen ob es die richtige / eine gute / sinnvolle Vorgehensweise ist.
    Mir ist schon klar, das es in dieser Scrpitsprache viele Möglichkeiten gibt, ans Ziel zu kommen daher gibt es sicher auch andere Lösungen.
    Nur weil etwas funktioniert bedeuet es ja nicht, das es gut / richtig ist ;). Und ich lerne ja noch lange *g*

    Zudem habe ich noch eine Frage, zu der ich noch keine wirkliche Lösung gefunden habe und an die ich vorher nicht gedacht habe.
    In dem Konfigurationsfile vom MikroTik ist es so, das bei einigen Interfaces der gesuchte Wert nicht unbedingt zwei Zeilen darunter steht - gerade bei Physikalischen Interfaces.

    Gibt es die Möglichkeit, im Script zu bestimmen suche das erste "add configuration=" und gib mir den Teil der nach dem darauffolgenden "name=" kommt, gleich wo er auftaucht und wie lang der Text ist bis zum Leerzeichen.
    Also gleich ob in der Zeile oder ein, zwei, drei Zeilen später aber vor dem nächsten "add configuration="?
    Klar gibt es die Möglichkeit sicherlich, ich weiß halt nur nicht wie *g*

    Hier noch Mal meine Beispielkonfiguration mit der neuen Zeile, die ich absichtlich mal in der Mitte eingefügt habe:
    add configuration=xxxxxxx disabled=no mac-address=00:00:00:00:00:00 \
    master-interface=1.4-67370665861D-1 name=\
    1.4-67370665861D-1-9 radio-mac=00:00:00:00:00:00
    add configuration=xxxxxxx disabled=no l2mtu=1600 mac-address=\
    00:00:00:00:00:00 master-interface=none name=7-673706ADC0EA-1 \
    radio-mac=00:00:00:00:00:00
    add configuration=xxxxxxx disabled=yes mac-address=00:00:00:00:00:00 \
    master-interface=1.4-67370665861D-1 name=\
    1.4-67370665861D-1-10 radio-mac=00:00:00:00:00:00
    add configuration=xxxxxxx disabled=no mac-address=00:00:00:00:00:00 \
    master-interface=1.4-67370665861D-1 name=\
    1.4-67370665861D-1-11 radio-mac=00:00:00:00:00:00

    Ich habe zwar schon vieles ausprobiert und getestet aber entweder stehe ich auf dem Schlauch oder habe den richtigen Weg noch nicht gefunden.
    Habe auch schon versucht alle CRLF zu entfernen und nur vor jedem "add configuration=" einzufügen, damit ich den Teil aus dem Konfigfile der für mich interessant ist Zeilenweise habe.
    Hat auch alles wunderbar funktionert, ich dachte es wäre einfacher dann den Text Zeilenweise nach "add configuration=" und dem "name=" durchsuchen zu lassen.
    Also die Zeile als Grenze der Suche, nach dem Motto suche nur in der Zeile nach "name=" in der du auch das "add configuration=" hast und gib mir den Wert.

    Irgendwie habe ich mich aber wohl falsch ausgedrückt und das Ergebnis war eher dürftig *g*

    Könnte mir hier bitte noch Mal jemand auf die Sprünge helfen?

    Dank Euch!

    THX
    MotD

  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 13. Juni 2017 um 23:15

    @autoiter

    Vielen Dank für deine Mühe / Hilfe und die absolut grandiosen Erklärungen!
    Und natürlich hast du Recht, mein erster Beitrag klang wohl wirklich so *g*
    Ich wollte eigentlich zum Ausdruck bringen, das ich mit AutoIT noch keine Erfahrungen habe, mich das Teil aber schon länger reizt.
    Ganz Fremd bin ich in Scriptsprachen nicht, daher dachte ich ich könnte die Anforderung mal in AutoIT versuchen und dabei den Umgang damit lernen.

    @Bitnugger
    Mir war schon klar, was es ist ;) Aber danke für den HInweis, künftig nenne ich es dann anders *g*

  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 13. Juni 2017 um 20:10

    Hi,
    die gesamte Konfigurationsdatei möchte ich aufgrund der Passworte, SSIDs usw. eher nicht posten.
    Aber ich denke, du hast recht es sind Zeilenumbrüche + LineFeed (CRLF) in der Konfigurationsdatei.

    Ich habe mir dein Script auch gerade mal angeschaut, es ausprobiert und versuche es gerade zu verstehen.
    So im groben komme ich auch dahinter, nur müsste ich ja eine Datei frei wählen können und unter einem anderen Namen das Ergebnis abspeichern.
    In deinem Schipt hast du den gesamten Text ja in einer Variable, den er sich eigentlich komplett selbst suchen sollte.

    THX
    MotD

  • Benötige Infomaterial für Anfänger - Bearbeiten von Textdateien

    • MotDy2k
    • 13. Juni 2017 um 19:07

    Hallo,
    ich habe noch absolut keine Erfahrungen mit AutoIT, würde mich aber gern näher damit beschäftigen.
    Da das Tool recht umfangreich scheint, würde ich gern mit einem existierenden Problem bei mir beginnen und daran lernen.
    Ich habe eine Textdatei, es handelt sich um eine Konfigurationsdatei aus einem Mikrotik Routerboard, aus der ich einen bestimmten Teil benötige, wenn eine gewisse Bedingung erfüllt ist.

    Hier mal ein Beispiel von einem Inhalt, den wichtigen Teil habe ich mal farblich markiert:
    add configuration=xxxxxxx disabled=no mac-address=00:00:00:00:00:00 \
    master-interface=1.4-67370665861D-1 name=\
    1.4-67370665861D-1-9 radio-mac=00:00:00:00:00:00
    add configuration=xxxxxxx disabled=yes mac-address=00:00:00:00:00:00 \
    master-interface=1.4-67370665861D-1 name=\
    1.4-67370665861D-1-10 radio-mac=00:00:00:00:00:00
    add configuration=xxxxxxx disabled=no mac-address=00:00:00:00:00:00 \
    master-interface=1.4-67370665861D-1 name=\
    1.4-67370665861D-1-11 radio-mac=00:00:00:00:00:00

    Natürlich ist in der Datei vor dem ersten "add configuration" und danach noch anderer Text, der ignoriert werden kann.
    Ich müsste nun, immer wenn disable=no auftaucht den Wert der übernächsten Zeile in eine neue Textdatei bekommen und noch ein "enable " davorsetzen.
    Also wie hier in dem Beispiel eine neue Textdatei mit dem Inhalt:

    enable 1.4-67370665861D-1-9
    enable 1.4-67370665861D-1-11

    Vielleicht kann mir ja jemand behilflich sein, bevor ich noch weitere Stunden versuche das hin zu bekommen.
    Ich habe zwar schon einiges gelesen, aber ich bin noch nicht auf der richtigen Spur um das zu realisieren.

    THX

    MotD

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™