Deutsch
Stammtisch & Café

hex if case viele werte vergleichen wie

 
freenet.thorsten_friedrichs meint:

hallo.
also ich habe z.b. einen Hexwerte (oder auch anderen zahlenwert oder
vielleicht string), nun
vergleiche ich ob dieser mit einem anderen übereinstimmt z.b. mit IF.
Also
a% = $4
If a% = $3
elseif a% = $4
.... (mal als beispiel, hoffentlich war die zuweisung richtig).
Ich möchte aber nun prüfen ob ein bestimmter Hexwert (hier $4) in einer
großen auswahl an Hexwerten vorkommt (also normal nicht nur eine
einstellige hexzahl, sondern mehrstellig (das selbe aber bei dezimalzahlen
und vielleicht strings)
$02 $05 $1a ...........
es kann dabei eine realtiv große anzahl an zahlen sein.
ich kenne da wenn ich das nun in EINER Abfrage machen will nur die lösung
if (a% = $3) or (a% = $4) or (a% = $5) or ...
ich muß also jedesmal wieder komplett die erste Variable eingeben.
Gibt es eine andere Möglichkeit bzw. Schreibweise?
if a% = $3 or $4 or $5 geht geht zwar sprachlich (ist der Inhalt Variable
a% gleich $3 oder...) aber nicht
programmiertechnisch (wird ja irgendwie binär zusammengesetzt oder so.
Gibt es da eine einfach, auch optisch und übersichtilich bessere Möglichkeit
oder muß ich wie oben geschrieben alles ausführlich mit if beschreiben?
Thorsten
 
19.10.2005  
 




efisch
Hallo Thorsten,

wenn die Vergleichswerte zusammenhängen, also $1, $2, ..., $fe, $ff, hilft natürlich
if (a% >= $1) AND (a% <= $ff).
Andernfalls füllt man ein Array V% mit den Vergleichswerten und vergleicht in einer Schleife:

Dieses Vorgehen ist ziemlich flexibel, weil man die Vergleichswerte bei Bedarf im laufenden Programm anpassen oder auch aus einer Datei einlesen kann.

HTH
ebi
 
19.10.2005  
 



gmx.malenz meint:

Wandel ihn doch einfach als String um, und dann vergleich
if instr(stringwert$+, , FF,FE,CA,99,00,) > 0
MFG Marco
> -----Ursprüngliche Nachricht-----
> Von: Thorsten Friedrichs [mailto:thorsten_friedrichs@freenet.de]
> Gesendet: Mittwoch, 19. Oktober 2005 03:00
> An: Profan-Mail
> Betreff: Hex / if / case - viele werte vergleichen - wie?
> hallo.
> also ich habe z.b. einen Hexwerte (oder auch anderen zahlenwert oder
> vielleicht string), nun
> vergleiche ich ob dieser mit einem anderen übereinstimmt z.b. mit IF.
> Also
> a% = $4
> If a% = $3
> elseif a% = $4
> .... (mal als beispiel, hoffentlich war die zuweisung richtig).
> Ich möchte aber nun prüfen ob ein bestimmter Hexwert (hier $4) in
einer
> großen auswahl an Hexwerten vorkommt (also normal nicht nur eine
> einstellige hexzahl, sondern mehrstellig (das selbe aber bei
> dezimalzahlen
> und vielleicht strings)
> $02 $05 $1a ...........
> es kann dabei eine realtiv große anzahl an zahlen sein.
> ich kenne da wenn ich das nun in EINER Abfrage machen will nur die
lösung
> if (a% = $3) or (a% = $4) or (a% = $5) or ...
> ich muß also jedesmal wieder komplett die erste Variable eingeben.
> Gibt es eine andere Möglichkeit bzw. Schreibweise?
> if a% = $3 or $4 or $5 geht geht zwar sprachlich (ist der Inhalt
> Variable
> a% gleich $3 oder...) aber nicht
> programmiertechnisch (wird ja irgendwie binär zusammengesetzt oder so.
> Gibt es da eine einfach, auch optisch und übersichtilich bessere
> Möglichkeit
> oder muß ich wie oben geschrieben alles ausführlich mit if
beschreiben?
> Thorsten
> --
 
19.10.2005  
 



Hexadezimal ist doch nur eine Darstellungsform, du kannst doch ganz normal damit Rechnen, als wären es normale Zahlen. Das Ergebnis kannste bei Bedarf zur Optischen Gestalltung wieder als Hex ausgeben.
Declare Ergebnis&
Ergebnis& = $4 + 6
Print Ergebnis&
Print Hex$(Ergebnis&)
waitkey
 
19.10.2005  
 



web.dennis.schulmeister meint:

Hallo Thorsten,
dein Problem ist mir nicht ganz klar. Erst mal. Wie ist die Ausgangslage? Wo
kommen die Werte
her und wie werden sie uns Programm übergeben? Dann, was hast du damit vor?
Gruß,
Dennis
----- Original Message -----
From: malenz
To: Profan-Mail
Sent: Wednesday, October 19, 2005 8:44 AM
Subject: AW: Hex / if / case - viele werte vergleichen - wie?
Wandel ihn doch einfach als String um, und dann vergleich
if instr(stringwert$+, , FF,FE,CA,99,00,) > 0
MFG Marco
> -----Ursprüngliche Nachricht-----
> Von: Thorsten Friedrichs [mailto:thorsten_friedrichs@freenet.de]
> Gesendet: Mittwoch, 19. Oktober 2005 03:00
> An: Profan-Mail
> Betreff: Hex / if / case - viele werte vergleichen - wie?
> hallo.
> also ich habe z.b. einen Hexwerte (oder auch anderen zahlenwert oder
> vielleicht string), nun
> vergleiche ich ob dieser mit einem anderen übereinstimmt z.b. mit IF.
> Also
> a% = $4
> If a% = $3
> elseif a% = $4
> .... (mal als beispiel, hoffentlich war die zuweisung richtig).
> Ich möchte aber nun prüfen ob ein bestimmter Hexwert (hier $4) in
einer
> großen auswahl an Hexwerten vorkommt (also normal nicht nur eine
> einstellige hexzahl, sondern mehrstellig (das selbe aber bei
> dezimalzahlen
> und vielleicht strings)
> $02 $05 $1a ...........
> es kann dabei eine realtiv große anzahl an zahlen sein.
> ich kenne da wenn ich das nun in EINER Abfrage machen will nur die
lösung
> if (a% = $3) or (a% = $4) or (a% = $5) or ...
> ich muß also jedesmal wieder komplett die erste Variable eingeben.
> Gibt es eine andere Möglichkeit bzw. Schreibweise?
> if a% = $3 or $4 or $5 geht geht zwar sprachlich (ist der Inhalt
> Variable
> a% gleich $3 oder...) aber nicht
> programmiertechnisch (wird ja irgendwie binär zusammengesetzt oder so.
> Gibt es da eine einfach, auch optisch und übersichtilich bessere
> Möglichkeit
> oder muß ich wie oben geschrieben alles ausführlich mit if
beschreiben?
> Thorsten
> --
 
19.10.2005  
 



freenet.thorsten_friedrichs meint:

das würde den Programmablauf ja nicht beschleunigen, sondern verlangsamen.
Gruß
Thorsten
> Wandel ihn doch einfach als String um, und dann vergleich
> if instr(stringwert$+, , FF,FE,CA,99,00,) > 0
> MFG Marco
> > -----Ursprüngliche Nachricht-----
> > Von: Thorsten Friedrichs [mailto:thorsten_friedrichs@freenet.de]
> > Gesendet: Mittwoch, 19. Oktober 2005 03:00
> > An: Profan-Mail
> > Betreff: Hex / if / case - viele werte vergleichen - wie?
> > hallo.
> > also ich habe z.b. einen Hexwerte (oder auch anderen zahlenwert oder
> > vielleicht string), nun
> > vergleiche ich ob dieser mit einem anderen übereinstimmt z.b. mit IF.
> > Also
> > a% = $4
> > If a% = $3
> > elseif a% = $4
> > .... (mal als beispiel, hoffentlich war die zuweisung richtig).
> > Ich möchte aber nun prüfen ob ein bestimmter Hexwert (hier $4) in
> einer
> > großen auswahl an Hexwerten vorkommt (also normal nicht nur eine
> > einstellige hexzahl, sondern mehrstellig (das selbe aber bei
> > dezimalzahlen
> > und vielleicht strings)
> > $02 $05 $1a ...........
> > es kann dabei eine realtiv große anzahl an zahlen sein.
> > ich kenne da wenn ich das nun in EINER Abfrage machen will nur die
> lösung
> > if (a% = $3) or (a% = $4) or (a% = $5) or ...
> > ich muß also jedesmal wieder komplett die erste Variable eingeben.
> > Gibt es eine andere Möglichkeit bzw. Schreibweise?
> > if a% = $3 or $4 or $5 geht geht zwar sprachlich (ist der Inhalt
> > Variable
> > a% gleich $3 oder...) aber nicht
> > programmiertechnisch (wird ja irgendwie binär zusammengesetzt oder so.
> > Gibt es da eine einfach, auch optisch und übersichtilich bessere
> > Möglichkeit
> > oder muß ich wie oben geschrieben alles ausführlich mit if
> beschreiben?
> > Thorsten
> > --
 
20.10.2005  
 



freenet.thorsten_friedrichs meint:

Hi Dennis,
die Ausgangslage ist, daß ich u.a. ein eigenes Protokoll schreibe (u.a. für
die tcp.dll von MRK).
Nun habe ich eine feste Tabelle mit Werten (hier halt Hexwerte) und muß
diese vergleichen.
Dabei will und muß ich im ersten Schritt überprüfen ob ein Byte mit einem
Hexwert aus einer Tabelle übereinstimmt.
(an anderer Stelle kommen statt fester Werte, variable vor).
Mit if (x=$yy) or (x=$xy) geht es zwar auch, aber es wird sehr
unübersichtlich und teilweise EXTREM lang.
ein Abkürzen mit if x = $yy or $xy geht nicht, auf grund des logischen
vergleichens.
Aber ich bin glaube ich weiter gekommen. Ich habe da vollkommen vergessen
und erst jetzt in der Hilfe wieder draufgestoßen
das es ja das binäre UND (&) und binäre OR (|) gibt.
damit könnte es klappen und ich werde das mal testen wie das funktioniert.
Gruß
Thorsten
> Hallo Thorsten,
> dein Problem ist mir nicht ganz klar. Erst mal. Wie ist die
> Ausgangslage? Wo
> kommen die Werte
> her und wie werden sie uns Programm übergeben? Dann, was hast du
> damit vor?
> Gruß,
> Dennis
> ----- Original Message -----
> From: malenz
> To: Profan-Mail
> Sent: Wednesday, October 19, 2005 8:44 AM
> Subject: AW: Hex / if / case - viele werte vergleichen - wie?
> Wandel ihn doch einfach als String um, und dann vergleich
> if instr(stringwert$+, , FF,FE,CA,99,00,) > 0
> MFG Marco
> > -----Ursprüngliche Nachricht-----
> > Von: Thorsten Friedrichs [mailto:thorsten_friedrichs@freenet.de]
> > Gesendet: Mittwoch, 19. Oktober 2005 03:00
> > An: Profan-Mail
> > Betreff: Hex / if / case - viele werte vergleichen - wie?
> > hallo.
> > also ich habe z.b. einen Hexwerte (oder auch anderen zahlenwert oder
> > vielleicht string), nun
> > vergleiche ich ob dieser mit einem anderen übereinstimmt z.b. mit IF.
> > Also
> > a% = $4
> > If a% = $3
> > elseif a% = $4
> > .... (mal als beispiel, hoffentlich war die zuweisung richtig).
> > Ich möchte aber nun prüfen ob ein bestimmter Hexwert (hier $4) in
> einer
> > großen auswahl an Hexwerten vorkommt (also normal nicht nur eine
> > einstellige hexzahl, sondern mehrstellig (das selbe aber bei
> > dezimalzahlen
> > und vielleicht strings)
> > $02 $05 $1a ...........
> > es kann dabei eine realtiv große anzahl an zahlen sein.
> > ich kenne da wenn ich das nun in EINER Abfrage machen will nur die
> lösung
> > if (a% = $3) or (a% = $4) or (a% = $5) or ...
> > ich muß also jedesmal wieder komplett die erste Variable eingeben.
> > Gibt es eine andere Möglichkeit bzw. Schreibweise?
> > if a% = $3 or $4 or $5 geht geht zwar sprachlich (ist der Inhalt
> > Variable
> > a% gleich $3 oder...) aber nicht
> > programmiertechnisch (wird ja irgendwie binär zusammengesetzt oder so.
> > Gibt es da eine einfach, auch optisch und übersichtilich bessere
> > Möglichkeit
> > oder muß ich wie oben geschrieben alles ausführlich mit if
> beschreiben?
> > Thorsten
> > --
 
20.10.2005  
 



gmx.malenz meint:

> das würde den Programmablauf ja nicht beschleunigen, sondern
verlangsamen.
Würde aber wie gewünscht den Code übersichtlicher machen . Wenn du
jedoch Geschwindigkeit willst, und viele Werte hast, dann würde ich so
eine if-Abfrage nicht mit Profan direkt schreiben . Ist halt einfach zu
langsam . Wenns jedoch absolut nicht anders geht, dann versuchs über die
Eigenschaft der Zahlenmenge .
Mit freundlichen Grüßen Marco
 
20.10.2005  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.586 Betrachtungen

Unbenanntvor 0 min.
Walter05.06.2022
Heinz Bernhard20.08.2013
Sebastian Sprenger01.08.2013
jaschi28.12.2012

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

unbekannt (7x)
efisch (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie