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.