PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Lookup



TobiasBlome
29.06.2008, 16:09
Hallo,
wie kann man bei dem Befehl "Lookup" die Tabelle über eine Variable auswählen?

z.b.

dim Tabelle as Byte

If ... then
Tabelle = 1
Else
Tabelle =2
End if


W1 = Lookup(position , Tabelle)



1:
Data 1; 1 usw....
Data 4; 4 usw....

2:
Data 7; 8 usw....
Data 3; 5 usw....


Die Variable Position funktioniert wunderbar ;-)
Die Variable Tabelle geht leider nicht.

Hat jemand dafür eine Erklärung?

Tobias

linux_80
29.06.2008, 16:49
Hallo,

Du könntest das Lookup gleich in die If-Abfrage bauen.
Es ist anscheinend nicht vorgesehen an dieser Stelle eine Variable anzugeben :-k

PicNick
29.06.2008, 19:57
...nicht vorgesehen an dieser Stelle eine Variable anzugeben ..
In der Tat. da geht nur ein direkter "Label"

Brave Möglichkeit: Wie Linux sagte, direkt im IF

Trickreicher


DIM tabelle AS WORD

if ,,, then
tabelle = loadlabel(Tabelle1)
else
tabelle = loadlabel(Tabelle2)
end if

' --------------- nachgemachter lookup
varia = tabelle + position
wert = CPEEK(varia)

TobiasBlome
29.06.2008, 20:19
Hallo,
mit der If Version ist mir das zuviel Schreibarbeit...(zuviele Abfragen)



If Led_flag = 1 Then

Reset Led_flag

Incr Zeile

If Zeile = 20 Then Zeile = 0 'wenn die 20 Zeilen durch sind geht's von vorne los

Position = Zeile * 10

W1 = Lookup(position , 1)
Incr Position
W2 = Lookup(position , 1)
Incr Position
W3 = Lookup(position , 1)
Incr Position
W4 = Lookup(position , 1)
Incr Position
W5 = Lookup(position , 1)
Incr Position
W6 = Lookup(position , 1)
Incr Position
W7 = Lookup(position , 1)
Incr Position
W8 = Lookup(position , 1)
Incr Position
W9 = Lookup(position , 1)
Incr Position
W10 = Lookup(position , 1)

End If


@Robert das muss ich mir noch mal ansehen - ich hab´s noch nicht verstanden...


' --------------- nachgemachter lookup
varia = tabelle + position
wert = CPEEK(varia)

PicNick
30.06.2008, 07:34
Naja, "Loadlabel" liefert die Anfanges-(byte)Adresse von dieser oder jener Tabelle.
"+ position" ergibt dann die adresse der n-ten Bytes in der Tabelle
und mit CPEEK() kann man das Byte dort lesen

Im Grunde ist das genau das, was Lookup() macht (wenn es um Bytes geht)

TobiasBlome
30.06.2008, 17:36
Ach so...
dann werd ich das doch mal so programmieren!
Danke!

Tobias