Suche Zugriff auf Variablen welche sich durch einen Integer Wert im Namen unterscheiden (gelöst)

  • 8 Antworten
  • Letztes Antwortdatum
M

mbefore305

Stamm-User
214
Ich habe (als Rückgabe Wert des Tasker Spreadsheet Plugins) Werte in Variablen:
%row1cells()
%row2cells()

%rowNcells()

N = %rowcount

Ich möchte in einem Loop auf die verschiedenen Werte zugreifen. Also:
For N = 1 to %rowcount
Var(N) = %row%Ncells()
End For

Problem: %row%Ncells() funktioniert nicht. Habe %row(%N)cells() versucht. Auch „{}“ und „[]“, ohne Erfolg.
Ist das überhaupt machbar? Wenn ja, wie?
Wie immer: Habe im Netz gesucht aber wurde nicht fündig.
 
Moin,
das ist problemlos möglich. Variablen können variabel angesprochen werden. D. h. im Loop setzt du dir eine Hilfsvariable (z.B. %lfd), die als Wert den Namen der benötigten Variablen erhält, also %lfd=row%Ncells. Über %%lfd() greifst du dann auf die einzelnen Variablen zu, je nach Wert von N.
Hoffe war so verständlich, sonst kann ich später ein Beispiel hochladen.
 
  • Danke
Reaktionen: Mathens und mbefore305
Funktioniert so auch nicht.
Bei %ifd=row%Ncells erkennt Tasker nicht dass die Variable nur %N ist, Tasker erkennt hier als Variable %Ncells welche es nicht gibt.
Damit es funktioniert muss man die Hilfs Varible unter zwei mal setzten. Das erste mal %ifd=row%N das zweite Mal %ifd=cells und zusätzlich bei der Option Hinzufügen/Append den Haken setzen.
 
  • Danke
Reaktionen: mbefore305 und Spardas
Stimmt, mein Fehler. So kann der Name nicht richtig aufgelöst werden.
Jeder Teil des Namens muss in eine Variable:
Vor der Schleife: %par1=row, %par2=cells, und in der Schleife: %lfd=%par1%N%par2
 
  • Danke
Reaktionen: mbefore305
Es funktioniert leider nicht.
Habe mehrere Methoden probiert.
%lfd hat als Werte row1cells row2cells usw. aber ich erhalte nicht den Wert der Variablen %row1cells()
 
Kannst du mal dein Task hier posten?
Vielleicht finden wir dann den Fehler.
 
Sollte nicht die klammer am Ende weg?
also nur %row1cells
 
Hast du auch auf die 2 %-Zeichen beim Zugriff auf %lfd geachtet?
 
  • Danke
Reaktionen: mbefore305 und Mathens
Andrej_M schrieb:
Hast du auch auf die 2 %-Zeichen beim Zugriff auf %lfd geachtet?
Ich Esel, natürlich nicht. Dazu den Haken bei Recurse Variable. Damit klappt es dann:

Spreadsheet Query [Tasker Spreadsheet Plugin]
Set Var: %par1 to row
Set Var: %par3 to cells() [ja, die Klammern müssen dort sein. Liegt an der Rückgabe des Tasker Spreadsheet Plugins]
For %loop = 1 to %rowcount
Set Var: %lfd = %%par1%loop%par3 [Wichtig: In Set Var muss "Recurse Variable" aktiviert sein]
End For

Da das Spreadsheet Plugin die Account Daten und den Google Tabellen Namen braucht (und nicht nur einen öffentlichen Link
auf die Tabelle) ist hochladen des kompletten Tasks nicht hilfreich.
Aber das Problem ist dank Eurer Hilfe ja gelöst und der Code oben ist (hoffentlich) selbsterklärend.
 
  • Danke
Reaktionen: Andrej_M und Mathens

Ähnliche Themen

0
Antworten
4
Aufrufe
271
0karsten
0
qwoka
Antworten
3
Aufrufe
177
qwoka
qwoka
T
Antworten
6
Aufrufe
383
Tarfi
T
Zurück
Oben Unten