variablen Namen mittels repeat generieren ???

Startseite Foren Deutsches LiveCode-Forum variablen Namen mittels repeat generieren ???

Ansicht von 3 Antwort-Themen
  • Autor
    Beiträge
    • #22572
      foto2004
      Teilnehmer

        Hallo Gemeinde,

        hab wieder mal eine Frage. Wie kann ich VariablenNamen mittels repeat vergeben?

        Weiß nicht ob ich mich verständlich ausdrucke, deshalb mal ein Schnipsel wie ich das so versuche.

           
           repeat for each line tKey in tKeys
              put tData[tKey] into tKey&"v_tKey" -- > das geht so nicht 
           end repeat
           unlock screen
        
        
      • #22580
        Klaus Major
        Administrator

          Eventuell ght das mit DO, was aber umständlich ist.
          Ein Array ist eigentlich der beste und ideale Kandidat für diese Art von Problemstellung!

        • #22584
          Torsten
          Teilnehmer

            Hi,

            das Geheimnis ist der Befehl „do“:

            repeat for each line tKey in tKeys
                  do ("put tData[tKey] into " & "v_" & tKey)
            end repeat

            Ergebnis sind dann eine Menge neuer Variablen, die mit „v_“ beginnen und dann den Namen des Keys haben.

            Aber wie Klaus schon richtig sagt, ist es mit Arrays eigentlich besser und eleganter, denn Du kannst eine Variabe in einem Array eben auch wieder so ansprechen: tArray[„v_“ & tKey]

            repeat with i = 1 to 10
                  
                  put i into tArray["v_" & i]
                  
             end repeat

            Was willst Du eigentlich genau machen?

            Happy Coding,
            Torsten

          • #22616
            foto2004
            Teilnehmer

              Danke, war nur so ne Idee. Wollte einfach nur nicht jedes mal die Variablen per Hand schreiben. Aber das mit dem Array ist geschickter weil weniger Fehler passieren können.

          Ansicht von 3 Antwort-Themen
          • Du musst angemeldet sein, um auf dieses Thema antworten zu können.