• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung

Variable mit Zähler

Nothrust

Erdapfel
Registriert
06.03.14
Beiträge
1
Hallo zusammen,

ich bin verzweifelt auf der Suche nach einer Möglichkeit eine mehrere Variablen in einer Schleife anzusprechen
mithilfe eines Zählers.

Hier ein Beispiel:
repeat with r from 1 to "Ende meiner Liste"

set {Var(1), Var(2), Var(3), Var(4), Var(5)} to {a,b,c,d,e}
--set {Attr{1,2,3,4,5}} to {{a, b, c, d, e}} << dies habe ich auch ohne Erfolg getestet

repeat with s from 1 to 5
display dialog Var(s)
end repeat
end repeat

Dies ist nun ein vereinfachtes Beispiel meiner Anwendung aber es zeigt dies genau auf.

Ich möchte einfach nicht da ich in meinem Fall unter umständen 50 bis 60 Attribute habe
jeweils eine Zeile dafür opfern um etwas mit der Variablen anzustellen - da mit allen das gleiche im
weiteren Verlauf passiert hätte ich gerne eine Möglichkeit alle Variablen in einer Schleife die 1 Zeile enthält anzusprechen.

Vielleicht hat jemand eine Lösung dafür.
Via VBA kann ich genau diese Lösung nutzen indem ich via Klammer der Variablen einen Zähler verpasse

Über konstruktive Hilfe wäre ich sehr Dankbar

Gruß Tom
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Ich weiss nicht genau, was du machen möchtest, aber in AppleScript kannst du z.B. solche Sachen machen:

Code:
set {a, b, c} to {1, 2, 3}
set myVariables to result
repeat with i from 1 to 5
   log myVariables
   set myVariables to {a + i, b + i, c + i}
end repeat

repeat with aVariable in myVariables
   log aVariable
end repeat

Vielleicht ist da ja was dabei.
 

Macmissionar

Granny Smith
Registriert
19.04.06
Beiträge
16
Hallo Pill,

das ist problemlos möglich. Aber zum Glück arbeitet AppleScript da anders als Basic und seine Ableger. Dimensionierte Variablen gibt es nicht, dafür Listen und Records.

Hier ist alles als Beispiel zu sehen.

Code:
# Erstmal nur Vorbereitung, Testarray bilden
set variablenarray to {}
repeat 7 times
    set vartemp to {}
    repeat 55 times
        set end of vartemp to some item of {0, 1, 2, 3, 4}
    end repeat
    set end of variablenarray to vartemp
end repeat
#return variablenarray# Achtung, Zeile auskommentieren
# So, und jetzt los
repeat with i from 1 to count of variablenarray
    repeat with k from 1 to count of item i of variablenarray
        set item k of item i of variablenarray to ((item k of item i of variablenarray) * 7)
    end repeat
end repeat
return variablenarray

Im ersten Teil bilde ich Dir eine verschachtelte Liste (7 Listen innerhalb einer großen Liste; alles zusammen ist nur eine Variable).

Im zweiten Teil siehst Du, wie man an die items drankommt: item x oder item i of liste.

So ist die Operation mit nur einer einzigen Zeile möglich.

Natürlich geht das auch mit Einzellisten hintereinander, die Listen müssen also nicht verschachtelt sein.
 
  • Like
Reaktionen: ImpCaligula