
http://www.purebasic.fr/german/viewtopi ... 71&start=5
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Code: Alles auswählen
EnableExplicit
Macro RenameMapKey(Map, Key, NewKey)
_RenameMapKey(FindMapElement(Map,Key), Key, @NewKey)
EndMacro
Procedure.i _RenameMapKey(*Pointer.String, Key$, *NewKey)
If *Pointer
*Pointer - SizeOf(Integer)
Protected *ToNewKey.String = @*NewKey
Swap *Pointer\s, *ToNewKey\s
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
NewMap bla.s()
bla("US") = "United States"
bla("FR") = "France"
bla("DE") = "Germany"
Debug RenameMapKey(bla(), "US", "XYZTrulala")
Debug MapKey(bla())
Debug ""
ForEach bla()
Debug MapKey(bla())+" = "+bla()
Next
Code: Alles auswählen
EnableExplicit
Macro RenameMapKey(Map, Key, NewKey)
_RenameMapKey(FindMapElement(Map,Key), Key, @NewKey)
EndMacro
Procedure.i _RenameMapKey(*Pointer.String, Key$, *NewKey)
If *Pointer
*Pointer - SizeOf(Integer)
Protected *ToNewKey.String = @*NewKey
Swap *Pointer\s, *ToNewKey\s
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
NewMap bla.s()
bla("US") = "United States"
bla("FR") = "France"
bla("DE") = "Germany"
RenameMapKey(bla(), "US", "XYZTrulala")
Debug bla("US")
Debug bla("FR")
Debug bla("DE")
Debug bla("XYZTrulala")