Hilfe beim Erstellen eines Map-Objekts mit Dereferenzierung Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Nussbeisser
Posts: 118
Joined: 17 Jul 2019, 08:49

Hilfe beim Erstellen eines Map-Objekts mit Dereferenzierung

Post by Nussbeisser » 29 Jan 2024, 17:33

Hallo zusammen,
Ich versuche, ein Map-Objekt in AutoHotKey zu erstellen, das die Funktionalität der Dereferenzierung unterstützt. Konkret möchte ich die Werte im Map-Objekt über einen Schlüssel dynamisch referenzieren.

Code: Select all

#Requires AutoHotkey v2.0+

userId := 500
username := "userfoo"
userpass := "passwort123"
user%userId% := Map()
user%userId%["username"] := username
user%userId%["passwort"] := userpass
MsgBox user500["username"]


Tipps würde ich mich sehr freuen.
Vielen Dank im Voraus!

Beste Grüße,

Rohwedder
Posts: 7655
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Hilfe beim Erstellen eines Map-Objekts mit Dereferenzierung

Post by Rohwedder » 30 Jan 2024, 05:40

Hallo,
sowas vielleicht?:

Code: Select all

#Requires AutoHotkey v2.0+

userId := 500
username := "userfoo"
userpass := "passwort123"
user := Map(userId, Map("username", username, "passwort", userpass))
MsgBox user[500]["username"] ; userfoo
MsgBox user[500]["passwort"] ; passwort123
Die Map-Syntax ist leider etwas umständlich geraten.

Nussbeisser
Posts: 118
Joined: 17 Jul 2019, 08:49

Re: Hilfe beim Erstellen eines Map-Objekts mit Dereferenzierung

Post by Nussbeisser » 30 Jan 2024, 13:33

@Rohwedder
Vielen Dank für deine Antwort. Könntest du mir bitte auch erklären, wie ich das in einer Schleife umsetzen kann? Irgendwie gelingt es mir nicht, es richtig zu machen.

Code: Select all

Text :="
(join`n
  500, userfoo, passwort123
  501, userbar, passwort321
  502, userfoobar, passwort111
)"

Loop parse, Text, "`n"
{
   TeileZeile := StrSplit(A_LoopField, ",")
   UserId := TeileZeile[1]

   MeinMap%UserId% := Map()
   MeinMap%userId%("username") := TeileZeile[2]
   MeinMap%userId%("passwort") := TeileZeile[3]
}
MsgBox MeinMap500["username"]

Rohwedder
Posts: 7655
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Hilfe beim Erstellen eines Map-Objekts mit Dereferenzierung  Topic is solved

Post by Rohwedder » 31 Jan 2024, 02:07

Entweder durch Addition von Null numerisch gemachten 500:

Code: Select all

#Requires AutoHotkey v2.0
Text :="
(join`n
  500, userfoo, passwort123
  501, userbar, passwort321
  502, userfoobar, passwort111
)", MeinMap := Map()
Loop parse, Text, "`n"
{
	TeileZeile := StrSplit(A_LoopField, ",")
	MeinMap[TeileZeile[1]+0] := Map("username"
	, TeileZeile[2], "passwort", TeileZeile[3]) ; TeileZeile[1] wird numerisch gemacht
}
MsgBox MeinMap[500]["username"] ; Adressierung mit 500 = Zahl
oder mit der Zeichenkette "500":

Code: Select all

#Requires AutoHotkey v2.0
Text :="
(join`n
  500, userfoo, passwort123
  501, userbar, passwort321
  502, userfoobar, passwort111
)", MeinMap := Map()
Loop parse, Text, "`n"
{
	TeileZeile := StrSplit(A_LoopField, ",")
	MeinMap[TeileZeile[1]] := Map("username"
	, TeileZeile[2], "passwort", TeileZeile[3]) ; TeileZeile[1] bleibt Zeichenkette
}
MsgBox MeinMap["500"]["username"] ; Adressierung mit "500" = Zeichenkette


Post Reply

Return to “Ich brauche Hilfe”