In Autohotkey Strings in einer Schleife hochzählen
Hallo Programmier-Profis,
Ich weiß, dass das hier jetzt ein nicht ganz richtiges Forum ist, aber ich bin so verwegen, mir hier trotzdem Hilfe zu erhoffen. Vielleicht weiß ja jemand, wo ich bei Autokey noch Hilfe bekommen kann, im dortigen Forum komme ich nicht weiter.
Ich bin ziemlich neu mit Autohotkey, ich habe vor langer Zeit in Visual Basic Code programmiert, verschüttete Grundkenntnisse sind also vorhanden.
Ich würde gerne einen String in einer Schleife hochzählen lassen - meine Herausforderung sieht so aus:
loop 19
{
MsgBox, 4, , "eMail-Adress" + %A_Index% + " already done?"
IfMsgBox No
Goto,LabelExit ; if eMail Adress has already been used goto labelexit: an start next loop
emName = "vvnn"+%A_Index%+"@gmx.de" ; My Target: if loop run >=10 then emName = vnnn10@gmx.de, vnnn11@gmx.de ...
if %A_Index% <10
emName = "vvnn"+"0"+%A_Index%+"@gmx.de" ; My Target: if loop run <10 0 must be added => emName = vnnn01@gmx.de
; hier sind die ausführbaren Routinen
LabelExit:
}
loop 20
{
emName := "vvnn" Format("{:02}", A_Index-1) "@gmx.de"
}
funktioniert leider nicht. Fehler: Call to non existing function
Ich habe aus Kompatibilitätsgründen AHK 1.0.47.6
Ich wäre sehr dankbar für die Unterstützung.
Danke fürs Lesen, Nachdenken und Antworten! Hyperion69
Ich weiß, dass das hier jetzt ein nicht ganz richtiges Forum ist, aber ich bin so verwegen, mir hier trotzdem Hilfe zu erhoffen. Vielleicht weiß ja jemand, wo ich bei Autokey noch Hilfe bekommen kann, im dortigen Forum komme ich nicht weiter.
Ich bin ziemlich neu mit Autohotkey, ich habe vor langer Zeit in Visual Basic Code programmiert, verschüttete Grundkenntnisse sind also vorhanden.
Ich würde gerne einen String in einer Schleife hochzählen lassen - meine Herausforderung sieht so aus:
loop 19
{
MsgBox, 4, , "eMail-Adress" + %A_Index% + " already done?"
IfMsgBox No
Goto,LabelExit ; if eMail Adress has already been used goto labelexit: an start next loop
emName = "vvnn"+%A_Index%+"@gmx.de" ; My Target: if loop run >=10 then emName = vnnn10@gmx.de, vnnn11@gmx.de ...
if %A_Index% <10
emName = "vvnn"+"0"+%A_Index%+"@gmx.de" ; My Target: if loop run <10 0 must be added => emName = vnnn01@gmx.de
; hier sind die ausführbaren Routinen
LabelExit:
}
loop 20
{
emName := "vvnn" Format("{:02}", A_Index-1) "@gmx.de"
}
funktioniert leider nicht. Fehler: Call to non existing function
Ich habe aus Kompatibilitätsgründen AHK 1.0.47.6
Ich wäre sehr dankbar für die Unterstützung.
Danke fürs Lesen, Nachdenken und Antworten! Hyperion69
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 385270
Url: https://administrator.de/contentid/385270
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
1 Kommentar
Hallo, Hyperion69,
Dein unteres Beispiel
funktioniert bei mir, liegt aber vielleicht daran, dass ich Version 1.1.26.01 benutze.
Ich habe Dein oberes Beispiel mal etwas modifiziert, Du musst auf die richtige Schreibweise bei der Variablenzuweisung achten.
Falls Du die IF-Abfrage umgehen willst, dann setz vor A_Index doch eine NULL und nimm die 2 rechten Zeichen, so hast Du es immer 2-stellig und kannst es leicht auf drei Stellen erweitern, wenn Du zwei Nullen davor setzt und die 3 rechten Zeichen mit stringright abschneidest.
Und natürlich sollte es IfMsgBox, Yes heissen, wenn Du alles überspringen willst, wenn die Mailadresse bereits existiert.
Ich hoffe, das hilft Dir weiter.
Gruß, Mikimoto
Dein unteres Beispiel
loop 20
{
emName := "vvnn" Format("{:02}", A_Index-1) "@gmx.de"
MsgBox, , , eMail-Adress: %emName%
}
funktioniert bei mir, liegt aber vielleicht daran, dass ich Version 1.1.26.01 benutze.
Ich habe Dein oberes Beispiel mal etwas modifiziert, Du musst auf die richtige Schreibweise bei der Variablenzuweisung achten.
loop 19
{
MsgBox, 4, , eMail-Adress: %A_Index% already done?
IfMsgBox, Yes
Goto,LabelExit ; if eMail Adress has already been used goto labelexit: an start next loop
emName := "vvnn" A_Index "@gmx.de" ; My Target: if loop run >=10 then emName = vnnn10@gmx.de, vnnn11@gmx.de ...
if A_Index <10
emName := "vvnn0" A_Index "@gmx.de" ; My Target: if loop run <10 0 must be added => emName = vnnn01@gmx.de
; hier sind die ausführbaren Routinen
MsgBox, , , eMail-Adress: %emName%
LabelExit:
}
loop 19
{
MsgBox, 4, , eMail-Adress: %A_Index% already done?
IfMsgBox, Yes
Goto,LabelExit ; if eMail Adress has already been used goto labelexit: an start next loop
cnt := "0" A_index
stringright, cnt, cnt, 2
emName := "vvnn" cnt "@gmx.de"
; hier sind die ausführbaren Routinen
MsgBox, , , eMail-Adress: %emName%
LabelExit:
}
Ich hoffe, das hilft Dir weiter.
Gruß, Mikimoto