StringSplit und Clipboard Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
LuckyJoe
Posts: 341
Joined: 02 Oct 2013, 09:52

StringSplit und Clipboard

05 Jul 2017, 04:08

Hallo zusammen,

ich möchte eine Adresse, z.B. folgende

Max Mustermann
Musterstr. 123
98765 Musterstadt
01234-567890

wortweise so zerlegen, dass ich die einzelnen Wörter in die Zwischenablage kopieren kann. Mit einem vorhandenen Tool, das die Clipboard-History verwaltet, kann ich mir diese dann später einzeln aus der Zwischenablage zurückholen und weiterverarbeiten. Mein Vorgehen soll so aussehen:
1. kompletten Adress-Text markieren
2. Adress-Text in die Zwischenablage kopieren
3. mit F5 Routine zum Extrahieren der einzelnen Wörter aufrufen

Meine Ansätze führen nicht zum Erfolg, wobei mich Folgendes wundert: gehört die Zeile mit der MsgBox mit zum Code, dann funktioniert die Routine (jedes Wort wird in die Zwischenablage kopiert), kommentiere ich die Zeile aus bzw. lösche ich die Zeile, dann wird immer nur das letzte Wort in die Zwischenablage kopiert.

Code: Select all

F5::
	MyClipboard = %clipboard%
	; Trenne bei Leerraum und Zeilenumbruch
	StringSplit, MyClip, MyClipboard, %A_Space%`r`n
	Loop, %MyClip0%
	{
		Wort := MyClip%a_index%
		; leere Wörter nicht berücksichtigen:
		If Wort <>
		{
			clipboard = %Wort%
			; MsgBox, Nr. %a_index%: %Wort%		; <== ???
		}
	}
Return
Das Gleiche erlebe ich mit einem anderen Ansatz:

Code: Select all

F5::
	MyClipboard = %clipboard%
	; Trenne bei Leerraum und Zeilenumbruch
	Loop, parse, MyClipboard, %A_Space%`r`n
	{
		; leere Wörter nicht berücksichtigen:
		If A_LoopField <>
			clipboard = %A_LoopField%
			; MsgBox Nr. %A_Index%: %A_LoopField%	; <== ???
	}
Return
Ein ClipWait hilft auch nicht weiter, egal welche Zeitspanne ich dabei einstelle.

Wo stehe ich auf dem Schlauch?
Vielen Danke schon mal im Voraus.
Lucky Joe
Herzliche Grüße aus dem Rheinland
Lucky Joe
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: StringSplit und Clipboard

05 Jul 2017, 04:22

Der Loop läuft vollständig durch und schreibt jedes einzelne Wort in das Clipboard und überschreibt dabei alles was vorher drinne war. Das Resultat ist, dass immer nur das letzte Wort reinkopiert wird.
Du musst irgendwie dafür Sorgen, dass AutoHotkey nach jedem kopieren ins Clipboard die Ausführung anhält. Dies könntest du zum Beispiel über KeyWait erreichen. ( Dafür musst du dann zusätzlich deinen F5 Hotkey deaktivieren z. B. mit #If oder dem Hotkey Befehl ).
Eine andere Möglichkeit wäre es mit F5 das erste mal nur die Daten zu speichern und diese dann nach und nach abzuarbeiten bei jedem neuen click auf F5.
Recommends AHK Studio
User avatar
LuckyJoe
Posts: 341
Joined: 02 Oct 2013, 09:52

Re: StringSplit und Clipboard

05 Jul 2017, 05:08

Hallo mnnik,

danke für die Info, aber es geht gar nicht um das Auslesen des Clipboards. Dazu habe ich schon ein lauffähiges Tool im Einsatz, das mir die 500 letzten Kopiervorgänge im Clipboard verwaltet. Das heisst, per Knopfdruck sehe ich in einer Liste alle Clipboardeinträge. Es geht also nur darum, dass das Clipboard nach und nach gefüllt werden muss - und mit meinen beschriebenen Ansätzen geht das nicht - es sei denn, ich lasse die MsgBox-Zeile drin.

Greetings
Lucky Joe
Herzliche Grüße aus dem Rheinland
Lucky Joe
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: StringSplit und Clipboard

05 Jul 2017, 07:41

Und genau darüber habe ich gesprochen.
Recommends AHK Studio
User avatar
LuckyJoe
Posts: 341
Joined: 02 Oct 2013, 09:52

Re: StringSplit und Clipboard  Topic is solved

05 Jul 2017, 10:21

... oh sorry - ja, du hast Recht, das ist die Lösung:
..., dass AutoHotkey nach jedem kopieren ins Clipboard die Ausführung anhält.
Mit ClipWait hat es nicht funktioniert ... aber mit Sleep 300.

Thx
Lucky Joe
Herzliche Grüße aus dem Rheinland
Lucky Joe

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 33 guests