CString aus Buchstaben/Zahlen konvertieren in CString kpl. aus Buchstaben



  • Hallo
    Erstmal vorweg ich bin ein kompletter Newbie in Sachen Visual C++,darum seid bitte gnädig mit mir 🙂
    Ich möchte einen CString bestehend aus Buchstaben von A-F und Zahlen von 0-9
    zb.[A35EBA47CFE1] in einer max. Länge von 12 Zeichen in einen anderen CString konvertieren so das aus den Zahlen ebenfalls Buchstaben werden sodas der komplette CString im Endeffekt nur noch aus Buchstaben besteht.Dazu sollten die konvertierten Zahlen klein Buchstaben werden zb.[AfzEBAsaCFEu]

    Ich hoffe mir kann da einer weiterhelfen



  • Hast du denn eine Vorgabe, ob für eine bestimmte Ziffer immer der selbe Ersatzbuchstabe verwendet werden soll?

    Mein Vorschlag: Mit einer Schleife über den String laufen, per isdigit() feststellen was eine Ziffer ist und dann überschreiben



  • Danke erstmal 😉
    Also welche Buchstaben für welche Zahl im Endeffekt stehen sollen hab ich noch offen.
    Ich komme aber generell bei der Umsetzung an meine Grenze wie ich das jetzt genau prüfe,umwandle und in einen neuen String kopiere



  • Zeig doch mal, was du bisher zustandegebracht hast.
    Ich könnte dir zwar jetzt eine komplizierte Lösung zusammenschustern, aber damit wäre weder mir noch dir wirklich geholfen. Deshalb bin ich eher dafür, dir dabei zu helfen, das Problem selber in den Griff zu bekommen.



  • CString codepart = L"";
    CString codebuffer = L"";

    for(uint16 i = 0; i != 12; i++)
    {
    codebuffer.Format(L"%02X", GetCodestring()[i]);
    codepart += codebuffer;
    }

    so...hiermit versuche ich erstmal den Codestring mit einer schleife durchlaufen zu lassen um mit codepart einzelne Teile des Codestrings im nachinein zu verwenden/bearbeiten zu können



  • Paul_Pan schrieb:

    CString codepart = L"";
    CString codebuffer = L"";

    for(uint16 i = 0; i != 12; i++)
    {
    codebuffer.Format(L"%02X", GetCodestring()[i]);
    codepart += codebuffer;
    }

    so...hiermit versuche ich erstmal den Codestring mit einer schleife durchlaufen zu lassen um mit codepart einzelne Teile des Codestrings im nachinein zu verwenden/bearbeiten zu können

    Was macht denn GetCodestring und was läuft jetzt nicht nach deinen Vorstellungen?



  • Hallo
    also GetCodeString() ist ein generierter String bestehend aus Zahlen von 1-9 und Grossbuchstaben von A-F den ich abrufe und ändern möchte in einen String der aus den Zahlen Buchstaben macht.

    codepart nutze ich um die einzelnen stellen im nachhinein einzelnd abrufen zu können.

    Mein einziges Problem ist also wie ich aus den Zahlen Buchstaben mache mit einer Routine die immer die selbe ist um sie später auch wieder erkennen zu können.



  • Wie wäre es mit Replace(...) von CString?

    Evtl. sogar mit einem Array, das im entsprechenden Index das Zeichen enthält, mit dem ersetzt werden soll und das ganze in eine Schleife packen.



  • wie gesagt da komme ich absolut nicht weiter wie ich hashpart auf Zahlen prüfen soll und ggfs. in buchstaben ändern kann.
    Habs mal so probiert doch da denke ich hapert es an meiner Unwissenheit...

    CString codepart = L"";
    CString codebuffer = L"";

    for(uint16 i = 0; i != 12; i++)
    {
    codebuffer.Format(L"%02X", GetCodestring()[i]);
    codepart += codebuffer;
    }

    codepart.Replace(_T("0"), _T("a"));
    codepart.Replace(_T("1"), _T("d"));
    codepart.Replace(_T("2"), _T("U"));
    codepart.Replace(_T("3"), _T("z"));
    codepart.Replace(_T("4"), _T("W"));
    codepart.Replace(_T("5"), _T("i"));
    codepart.Replace(_T("6"), _T("k"));
    codepart.Replace(_T("7"), _T("h"));
    codepart.Replace(_T("8"), _T("x"));
    codepart.Replace(_T("9"), _T("j"));

    codepart wird so trotzdem als Zahl ausgegeben



  • Also ich würde die Ideen von CStoll und isabeau zusammenfassen. Mach ne Schleife, in der du durch den String zeichenweise durchgehst. Per isdigit bekommst du raus, ob das entsprechende Zeichen eine Ziffer ist. Wenn das so ist, dann mit Replace entsprechend deiner Vorstellung die Umwandlung vornehmen.



  • ich muss mich berichtigen es funzt tadelos...
    die schleife kann ich mir ja sparen da ich ja den code durch die erste schleife jage und somit disen schon in hashpart geteilt habe.
    Trotzdem danke an alle


Anmelden zum Antworten