| |
|
|
| freenet.thorsten_friedrichs meint:
also ich habe z.b. einen Hexwerte (oder auch anderen zahlenwert oder | |
vergleiche ich ob dieser mit einem anderen übereinstimmt z.b. mit IF. | |
.... (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 | |
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? | |
|
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
| gmx.malenz meint:
Wandel ihn doch einfach als String um, und dann vergleich | |
if instr(stringwert$+, , FF,FE,CA,99,00,) > 0 | |
> -----Ursprüngliche Nachricht----- | |
> Von: Thorsten Friedrichs [mailto:thorsten_friedrichs@freenet.de] | |
> Gesendet: Mittwoch, 19. Oktober 2005 03:00 | |
> Betreff: Hex / if / case - viele werte vergleichen - wie? | |
> 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. | |
> .... (mal als beispiel, hoffentlich war die zuweisung richtig). | |
> Ich möchte aber nun prüfen ob ein bestimmter Hexwert (hier $4) in | |
> großen auswahl an Hexwerten vorkommt (also normal nicht nur eine | |
> einstellige hexzahl, sondern mehrstellig (das selbe aber bei | |
> 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 | |
> 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 | |
> 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 | |
> oder muß ich wie oben geschrieben alles ausführlich mit if | |
|
|
|
| |
|
|
|
| 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.
|
|
|
| |
|
|
|
| web.dennis.schulmeister meint:
dein Problem ist mir nicht ganz klar. Erst mal. Wie ist die Ausgangslage? Wo | |
her und wie werden sie uns Programm übergeben? Dann, was hast du damit vor? | |
----- Original Message ----- | |
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 | |
> -----Ursprüngliche Nachricht----- | |
> Von: Thorsten Friedrichs [mailto:thorsten_friedrichs@freenet.de] | |
> Gesendet: Mittwoch, 19. Oktober 2005 03:00 | |
> Betreff: Hex / if / case - viele werte vergleichen - wie? | |
> 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. | |
> .... (mal als beispiel, hoffentlich war die zuweisung richtig). | |
> Ich möchte aber nun prüfen ob ein bestimmter Hexwert (hier $4) in | |
> großen auswahl an Hexwerten vorkommt (also normal nicht nur eine | |
> einstellige hexzahl, sondern mehrstellig (das selbe aber bei | |
> 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 | |
> 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 | |
> 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 | |
> oder muß ich wie oben geschrieben alles ausführlich mit if | |
|
|
|
| |
|
|
|
| freenet.thorsten_friedrichs meint:
das würde den Programmablauf ja nicht beschleunigen, sondern verlangsamen. | |
> Wandel ihn doch einfach als String um, und dann vergleich | |
> if instr(stringwert$+, , FF,FE,CA,99,00,) > 0 | |
> > -----Ursprüngliche Nachricht----- | |
> > Von: Thorsten Friedrichs [mailto:thorsten_friedrichs@freenet.de] | |
> > Gesendet: Mittwoch, 19. Oktober 2005 03:00 | |
> > Betreff: Hex / if / case - viele werte vergleichen - wie? | |
> > 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. | |
> > .... (mal als beispiel, hoffentlich war die zuweisung richtig). | |
> > Ich möchte aber nun prüfen ob ein bestimmter Hexwert (hier $4) in | |
> > großen auswahl an Hexwerten vorkommt (also normal nicht nur eine | |
> > einstellige hexzahl, sondern mehrstellig (das selbe aber bei | |
> > 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 | |
> > 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 | |
> > 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 | |
> > oder muß ich wie oben geschrieben alles ausführlich mit if | |
|
|
|
| |
|
|
|
| freenet.thorsten_friedrichs meint:
die Ausgangslage ist, daß ich u.a. ein eigenes Protokoll schreibe (u.a. für | |
Nun habe ich eine feste Tabelle mit Werten (hier halt Hexwerte) und muß | |
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 | |
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. | |
> dein Problem ist mir nicht ganz klar. Erst mal. Wie ist die | |
> her und wie werden sie uns Programm übergeben? Dann, was hast du | |
> ----- Original Message ----- | |
> 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 | |
> > -----Ursprüngliche Nachricht----- | |
> > Von: Thorsten Friedrichs [mailto:thorsten_friedrichs@freenet.de] | |
> > Gesendet: Mittwoch, 19. Oktober 2005 03:00 | |
> > Betreff: Hex / if / case - viele werte vergleichen - wie? | |
> > 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. | |
> > .... (mal als beispiel, hoffentlich war die zuweisung richtig). | |
> > Ich möchte aber nun prüfen ob ein bestimmter Hexwert (hier $4) in | |
> > großen auswahl an Hexwerten vorkommt (also normal nicht nur eine | |
> > einstellige hexzahl, sondern mehrstellig (das selbe aber bei | |
> > 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 | |
> > 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 | |
> > 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 | |
> > oder muß ich wie oben geschrieben alles ausführlich mit if | |
|
|
|
| |
|
|
|
| gmx.malenz meint:
> das würde den Programmablauf ja nicht beschleunigen, sondern | |
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 | |
|
|
|
| |
|
|