1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Variablen erstellen

Dieses Thema im Forum "Support & Discussion" wurde erstellt von Ingolf, 2. März 2019.

  1. Ingolf

    Ingolf Member Ehrenmitglied

    Registriert seit:
    2. Juli 2017
    Beiträge:
    53
    Zustimmungen:
    26
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Ort:
    Hamburg
    Moin
    weis einer ob es möglich ist über zb einer schleife neue Varibalen zu deklarieren?
    sprich
    Code (AutoIt):

    Global $test = "lol"
    For $i = 1 to 10
         $test & $i
    Next
     
    das halt als ausgabe $test1 , $test2 , $test3, ... rauskommt

    ich weis das man bei arrays das machen kann nur komme ich bei den immer durcheinander :D
     
  2. krusty

    krusty Moderator Mitarbeiter Moderator

    Registriert seit:
    1. Juli 2017
    Beiträge:
    84
    Zustimmungen:
    33
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Ort:
    Wadiya
    Nein, soweit ich weiß ist das nicht möglich.
    Was möchtest du genau machen? Du möchtest, dass als Ausgabe "test1, test2..." rauskommt? Oder willst du dass "lol1, lol2, lol3" rauskommt?
    Was meinst du mit "rauskommen"? Als Variablen, die du später verwenden kannst?

    Arrays bzw Listen oder Wörterbücher/Dictionaries sind hier das Stichwort.

    lg :)
     
  3. gigagames

    gigagames Member

    Registriert seit:
    2. Juli 2017
    Beiträge:
    31
    Zustimmungen:
    12
    Punkte für Erfolge:
    8
    @krusty ich denke was er vorhat ist anstelle von alle var. selbst zu schreiben
    also z.B.
    $test1 = 1
    $test2 = 2
    $test3 = 3
    etc
    dies in der for schleife zu machen.

    Warum das nun "übersichtlicher" sein sollte, als nen Array weiß ich zwar nicht aber nungut.
    Die antwort lautet nein das ist so nicht möglich
     
  4. Ingolf

    Ingolf Member Ehrenmitglied

    Registriert seit:
    2. Juli 2017
    Beiträge:
    53
    Zustimmungen:
    26
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Ort:
    Hamburg
    Ich möchte halt eine Funktion schreiben die nicht so statisch läuft wie es derzeit bei mir ist
    Ich würde gern jeglichen Zähler Timer und co durch eine Ini einfach abändern lassen.

    zb
    [Timeranzahl]
    Timer=5

    $Timer1 = TimerInit()
    $Timer2 = TimerInit()
    $Timer3 = TimerInit()
    $Timer4 = TimerInit()
    $Timer5 = TimerInit()

    Da ich mich gern mit den Ebenen eines Arrays vertue und dann noch mit Ubound verbinde ist das chaos vorprogrammiert :D
     
    Zuletzt bearbeitet: 7. März 2019
  5. LaVaLuSe

    LaVaLuSe New Member

    Registriert seit:
    13. Juli 2017
    Beiträge:
    2
    Zustimmungen:
    4
    Punkte für Erfolge:
    3
    Ich dachte meine Hilfe wird hier nicht gebraucht, aber ich denke ich kann doch was zur Lösung beitragen.
    Muss dich leider entäuschen Krusty, es gibt eine Möglichkeit, die aber kaum einfacher ist als das normale einspaltige Array.

    Du musst zum deklarieren der Variablen Assign einsetzen und zum weiterverarbeiten der Variablen brauchst du den Befehl Eval
    Allerdings hat es früher mal bei fast allen Basic-Varianten genauso funktioniert wie du es in deinem ersten Post machen wolltest.
    Ich finde es auch schade, daß man diese und einige andere guten Funktionen zugunsten von was auch immer gestrichen hat.
    Falls dich bei den Arrays vor allem der erste Index auf Position Null ( Array[0] ) verwirrt, könntest ja mal versuchsweise zumindest bei einspaltigen Arrays
    das Elemnet Null umgehen, indem du z.B. ein Array für 10 Elemente folgendermassen verwendest.

    Code (AutoIt):

    Dim $Array[11]
    For $i = 1 To 10
       $Array[$i] = "Timer" & $i
    Next
     

    So kannst du es dir einfacher machen, solltest aber dann evtl auf Ubound verzichten und vor allem musst du dafür sorgen,
    daß deine Funktionen nicht auf das Element[0] zugreifen.

    Ich hoffe das hilft erstmal weiter. Achjua Informationen zu den oben genannten Funktionen findest natürlich in der Autoit-Hilfe.

    Ach Scheiss drauf hier ein kleines Bsp. zu Assign und Eval



    Code (AutoIt):

    Global $test
    For $i = 1 to 10
         Assign("Test" & $i, "Test-String"& $i)
    Next
    For $b = 1 To 10
       ConsoleWrite(Eval("Test" & $b) & @LF)
    Next
    For $i = 1 To $CmdLine[0]
       ConsoleWrite($Cmdline[$i] & @LF)
    Next

    Global $test[11], $Out
    For $i = 1 to 10
         $test[$i] = "Test-String"& $i
        $Out &= $test[$i] & @LF
    Next
    MsgBox(4096, "Titel", $Out)
     

    Mfg xXx

    Ps: Wie fügt man denn hier "richtig formatierten Code" ein?
     
    Zuletzt von einem Moderator bearbeitet: 11. März 2019
    SilverHazard, krusty und Ingolf gefällt das.
  6. Ingolf

    Ingolf Member Ehrenmitglied

    Registriert seit:
    2. Juli 2017
    Beiträge:
    53
    Zustimmungen:
    26
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Ort:
    Hamburg
    @LaVaLuSe Danke erstmal für diese ausführliche Erklärung :)
    Ja genau wie du es im Bsp code beschrieben hast, habe ich gesucht. "code=Autoit][/code" so kann man Autoit einfügen natürlich mit [ vorn und ] hinten.
    Ich denke ich werde mich aber eher auf Arrays einlassen müssen. Es führt ja nix daran vorbei weil die mich ja fast überall begegnen :D
    Das Problem bei mir ist halt das ich bei größeren Arrays dann die Übersicht verliere und mir das dann jedes mal mit _Arraydisplay ausgebe um zu sehen wo der Fehler liegt.
     
    krusty gefällt das.
  7. LaVaLuSe

    LaVaLuSe New Member

    Registriert seit:
    13. Juli 2017
    Beiträge:
    2
    Zustimmungen:
    4
    Punkte für Erfolge:
    3
    Ich denke das Debugging mit _ArrayDisplay wird wohl jeder machen der mit größeren Array hantieren muss, hoffe ich doch;
    ansonsten ist der Progger wohl ein Genie (das genau weiß wie sein ganzes mehrdimensionales Array aussieht)
    oder einfach ein Depp(der sich über sein dauerhaft abstürzendes oder falsch arbeitendes Script wundert und ärgert).
    Von den Genie's wirds wohl nicht all zu viele geben.

    Aber mach dir nix draus ich versuche den Arrays auch sogut wie möglich aus dem Wege zu gehen.
    Ich sehe es öfters wie ein Code aussieht, der von scheinbar fortgeschrittenen Programmierern auf autoit.de stammt, die gerne und massiv mit
    Arrays arbeiten. Deren Scripte kannst du x-mal durchgehen und verstehst die genaue Funktion des Scriptes trotzdem nicht.
    Tolle Beispiele davon findest du von Bitnugger oder von Andy oder AspirinJunkie oder von UEZ und gelegentlich auch von Alpines.

    Ich für meinen Teil nehme es lieber in Kauf, daß mein Script eher nach Änfänger aussieht, dafür kann ich später bei Änderungen
    gleich mal loslegen, statt ewig zu grübeln wie das Script jetzt genau arbeitet.

    Vielleicht finde ich ja mal eine besser gemachte Programmiersprache bei der das Array-Handling benutzerfreundlicher ausfällt.

    MfG xXx
     
    krusty gefällt das.

Diese Seite empfehlen

Die Seite wird geladen...