spinnifex
Goto Top

Txt-Editor, der OnOpen bzw. AutoOpen-Makro u.s.w. beherrscht

Hallo zum Wochenende!

wenn man in eine MS-Notepad-txt-Datei in die erste Zeile ein .LOG eingibt, wird bei jedem neuen Öffnen der Datei Datum und Uhrzeit eingefügt. Hübsch für Log-Dateien, die man bei Kontakten mit UHDs oder Hotlines führen muss... räusper.

Ich suche nach einem Editor, der beim Öffnen einer Datei ein bestimmtes (vorher aufgezeichnetes/geschriebenes) Makro ausführt. Der Datei-Inhalt kommt per VBA open#n for append, also noch ohne GUI des Editors, anschließend soll die GUI eine einfache Suchen/Ersetzen-Routine durchführen.

Am liebsten wäre mir ein Tipp, wie das in NP++ funktioniert, ich bin aber auch offen für Alternativen. cmd-Parameter sind bekanntermaßen auch per VBA machbar.

Lieben Dank fürs späte Lesen und schönes WE

meint spinnifex

Content-ID: 393821

Url: https://administrator.de/contentid/393821

Ausgedruckt am: 22.11.2024 um 05:11 Uhr

BassFishFox
BassFishFox 25.11.2018 aktualisiert um 01:29:46 Uhr
Goto Top
Hi,

Die Makrofunktion in NPP schon durch geackert?

2018-11-24 19_14_41-

Interessant ist auch das Plugin NPPExec. -> https://superuser.com/questions/951752/combine-custom-run-command-and-ma ...
Oder halt das "allmaechtige" AutoHotKey mit dazu nehmen.

BFF
spinnifex
spinnifex 25.11.2018 um 14:11:15 Uhr
Goto Top
Moin BFF,

lieben Dank für Deine (nachmitternächtlich späten) Vorschläge! Leider bieten sie nicht mehr Service für meine Faulheit beim Öffnen einer TXT-Datei. Natürlich habe ich mir das aufzurufende Makro auf eine (der wenigen freien) F-Taste in NPP gelegt, aber genau diesen Schritt hatte ich gehofft mir noch ersparen zu können. Es wäre der letzte manuelle Eingriff in eine VBA-Routine, die ansonsten als vollständig automatisierter Code-Generator für Standard-Makros durchläuft.

Grüße

spinnifex
BassFishFox
BassFishFox 25.11.2018 um 14:33:22 Uhr
Goto Top
Mahlzeit.

Dann kapsele das Ganze in eine Autohotkey-Routine. face-big-smile

BFF
137846
137846 25.11.2018 aktualisiert um 14:37:30 Uhr
Goto Top
soll die GUI eine einfache Suchen/Ersetzen-Routine durchführen.
Wieso soll das die GUI machen? Lass das doch direkt dein VBA Script machen, mit Regex kannst du ja auch dort sehr viel machen, dann ist das überflüssig und du kannst den Editor deiner Wahl weiter benutzen.

Gruß A.
spinnifex
spinnifex 25.11.2018 um 15:00:34 Uhr
Goto Top
Auch Mahlzeit (BBQ spareribs & french fries)

mangels Ahnung: was meinst Du damit, wie geht das?
spf
spinnifex
spinnifex 25.11.2018 um 15:04:19 Uhr
Goto Top
Hi answerer,

es geht darum, Platzhalter für doppelte Hochkommata zu ersetzen, und das kann VBA meiner Kenntnis nach nicht. Mein Code Genrator strickt u.A. Messageboxen, in denen Strings vorkommen, die eben mit doppelten Hochkommata umgeben werden müssen. Es kommen aber auch einfache HKs vor.

Gruß spf
137846
137846 25.11.2018 aktualisiert um 15:18:03 Uhr
Goto Top
Zitat von @spinnifex:
es geht darum, Platzhalter für doppelte Hochkommata zu ersetzen, und das kann VBA meiner Kenntnis nach nicht.
Quatsch mit Soße, klar geht das.
Mein Code Genrator strickt u.A. Messageboxen, in denen Strings vorkommen, die eben mit doppelten Hochkommata umgeben werden müssen. Es kommen aber auch einfache HKs vor.
Das ist Jacke wie Hose und absolut kein Thema, aber leider sehr schwammig ausgedrückt, mach doch mal ein Beispiel, dann kann ich dir auch eins geben.
spinnifex
spinnifex 25.11.2018 um 15:17:57 Uhr
Goto Top
okay, und wie funktioniert der Quatsch mit Sauce?
Im Moment schreibe ich den generierten Code z.B. als
msgbox #bla#,,#Hinweis# "' Kommentar" in eine TXT-Datei, ersetze dort dann die # durch HKs und nutze dann den Code.
Wie geht es schlauer?
137846
137846 25.11.2018 aktualisiert um 15:25:19 Uhr
Goto Top
Zitat von @spinnifex:

okay, und wie funktioniert der Quatsch mit Sauce?
Im Moment schreibe ich den generierten Code z.B. als
msgbox #bla#,,#Hinweis# "' Kommentar" in eine TXT-Datei, ersetze dort dann die # durch HKs und nutze dann den Code.
Wie geht es schlauer?
Statt nur eine Raute zu benutzen benutze einen String der bestimmt nicht auch im Code vorkommen kann, denn nur eine Raute zu benutzen ist schon sehr unsicher, also besser so was wie "##MUSTER##" und dann nur ##MUSTER## ersetzen. Du musst natürlich beachten das du einfache Anführungszeichen durch doppelte ersetzen musst, aber das kann die Routine ja gleich mit Replace, oder einem Regex-Replace machen.

Warum du aber VBA Code erst extra in eine Textdatei schreibst verstehe ich hier nicht das kann man doch direkt ohne solche Umwege machen.
spinnifex
spinnifex 25.11.2018 um 15:26:16 Uhr
Goto Top
Irgendwie hatte ich gehofft eine Lösung, zur Vereinfachung zu finden ...
Bisher war weder die einfache # ein Problem noch die Nutzung zusätzlicher Tools das Thema.
Ich denke, ich bleibe beim einfachen Tastendruch auf F10 und danke herzlich für jede Unterstützung.

Schönes WE

sfx
137846
137846 25.11.2018 aktualisiert um 15:36:13 Uhr
Goto Top
Zitat von @spinnifex:

Irgendwie hatte ich gehofft eine Lösung, zur Vereinfachung zu finden ...
Leider wirst du nicht konkret genug, und wo der Sinn dahinter ist.

Ich kann dir gerne Beispiel machen, dafür muss aber erst mal der Sinn klar sein.
Damit eventuelle Anführungszeichen in einem vom User übergebenen String nicht zum Problem werden einfach ersetzen mit doppelten und dann am Platz des Platzhalters einfügen
Replace(strText,"""","""""",1,-1,vbTextCompare)  
Ich sehe hier das Problem das du zu haben scheinst nicht, sorry.

Bisher war weder die einfache # ein Problem
Ja solange eben im Code nicht noch irgendwo anders stehen klar. Aber das könnte ja kommen, deswegen sollte man sowas direkt aus dem Weg gehen. Nur weil etwas funktioniert heißt es nicht das es auch optimal ist.

Als denn ebenso s. WE.