Zwischenablage inhalt falsch interpretiert Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Zwischenablage inhalt falsch interpretiert

07 Jan 2019, 15:14

Hallo zsm,
habe folgende Liste, die hätte ich gerne Semikolon getrennt nebeneinander.
Ein Lösung dafür habe ich auch gefunden, was nicht funktioniert,

ist die EingabeVar des Loops Clipboard, gibt es mir folgendes aus:

Code: Select all

a1;
a2;
a3;


b1;
b2;
b3;
b4;


c1;
c2;
c3;
c4;
c5;
ist Aber die EingabeVar des Loops Variable File,
dann bekomme ich das richtige raus

Code: Select all

a1;a2;a3;
b1;b2;b3;b4;
c1;c2;c3;c4;c5;
Wieso wird hier, obwohl Inhalt des Clipboard das selbe ist wie file, unterschiedliche ergebnisse angezeigt?

Code: Select all

F3::
file=
(
a1
a2
a3

b1
b2
b3
b4

c1
c2
c3
c4
c5
)

;Loop, Parse, file, `r`n
Loop, Parse, Clipboard, `r`n
{
if (A_Loopfield = "")
{
Send, `n
continue
}
if (Mod(a_index, 1))
{
Send, % A_loopfield ";"
continue
}
if (Mod(a_index, 2))
{
Send, % A_loopfield ";"
continue
}
if (Mod(a_index, 3))
{
Send, % A_loopfield ";"
continue
}
if (Mod(a_index, 4))
{
Send, % A_loopfield ";"
continue
}
if (Mod(a_index, 5))
{
Send, % A_loopfield ";"
continue

}
}
User avatar
SL5
Posts: 879
Joined: 12 May 2015, 02:10
Contact:

Re: Zwischenablage inhalt falsch interpretiert

07 Jan 2019, 17:55

kannst mit regEx machen:
2019-01-07 23_51_20-Table awaiting Action.png
2019-01-07 23_51_20-Table awaiting Action.png (4.47 KiB) Viewed 1596 times

newVar := RegExReplace(oldVar, "m)(\w+);\n(\w+)","$1$2") ; Replaces occurrences of a pattern (regular expression) inside a string.
User avatar
Gerdi
Posts: 185
Joined: 03 Aug 2015, 18:48
Location: Germany
Contact:

Re: Zwischenablage inhalt falsch interpretiert

08 Jan 2019, 05:59

Code: Select all

file
(a1
a2
…
)
benutzt nur `n für eine neue Zeile
ich blicke Dein Skript nicht recht aber folgendes könnte helfen
StringReplace,file,file,`n,`r`n,All
in der Zeile nach der schließenden Klammer von file.

Oder Du änderst
Loop, Parse, Clipboard, `r`n
in
Loop, Parse, Clipboard, `n,`r

falls dies nicht zum Erfolg führt, bräuchte ich nähere Infos (Sinn und Zweck) zu Deinen Send-Befehlen.
Win 10 Home (x64) and Win 11 Pro N
https://github.com/Grrdi/ZackZackOrdner/archive/master.zip --> get folders on the quick
KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Re: Zwischenablage inhalt falsch interpretiert

08 Jan 2019, 13:01

Abend und danke fürs Antworten.
ich blicke Dein Skript nicht recht
ich auch nicht :) Gestern hat es aber noch Sinn gegeben. Heute festgestellt, dass ich auf dem Holzweg war.
mir ist weitergeholfen, wenn man mir folgende Phänomen erklärt.
Es geht um leere Zeilen, habe vier Zeilen in der Zwischenablage, zb.
a1

b2


Leere Zeilen zwischen a1 und b2 wird nicht erkannt, aber die vierte Zeile, wird als solches erkannt,
Was ist nun der Unterschied, zwischen Zeile 2 und Zeile 4?

Code: Select all

Loop, parse, clipboard, `n
{
if (A_loopfield = "")
msgbox, % a_index " ist eine leere zeile"
Else
msgBox, % A_loopfield
}
Folgendes wird ausgegen:
Index 1: a1
Index 2: einfach Leer ;Das verstehe ich nicht!
Index 3: b2
Index 4: 4 ist eine leere Zeile ;die letzte Zeile wird richtig ausgegeben

LG
User avatar
Gerdi
Posts: 185
Joined: 03 Aug 2015, 18:48
Location: Germany
Contact:

Re: Zwischenablage inhalt falsch interpretiert  Topic is solved

08 Jan 2019, 16:54

StandartMäßig besteht ein ZeilenEnde in Windows aus `r gefolgt von `n auch CR und LF bzw. ausgeschrieben CarriageReturn und LineFeed.
Das war bei der Schreibmaschine der Wagenrücklauf gefolgt vom Drehen der BlattHalteTrommel um die Zeilenhöhe.
Wenn Du
Loop, parse, clipboard, `n
verwendest und nicht
Loop, Parse, clipboard, `n,`r
ist A_Loopfield nicht leer, da es ja noch ein `r enthält.


Um das Ganze kompliziert zu machen hält sich die Variablenzuweisung der Form
file=
(
...
...
...
)
nicht an den obigen Standart und setzt bei jedem Zeilenwechsel nur `n an das jeweilige Zeilenende.
Der tiefere Sinn dieses Verhaltens hat sich mir bisher noch nicht erschlossen.

Wenn diese Ausführung nicht ausreicht Dein Phenomen zu beschreiben, brauche ich alle Details:
Wie kommen welche Daten in welche Speicher + das komplette Skript
Win 10 Home (x64) and Win 11 Pro N
https://github.com/Grrdi/ZackZackOrdner/archive/master.zip --> get folders on the quick
KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Re: Zwischenablage inhalt falsch interpretiert

09 Jan 2019, 16:26

Danke, für die Erklärung, hat wunderbar funktioniert.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 53 guests