String To Unsigned char



  • Hallo zusammen ich bin auf der suche wie ich den Inhalt von z.B. http://www.grabilla.com/02116-11ddcc5c-6923-469d-a07f-df9a81662955.png dieser Edit-Box in ein http://www.grabilla.com/02116-d2c4e575-49e6-4bb5-980a-77aefb6d5fba.png umwandeln kann...

    Wäre wirklich sehr nett wenn mir da jemand helfen kannn.

    LG. Stefan



  • - mit SubString unterteilen.
    - ein "0x" vor jeden Teilstring
    - StrToInt / StrToIntDef benutzen für jeden Teilstring (und nach unsigned char casten)

    Darauf achten, dass auch Falscheingaben möglich sein könnten.

    EDIT: Beispiel (ungetestet):
    (Die Pixelangaben sind in einem Edit namens Edit1)

    std::vector <unsigned char> Characters; // benötigt #include <vector>
    for (unsigned int i = 0; i < Edit1->Text.Length(); i+=3)
    {
        String NumStr = Edit1->Text.SubString(i,2);
        int Num = StrToIntDef("0x" + NumStr, -1);
        if (Num != -1) {
            Characters.push_back(static_cast <unsigned char> (Num));
        }
        else {
            // Fehler behandeln
        }
    }
    

    Kennst du den vector aus der STL?

    EDIT: Falls nicht:

    Der vector kann wie ein Array nun benutzten werden mit []
    Also:

    Characters[0]; // Erstes Item in dem Container
    Characters.size(); // Länge des Containers
    


  • Dankeschön ich denke es wird funktionieren(du hast es sehr gut beschrieben!!! danke)... bin jetzt was essen :).

    Edit:

    leider fehlgeschlagen ...

    03 08 00 00 61 73 64 00 48 wurde zu

    03 00 00 FF 70 61 FF 77 A7

    was kann das sein 😕



  • Es kann sein, dass der verrutscht.
    Ich teste den code mal und verbessere.

    EDIT: Eine kleine Unachtsamkeit:
    die Schleife muss mit i = 1 beginnen.

    Dazu aus der Hilfe, falls du dich wunderst:

    Hinweis: Aus Kompatibilitätsgründen zu Delphi ist die Indizierung von UnicodeString 1-basiert.


Anmelden zum Antworten