Strings in HEX umwandeln und zurück



  • Hallo,
    wie kann man Strings in HEX umwandeln bzw wieder in den ursprünglichen string?
    Thx



  • Hallo

    Was hast du denn damit vor? Für internen Gebrauch brauchst du sowas nicht, da Strings ihre Zeichen als binäre Zahlen verwalten.
    Für die Ausgabe brauchst du nur die chars des Strings durchzlaufen und auf die einzelnen chars die Funktion IntToHex anzuwenden

    bis bald
    akari



  • Ich brauchs weil sich grad in einem Chat welche so unterhalten ^^
    Danke schon mal und wie kann ich Von Hex nach Int? HexToInt gibts anscheinend nicht. (Bin Anfänger im Programmieren sorry)



  • Hallo

    das kann StrToInt, wenn der übergebene Hex-String mit "0x" oder "x" maskiert ist.

    AnsiString x = "A";
    int y = StrToInt(x); // Fehler
    
    AnsiString x = "0xA";
    int y = StrToInt(x); // Ergebnis : 10
    

    bis bald
    akari



  • Hi,
    folgenden Code benutze ich wenn ich TColor in HTML-Hex-Farbe umwandeln will.
    Es funkiniert so bei mir :D.

    In der Header Tlinkcolor.h:

    Ansistring ColToStr(TColor rein); //HTML Hex-Farbe anderst als normaler Hex-Farben Wert :D
    

    In der Unit Tlinkcolor.cpp :

    AnsiString Tlinkcolor::ColToStr(TColor rein)
    {AnsiString back;
     int farbe=int(rein);                              //rgb als int
     back = IntToHex(farbe,6);                         //rgb in hex immer 6 stellen
     if(back.Length()>6)
      {back.c_str()[0]=' '; back=back.Trim();}
     char c5=back.c_str()[5]; char c4=back.c_str()[4]; //rot
     char c3=back.c_str()[3]; char c2=back.c_str()[2]; //grün
     char c1=back.c_str()[1]; char c0=back.c_str()[0]; //blau
     AnsiString zuruck=AnsiString(c4)+AnsiString(c5)+AnsiString(c2)+
                       AnsiString(c3)+AnsiString(c0)+AnsiString(c1);
     //rot und blau ist vertauscht weshalb keine Ahnung
     //test--> ShowMessage("farbe="+IntToStr(farbe)+"\n"+back+"\n"+zuruck);
     return zuruck;
    }//---------------------------------------------------------------------------
    

    Ich weis es wurde so nicht gefragt aber vllt hilft es jemandem 😃

    Grüsse

    :xmas2: :xmas2: :xmas2:
    arnold


Anmelden zum Antworten