Hallo
mir geht es darum Variablennamen in einer variable zu haben
Bsp: Variable1=abc
Name der Variable2 ist der Wert der Variablen1+j
Also $abcj
Ist so etwas Möglich?
gruß
jendrik
Spezielle Variablen deklarieren
-
- [ gelöst ]
-
jendrik -
17. Mai 2008 um 12:31 -
Geschlossen -
Erledigt
-
-
[autoit]
$var1 = "abc"
[/autoit]
$var2 = $var1 & "j"
gruß -
ich glaube du hast mich missverstanden:
es geht darum den NAMEN der Variable so zu erstellen, nicht den wert
gruß
jendrik -
hmm was soll das bringen, wenn schon, dann sollte man mit Arrays Arbeiten
-
Ich habe eine schleife die für jedes laufwerk ein paar variablen ausspucken soll.
Also $Csize, $Cname, usw.
Da es aber nicht immer laufwerk C ist, sondern auch mal F oder C und F müssten diese nach dem Muster benannt werden
darum diese idee
wenn ihr bessere Vorschläge habt wäre ich auch froh
gruß jendrik -
da ich grad nicht weiß wie man laufwerke checkt, poste mal bitte deinen quellcode.
gruß -
- Offizieller Beitrag
Es geht, stör dich nicht an der Fehlermeldung beim Start. Die Variablen werden ja erst zur Laufzeit erstellt, sind somit noch nicht deklariert:
[autoit]For $i = 1 To 9
[/autoit]
Assign('var' & $i, $i)
Next
ConsoleWrite('var1 = ' & $var1 & @CRLF)
ConsoleWrite('var2 = ' & $var2 & @CRLF)
ConsoleWrite('var3 = ' & $var3 & @CRLF)
ConsoleWrite('var4 = ' & $var4 & @CRLF)
ConsoleWrite('var5 = ' & $var5 & @CRLF)
ConsoleWrite('var6 = ' & $var6 & @CRLF)
ConsoleWrite('var7 = ' & $var7 & @CRLF)
ConsoleWrite('var8 = ' & $var8 & @CRLF)
ConsoleWrite('var9 = ' & $var9 & @CRLF)Aber um die Angaben weiter zu verarbeiten, mußt du vorab den Variablennamen kennen. Insofern weiß ich nicht, ob das was bringt.
-
@jendrik: Ich glaube du suchst Assign()
[autoit]Dim $Var1 = "abc", $Var2
[/autoit]
Assign($Var2, $Var1 & "j")
MsgBox(0, "Ergebnis", $Var2
Edit: Mist da war jemand schneller
PS: BugFix : Machs doch einfach so:Spoiler anzeigen
[autoit]Dim $var0 = "abc"
[/autoit]
For $i = 1 To 9
Assign('var' & $i, Eval("var" & $i -1) & "j ")
ConsoleWrite("var" & $i & " = " & Eval("var" & $i) & @CRLF)
Nex -
Jetzt funkt es
anbei der codeCode
Alles anzeigen#include <GUIConstants.au3> $Form1 = GUICreate("Form1", 625, 445, 191, 124) GUISetBkColor(0x00FF00) _createguidrive("C") _createguidrive("F") _createguidrive("G") GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $openC Run(@ComSpec & " /c " & 'start C:\', "", @SW_HIDE) Case $openF Run(@ComSpec & " /c " & 'start F:\', "", @SW_HIDE) Case $openG Run(@ComSpec & " /c " & 'start G:\', "", @SW_HIDE) EndSwitch $CSize = Round( DriveSpaceFree( "C:\") ) & " MB frei" GUICtrlSetData( $Cs , $Csize ) $FSize = Round( DriveSpaceFree( "F:\") ) & " MB frei" GUICtrlSetData( $Fs , $Fsize ) $GSize = Round( DriveSpaceFree( "G:\") ) & " MB frei" GUICtrlSetData( $Gs , $Gsize ) sleep(30) WEnd Func _createguidrive($drive) Assign( $drive & "name", GUICtrlCreateLabel("Boot", 56, 16, 58, 33), 2 ) GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0xFFFF00) Assign( $drive & "s", GUICtrlCreateLabel("Frei ", 244, 16, 200, 28), 2 ) GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0xFFFF00) Assign( "open" & $drive, GUICtrlCreateButton("(Not allowed)", 8, 16, 43, 36, $BS_ICON), 2 ) GUICtrlSetImage(-1, "C:\Users\Jendrik\Desktop\platte.ico", 0) EndFunc
gruß
jendrik -
Sowas ähnliches ist auch das hier: SB v X.0
Kannst du dir ja mal anschauen