Page 1 of 1

Zeilenweise einfügen

Posted: 29 May 2018, 09:30
by songoku
Hallo zusammen,
würde gerne ein Script schreiben, der, die Zwischenablage liest, Jede Zeile (nach zeilenumbruch) nummeriert.
Klickt an einem bestimmten Position und die 1. Zeile einfügt, dann wieder Klick an einem bestimmten Positon und 2. Zeile usw.
Mein Code, fügt mir zwar Zeilenweise, aber alles auf einmal.


Code: Select all

Loop, parse, clipboard, `n, `r
{
    WinActivate , Dokument1
	Click, 344, 309
	send, %A_LoopField% `n
	
	Click, 485, 521
	send,  %A_LoopField% `n

}
Danke und schöne Grüße

Re: Zeilenweise einfügen

Posted: 29 May 2018, 10:22
by just me
Die Variable A_LoopField ändert sich innerhalb eines Schleifendurchlaufs nicht. Wenn Du mehrfach klickst und genauso oft A_LoopField sendest, sendest Du also immer denselben Inhalt.

AHK hat für Schleifen einen Durchlaufzähler: A_Index. Du solltest die Position Deiner Klicks deshalb von dessen Inhalt abhängig machen und A_LoopField nur einmal senden.

Oder habe ich das Problem missverstanden?

Re: Zeilenweise einfügen

Posted: 29 May 2018, 14:13
by songoku
Hallo und Danke für Antworten,
Wie spreche ich %A_LoopField% + %A_Index% 1 an. also sprich nur erste Zeile.

Re: Zeilenweise einfügen

Posted: 30 May 2018, 04:03
by just me
Hallo,

ich weiß nicht, ob ich Deine Frage richtig verstehe.

Beim ersten Durchlauf der Schleife hat A_Index den Wert 1 und A_LoopField enthält den 1. Satz.
Beim zweiten Durchlauf der Schleife hat A_Index den Wert 2 und A_LoopField enthält den 2. Satz.
...

Wenn Du die Datei in Einzelsätze zerlegen willst, die direkt über die 'Satznummer' angesprochen werden können, solltest Du Dir StrSplit() ansehen.

Re: Zeilenweise einfügen

Posted: 30 May 2018, 14:29
by songoku
StrSplit ist für das was ich vorhabe geeignet, allerdings bei mir ist das Trennzeichen ein Zeilenumbruch, das bekomme ich mit StrSplit nicht hin

Code: Select all

zwischenablage := StrSplit(clipboard, `n, `r)

MsgBox % zwischenablage[4]

Re: Zeilenweise einfügen  Topic is solved

Posted: 30 May 2018, 14:48
by Ragnar
StrSplit() ist eine Funktion und akzeptiert nur Ausdrücke als Parameter. Bei Audrücken muss literaler (direkt geschriebener) Text in Anführungszeichen gesetzt werden. In deinem Fall also:

Code: Select all

zwischenablage := StrSplit(clipboard, "`n", "`r")
MsgBox % zwischenablage[4]

Re: Zeilenweise einfügen

Posted: 30 May 2018, 15:05
by songoku
Dankeschön, Nun ist mein Vorhaben ein ganzes Stück vorangekommen.