Casten - "0x000000ff" in long



  • Moin Gemeinde,

    folgende Frage: aus einer Datei bekomme ich Farbwerte, z. B. 0x000000ff. Nun sollen mit diesen Werten div. Objekte( habe ein ListenTool, davon Rows, Header, ... ) eingefärbt werden. Wie mache ich also aus 0x000000ff einen verwendbaren, z. B. RGB oder long Wert?

    Thx schonmal im voraus

    grüssle 🙂



  • Ist das ein String? 😕
    Wie kommt der in die Datei? Wenn du den als Dezimalzahl schreibst, kannst du atol verwenden um später einen long daraus zu machen.



  • Ja, ein CString. Wird von einer Funktion CString Klasse::GetIniWert(...) geliefert.
    Und da fangen meine Probs eigentlich an.

    grüssle 🙂



  • Wo wird der Wert in die Ini gepackt, hast du da Einfluß drauf?
    Wenn ja, sollte man dort ansetzen, ich schätze das ist einfacher.

    Wenn nein: Bastel dir eine kleine Funktion, die dir von Hex-CString in long konvertiert.
    Hex-String in eine Zahl wandeln ist einfach, irgendwo liegen dafür bestimmt sogar noch Struktugramme rum - aber herleiten geht schneller als suchen. 😉



  • estartu schrieb:

    Wenn nein: Bastel dir eine kleine Funktion, die dir von Hex-CString in long konvertiert.
    Hex-String in eine Zahl wandeln ist einfach, irgendwo liegen dafür bestimmt sogar noch Struktugramme rum - aber herleiten geht schneller als suchen. 😉

    Wieso selber basteln? Dafür gibt es doch man: strtol (gib als Basis 16 (für Hex) an):

    char* end;
    long val=strtol(str,&end,16);
    


  • @ CStoll

    stimmt, hab ich zwischenzeitlich entdeckt und funktioniert auch.

    Thx an alle, die geholfen haben 🕶

    grüssle 🙂



  • Danke CStoll. 👍
    Ich habe mal den Betreff an die Lösung angepasst. 😉


Anmelden zum Antworten