indirekter DB zugriff

bassknecht

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
ich hab schon mit hilfe der suchfunktion was zum thema indirekte adressierung gesucht. leider bin ich nicht fündig geworden.
ich habe eine schleife, die mir aus einem datenbereich in einem db den minimalwert berechnen soll. leider tut sie das nicht. vielleicht könntet ihr mal schauen.
Code:
      AUF   "next_values"
      L     P#56.0
      LAR1  

      L     5
nw02: T     #index
      L     "min_next_interrpt"
      L     DBD [AR1,P#0.0]
      >I    
      SPB   groe
      SPA   klei
groe: L     DBD [AR1,P#0.0]
      T     "min_next_interrpt"
klei: +AR1  P#4.0

      L     #index
      LOOP  nw02
auf DBD 56 liegt mein erster wert. aus dbd56, DBD 60, dbd 64 usw. soll der minimalwert ermittelt werden, jedoch stimmt die indirekte adressierung nicht.

danke im voraus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Bassknecht
Habe mal eine Rezepturverwaltung programiert
bei der eine bestimmte Rezeptnummer in einem oder
mehreren DB`s gesucht werden kann.
Dort ist alles über indirekte Adressierung gemacht.
Wenn dich der Baustein Interresiert., kannst du dich ja melden.

Viel Freude

Gerd
 
auf meiner hp findest du unter s7 das projekt db_auswerten. da wird sowas gemacht.
 
was machst du bei spa klei ??>>nur den pointer erhöhen
was machst du bei spb groe ?? >> speichern als minimalwert
oder liege ich falsch
 
Hallo
du machst einen Doppelwortvergleich mit >i, solltest besser >D verwenden. Bei >i werden nur 16 bit verglichen, bei >D 32bit

Edit:
Ausserdem solltest du die Variable "min_next_interrpt" mit einem großen Wert vorbelegen (vor der Schleife), damit sie durch deine DBD verkleinert werden kann.
Edit Ende:


Gruß

Andreas
 
Znarf schrieb:
Ausserdem solltest du die Variable "min_next_interrpt" mit einem großen Wert vorbelegen (vor der Schleife), damit sie durch deine DBD verkleinert werden kann.
Oder mit dem letzten Wert. Dann kannst du einen Schleifendurchlauf sparen. Ferner kannst einen Sprung sparen, indem du die Bedingung umkehrst und bedingt zu "klei" springst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jetzt schaut doch mal seinen Code an, er speichert den Wert als Min, wenn die Bedingung >I (D ist natürlich richtig) erfüllt ist und damit ist es doch aber Max was er damit speichert ! Wenn er die Sprungmarken
klei mit groe tauscht sollte es mit seinem Programm doch klappen.
Mal abgesehen von möglichen Optimierungen.

Ansonsten allen ein schönes WE !
 
Jetzt schaut doch mal seinen Code an, er speichert den Wert als Min, wenn die Bedingung >I (D ist natürlich richtig) erfüllt ist und damit ist es doch aber Max was er damit speichert ! Wenn er die Sprungmarken
klei mit groe tauscht sollte es mit seinem Programm doch klappen.
Mal abgesehen von möglichen Optimierungen.

Ansonsten allen ein schönes WE !
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Volker:
vielen Dank, ich hab mir grad dein beispiel mal angesehen. Wunderbar. Die Verschiebung wegen bit und byte, wäre ich auch nciht drauf gekommen.

@all: vielen dank für die einträge und anregungen.


und JETZT: schönes wochenende! ;)
 
Zurück
Oben