Notepad++ Zeile auslesen und automatisch kopieren

Kann man Notpad++ so einstellen das es aus der Zeile 7 einer Datei, immer an der selben Stelle einen Wert, der in Anführungszeichen steht,in die Zwischenablage kopiert?
Beispiel:
Zeile 7<segment bytes=„12167“

Ich möchte das, nach drag/drop der Datei auf Notepad++,
12167 in der Zwischenablage liegt.
Einer eine Idee?
Danke für jede Antwort.

boot - Auto start Notepad++ macro - Super User ist jetzt nicht so schwer zu finden, wenn man nach Notepad++ autostart macro sucht.

Hallo Wiz
Danke für deine Antwort.
Ich habe aber nichts von Autostart geschrieben.
Ich möchte eine Zeile auslesen.

OK, dann fangen wir mal ganz von vorne an: Du willst:

Das setzt voraus, dass Du eine Verknüpfung von Notepad++ auf dem Desktop anlegst, die nicht einfach nur Notepad++ aufruft, sondern dabei auch gleich noch einen Parameter übergibt. Das ist hier das NPPExec-Script, in dem dann wiederum der Aufruf des zuvor aufgezeichneten Makros: „Cursor in Zeile 7, Position 11, markiere fünf Zeichen, kopiere die Markierung in die Zwischenablage“ (oder wie Du es eben konkret brauchst), steckt. D.h. es wird ein Autostart des Makros bei Aufruf von Notepad++ durchgeführt. Weiterer Parameter ist die durch das Ablegen auf das Icon mitgeteilte, zu öffnende Datei. Um die musst Du Dich aber nicht kümmern, den erzeugt Windows durch das Ablegen der Datei auf dem Programm-Icon selbst.

Alternativ kann man externe Tools wie AutoIt oder AutoHotKey, … nutzen, die den Prozess des Aufrufs von Notepad++, das Öffnen der Datei und den dann manuellen Aufruf des entsprechenden Makros automatisieren können. Also: "Überwache Icon ‚Notepad++ mit Makro‘, wenn auf das Icon eine Datei abgelegt wird warte drei Sekunden bis Notepad++ mit der Datei geladen wurde, rufe Makro ‚Zeile markieren‘ auf und schließe Notepad++ wieder.

Danke für die ausführliche Erklärung,
aber das dauert mir zu lange.
Wenn ich NP++ offen habe und eine Datei reinziehe, kann ich per Doppelklick den String schneller in die Zwischenablage kopieren, als das was da gemacht werden muss.
Ich dachte man kann das automatisieren.
Geht das denn mit AHK oder Autoit schneller als mit NP++?
Und eine Idee wie ich das umsetzen kann?

So eine Geschichte erfordert immer einen gewissen Aufwand, der natürlich im passenden Verhältnis zum Nutzen stehen sollte. Wenn Du das 10.000fach benötigst, lohnt sich mehr Aufwand, als wenn Du es nur 10fach brauchst. Bist Du fit in solchen Dingen, ist dein Aufwand zur Realisierung minimal, willst Du so etwas zum ersten Mal machen, wird dich das Thema einige Stunden kosten. D.h. es kann hier niemand wissen, welcher Aufwand für Dich aktuell entsteht und ob der die Sache lohnt.

Mit dem "Ziehen in ein geöffnetes Npp-Fenster habe ich keine Erfahrung. K.A. ob man dies innerhalb Npp als Auslöser für ein Makro nutzen kann. Ich vermute mal nein. Die genannten externen Möglichkeiten sind extrem mächtig erfordern aber auch entsprechenden Einarbeitungsaufwand. Könnte schon sein, dass es damit machbar wäre. Ich kann Dir diese Frage aber nicht beantworten.

Was mit wenig Aufwand machbar ist, ist ein Makro, das dann manuell gestartet wird. Aber die Zahl der Tastendrucke ist da ggf. auch nicht weit weg von der Positionierung des Cursors an der richtigen Stelle, Markierung des Texts und <Strg>+<C> So ein Makro kann man schnell innerhalb Npp aufzeichnen.

Hallo Wiz
Ich muss das schon recht häufig am Tag machen. (auslesen eines Zeitstempels)
Momentan ist NP++ so bei mir eingestellt das ich nur einen Doppelklick auf den String ausführen muss, damit der String in der Zwischenablage landet. (kein markieren und keine Tasten drücken)

Ich schau mir die anderen Tools mal an.
Vielen Dank für deine Hilfe.

Kennt jemand/du vielleicht einen anderen Editor der das kann:

  • auslesen eines Strings und den Wert automatisch in die Zwischenablage kopieren

hi,

mit ahk geht das recht schnell, wenn es ne einfache Textdatei ist.
Ohne öffnen, einfach nur die Datei markieren.

Beispiel:

 !A::								
    Send ^c
    ClipWait			
    FileReadLine, Zeilevar, % clipboard, 7	;Zeile 7
    StringMid, Zeitvar, Zeilevar, 17, 5	;ab Stelle 17 ->  5 Zeichen
    clipboard := Zeitvar
    Return

Liegt durch !A auf alt+[a]

grüße
lipi

Hallo lipi
Klappt super, dein Schnipsel.
Danke dafür.
Hat zwar nichts mit Notepad zu tun, ist aber ausbaubar.

Bei einer Sache komme ich jetzt aber nicht weiter.
Da die Datei ja angeklickt ist, und der String in der Zwischenablage liegt, dürfte es kein Problem sein diesen Wert an das Dateiende dran zu hängen.
Mit F2+Numbpad - > springt man ja ans Ende der Datei.
Das müsste AHK jetzt automatisch machen, ohne zusätzlichen Shortcut.

Also der Arbeitsablauf soll sein:
Textdatei anklicken,
Shortcut drücken,
Rest macht AHK.

Ergebnis:

das ist meine Datei {{Zwischenablage}}.txt

Ob geschweifte oder normale Klammern ist egal.

Hast du/ihr da noch eine Idee?
Geht das überhaupt in einem Rutsch?

Danke für deine/eure Hilfe.

hi,

das verstehe ich nicht wirklich.
also ganz grundlegend was du überhaupt damit ausdrücken willst.
Was soll der Wert der Zwischenablage als Dateiname?

wäre FileAppend , Text, DateiName, Codierung ja direkt passend.
Müsste man den Dateinamen nur irgendwo aufheben.
Und es sollte geklärt werden, ob das Ende der Datei auch das Ende des Textes ist.

Es ist irrelevant, was ein beliebiges Programm beim drücken irgendwelcher Tasten macht.
Das würde man nur nutzen, wenn es nötig ist. Da man weiterhin notepad dafür nicht braucht, braucht man auch die Tastencombo nicht.
Ist nicht eher Strg-Ende fürs Textende üblich?

das wäre kein Problem, dafür ist es ja da.

brauchst du Notepad denn zwingend aus unerwähnten Gründen?
selbstredend kannst du die Datei auch öffnen lassen und dann die 7. Zeile und das 17. Zeichen ansteuern.
Wäre aber imo fehleranfällig und würde länger dauern.

grüße
lipi

Hallo lipi
Also als erstes, vergiss Notepad.
Das war nur der Grundgedanke. Durch die vielen Plugins in dem Editor war ich der Meinung, daß es dort eine versteckte Einstellung gibt.
Deine Idee mit dem anklicken der Datei und dem direkten auslesen der Zeile ist gut.
Mein Gedanke dabei ist einfach die „Automation“.
Ob das mir nachher was bringt muss ich ausprobieren was schneller ist.
Das was ich möchte ist,das AHK die Zahlen aus dem ausgelesenen String in den Dateinamen reinsetzt.
Der fertige Dateinamen sollte dann so aussehen.
Vorher:
Fluxcompensator.txt
Nachher:
Fluxcompensator{{GRN-674rr58}}.txt

Habe mir die deutsche Erklärung auf Github durchgelesen, werde aber nicht schlau daraus.

Kannst du deinen Schnipsel erweitern?

So das AHK das ausgelesene in den Dateinamen setzt?

Geht das überhaupt.
Ich habe immer gedacht das ein Dateiname erst markiert werden muss, bei Windoof also blau hinterlegt, bevor man im Namen etwas verändern kann.

Danke für deine Erklärungen und deine Hilfe.

hi,

das GRN-674rr58 dient der Verwirrung? du liest aktuell nur 5 Ziffern aus.
Oder sollen diese so aufgeteilt werden?

im Explorer schon.
AHK kann aber auch einige Sachen direkt, ohne Maus und Tastatureingaben zu simulieren.

!A::								
    	Send ^c
    	ClipWait			
    	FileReadLine, Zeilevar, % clipboard, 7	;Zeile 7
    	StringMid, Zeitvar, Zeilevar, 17, 5	;ab Stelle 17 ->  5 Zeichen
    	FileMove, % clipboard, *{{%ZeitVar%}}.*    
    	Return

grüße
lipi

Hallo lipi

Klappt super dein Code.
AHK macht es genau so wie du es beschrieben hast.
Wie von Zauberhand wird der Dateiname bei einer.txt geändert.

Jetzt kommen natürlich die ersten Probleme.
Jetzt bekomme ich den Hals nicht voll.
Möchte deinen Code umschreiben um auf:

  • viele Text und Zahlen basierte Dateien anwenden.
    -Baumstruktur auslesen.
    -Sonderzeichen und Leerstellen zählen usw.

Belassen wir es aber erst mal soweit.
Ich werde mich jetzt erst mal mit AHK beschäftigen.
Ich melde mich dann mit einem neuen Beitrag falls ich nicht weiterkomme.
Vielen Dank für deine Hilfe.

Gruss
NeuDropper