[Allegro] Zeichen im Namen freier Variable
Anando Eger
a.eger at aneg-dv.de
So Dez 21 20:48:22 CET 2014
Hallo Herr Eversberg,
vieleicht so ähnlich (aus dem Gedächtnis, nicht getestet):
----------------------------------------------------------
// Null-terminierten String in Hex-Darstellung wandeln
// return mit NULL, wenn Parameterfehler
unsigned char *Str2HexStr(unsigned char *Out,
unsigned char *In,
size_t MaxOutLen)
{
unsigned char c,*pIn, *pOut;
size_t len = 0;
pIn = In;
pOut = Out;
// Übersetzungstabelle Nibble -> Zeichen
const char Thex[] = {'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
};
// Parameter testen
if (MaxOutLen < 1) return NULL;
// todo: Test auch für In und Out auf NULL?
while ((c=*pIn++) != 0)
{
if ((len += 2) >= MaxOutLen) break;
*pOut++ = Thex[c>>4];
*pOut++ = Thex[c & 0x0f];
}
*pOut = 0;
return(*Out);
}
--------------------------------------------------------
Viele Grüße
Anando Eger
Am 19.12.2014 14:25, schrieb Anando Eger:
>
> in shrec.flx wird die Umwandlung "zu Fuß" durchgezogen (wie ich das
> auch mal mit Hilfe von cstring Jd getan habe) - kostet relativ viel
> Laufzeit, da diese Funktion dann typisch (bei einer Quasi-Array-
> Nutzung) in Schleifen verwendet werden würde.
>
> Eind c-Routine erledigt das viel fixer - muss dann nur noch in den
> Interpreter "eingehängt" werden - oder?
>
Logisch.
Die Standard-FLEXe sind ja immer AUCH dazu gedacht, daß man daraus
lernen und abkupfern kann, WENN man mal was Ähnliches zu machen hat.
In diesem Fall wurde abgekupfert und modifiziert aus umrech.flx
(Mal eingeben: X umrech)
Darin kann man Zahlensysteme mit Basis 2 bis 20 verwenden, Zeile
"Basis A in Basis Z"
Wenn mir jemand mal die Suche abnähme, könnte bestimmt eine C-
Funktion
gefunden werden, die man übernehmen kann, um es so zu machen, wie
Sie es schildern.
Aber nicht mehr in diesem Halbjahrzehnt.
B.E.
_______________________________________________
Allegro mailing list
Allegro at biblio.tu-bs.de
http://sunny5.biblio.etc.tu-bs.de/mailman/listinfo/allegro
Mehr Informationen über die Mailingliste Allegro