notepad++ automatisieren

note-depp
2014-02-25
2014-03-03
  • note-depp

    note-depp - 2014-02-25

    Tach Leute,

    ich bin Anfänger und habe nix passendes im Forum gefunden, daher nun meine Aufgabe.
    Ich muss jede Woche ein ASCI-File editieren:
    17.+18. Zeile Löschen
    Ersetzen "VDR" durch "RDV" durch das komplette Dokument
    Ersetzen "20mm" durch "20.000" durch das komplette Dokument
    Am Dateiende ein Leerzeite einfügen

    Wie kann ich dies automatisieren? Ich kann mir für die Ersetzenfunktion ein Makro aufzeichnen und dieses starten, möchte aber auch dieses automatisieren über einen "Task" in Windows
    Bsp: Notepad ausführen mit Dateiname, Makroname oder Skriptname, Ausgabename.

    Habt Ihr einen Vorschlag für mich?
    Wo finde ich ein deutsches Handbuch oder eine deutsche "Bedienungsanleitung"?

    Vielen Dank für Eure Hilfe
    Gruß
    N-D

     
  • Dave Brotherstone

    Ich würde das mit einem Python Skript machen (aber ich bin der Autor davon) - hol dir den PythonScript plugin, dann "Plugins, Python Script, New Script".

    Und dann, etwas in die Richtung: (Ich hab's nicht getestet!):

    editor.deleteLine(16)
    editor.deleteLine(17)
    editor.replace('VDR', 'RDV')
    editor.replace('20mm', '20.000')
    editor.appendText('\r\n')
    

    Die Skript kannst du zum Menü hinzufügen, oder Toolbar (siehe Plugins, Python Script, Configuration).

    Ich weiß leider nicht wie man das automatisieren von Windows könnte. Man könnte mit sicherheit ein Python Program schreiben, aber das wäre ein bisschen mehr Arbeit.

    Wenn die Datei immer gleich benannt ist, könntest du einfach

     notepad.open('c:\\pfad\\zu\\deiner\\datei.txt')
    
     # dann die Skript von oben
    
     # und speichern
     notepad.save()
    
     # ... und wenn du die Datei danach auch schleißen willst:
    
     notepad.close()
    

    Ich hoffe das hilft ein bisschen. Ein deutsches Handbuch gibt es soweit ich weiß nicht.

    Gruß,
    Dave.

     
  • note-depp

    note-depp - 2014-03-03

    Hallo Dave,

    das ist schon ein guter Lösungsvorschlag, dass werde ich testen. Aber ich habe noch eine Frage wegen dem Skript.Kann ich auch etwas "umrechnen" Der wert der nun kommt muss mit 0.03937 multipliziert werden
    Beispiel:
    IST => Länge : 13
    SOLL => "Fm_Länge>0,51181<Fm_Länge"
    Wie muss ich das in der Skriptsprache schreiben?
    Gruß
    N-D

     
    Last edit: note-depp 2014-03-03
  • note-depp

    note-depp - 2014-03-03

    Hallo Dave,

    wie kann ich das Notepad++ über einen Befehl starten damit das Skript "wandeln" direkt ausgeführt wird?
    Ich habe dieses Skript geschrieben und bis auf die Zahlenumrechnung funktioniert das auch, aber ich möchte das nun über eine "Kommandozeile" oder einen Batchaufruf starten.

    Beispiel für einen Batchdatei: Dateiname kann auch über die Variable %1 mitgegeben werden

    PATH=C:\Programme\Notepad++\

    Notepad++ {Dateiname} {Skriptname}

    Beispiel für Skript {wandeln]

    editor.replace ('VDR', 'RDV')
    editor.replace ('lenght', 'Länge')
    Editor.replace ('20mm', '20.000')

    Wie muss ich im Python-Skript speichern und Notepad++ beenden schreiben?
    Kann ich den Dateinamen beim speichern auch verändern? Ich brauche den Namen vor der Extension und muss den neuen Namen mit der Erweiterung ".stg" abspeichern. (Notepad.save + notepad.close funktioniert bei mir nicht)
    Gruß
    N-D

     
    Last edit: note-depp 2014-03-03
  • Dave Brotherstone

    Du kannst mit einer Funktion ersetzen. Die Funktion bekommt ein Python re.MatchObject Objekt, das du benutzen kannst, um eine Ersätzung zu generieren. Es gibt ein einfaches Beispiel hier: (allerdings auf Englisch, sag Bescheid wenn du ein schlechtes Deutsches Beispiel haben möchtest :) https://sourceforge.net/p/npppythonscript/discussion/1199074/thread/8d2ed95a/

    Um die Datei unter einem anderen Namen zu speichern, kann man einfach

    notepad.saveAs('c:\\die\\andere\\pfad.stg')
    

    Siehe http://docs.python.org/2/library/os.path.html?highlight=os.path#os.path für Dokumentation wie man Pfade bearbeitet. Grundsätzlich, du willst

    import os
    currentFilename = notepad.getCurrentFilename()
    (filenameWithoutExtension, extension) = os.path.splitext(currentFilename)
    
    notepad.saveAs(filenameWithoutExtension + '.stg')
    

    Es gibt auch notepad.saveAsCopy(filename), wenn du die Datei speichern willst, aber den alten Name in Notepad behalten.

    Soweit ich weiß, es gibt kein weg ein Skript von der Kommandozeile zu starten, sorry.

    Gruß,
    Dave.

     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks