Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
#iBlockgroesse = die Anzahl der Bytes pro Block
im meinem Bsb ist die Blockgroesse 2 >>> sprich der Block besteht aus 2 Byte.
Der Speicher welcher in meinem Beispiel 10 Byte groß ist wird also in 5 Blöcke a 2 Byte eingeteilt. Da mein Programm variabel gestaltet werden soll muss ich Blockmove...
der speicher is besipielsweise 10 byte groß und dieser speicher wird besipielsweise in 5 Blöcke a 2 byte eingeteilt der rest stimmt was du erzählt hast...
das mitn zwischenspeichern ist ja in meinem programm schon realisiert nur bekomm ich dauern einen Bereichslängenfehler beim lesen...
mit dem ursprünglichen problem ... ja damit hat es zu tun
also bsb hab einen speicher mit 10 byte
diese 10 byte teile ich ein in 5 blöcke
von diesen blöcken vergleiche ich jeweils das erste byte auf ihre größe und verschiebe dann mit blockmove die blöcke
komm mit meinem proggi nicht mehr weiter....
bisheriger code
L #iDB_Nr //DB Nummer einlesen
T #tDb_Nr //temp. speichern
L #iStartadresse //Startadresse laden
T #sStartadresse...
Any zeiger dazu hab ich mir dazu ja schon gebastelt
das ganze funktioniert mit einmal zwischenspeichern auch und verkürzt somit das programm
ist wert 1 gößer als wert 2 so wird werd i zwischengespeichert wert 2 in wert 1 geschoben und der zwischengespeicherte wert in wert 2....
ja soweit so gut... die frage ist wie ich das mit dem Offset der ja variabel sein muss hinbekomme
zb .
L DBB[Ar1,P#0.0]
LDBB[Ar2,P#4.0]
<=I
die 4.0 also 4 byte versatz sollte ich über eine Variable einstellen können
die beschreibung steht am anfang vom thread... der unterschied ist nur das ich nicht den gesamten block vergleiche und dann verschiebe sondern nur das erste byte im block mit dem ersten byte vom benachbarten Block und dann erst blockweise schiebe....
hier der Code für Byteweise sortierung...
Ok muss doch wieder mit anypointern arbeiten aber nicht zum vergleichen von Blöcken sondern nur zum schieben
ich soll dabei immer nur das erste Byte vom Block mit dem ertsen BYte vom 2ten Block vergleichen...
irgendjemand eine Idee??
code zum verschieben der Blöcke
CALL "BLKMOV"...
habs schon hinbekommen war nur ein paar kleine Fehler
zum Thema indirekte Adressierung.. kannte ich mich eigentlich für meine Verhältnisse ziemlich gut aus
L #iDB_Nr
T #tDb_Nr
L #iStartadresse
T #sStartadresse...
hab das 3 byte vergleich... mal zur seite gelegt und fang mit etwas leichterem an...
also pointer erkennst du keinen >>>> L dbb[ar1,p#0.0] zb.
ja ich probier mal einen DB welcher mit 10 Byte Werten gefüllt ist zu sortieren
den code dazu habe ich ja schon gepostet funktioniert...
Ich vergleiche die Werte und ordne sie nach Ihrer größe
in dem Programmbeispiel werden immer 2 Werte miteinander verglichen
ist der erste wert größer als der zweite so wird er mit diesem ausgetauscht
ist das nicht der fall so wird er mit dem 3-ten verglichen
bubble sort prinzip