CString in Hex konvertieren



  • Hallo !

    Warum funktioniert denn bitte dieser Code nicht ?

    void ToHex   (CString &str) { 
    
    	int i; 
    	CString sDump = str;
    	int len = sDump.GetLength(); 
    
    	for (i = 0; i < len; i++) { 
    
    		str.Format(str + "%h", sDump[i]); 
    
    	} 
    
    }
    


  • Ich würde meinen:

    void ToHex   (CString *str)
    

    so muß das heißen, jetzt bekommst du den Wert. Und beim Aufruf der func. sollte ToHex(&deineVariable) stehen.

    Außerdem ist sDump eine CString Variable und kein Array, deshalb kannst du auch nicht sDump[i] schreiben. Kann das sein??

    lg L00P



  • 'h' ist nur ein Präfix, was noch fehlt ist der Typ. Siehe auch MSDN. Außerdem sind noch einige andere Stolpersteine in Deinem Code. Vorschlag für Umsetzung:

    void ToHex(CString& str)
    {
      CString strHex;
      CString strHexResult;
      for(int ii = 0; ii < str.GetLength(); ++ii)
      {
        strHex.Format("%hc", str[ii]);
        strHexResult += strHex;
      }
      str = strHexResult;
    }
    

    Ohne Gewähr, da nicht getestet! 🙄



  • l00P schrieb:

    Ich würde meinen:

    void ToHex   (CString *str)
    

    so muß das heißen, jetzt bekommst du den Wert. Und beim Aufruf der func. sollte ToHex(&deineVariable) stehen.

    Außerdem ist sDump eine CString Variable und kein Array, deshalb kannst du auch nicht sDump[i] schreiben. Kann das sein??

    lg L00P

    Hi!

    Du kannst CString & genauso gut verwenden. (Nennt sich Referenz)

    Desweiteren hat der CString den operator[] überladen und erlaubt damit den Zugriff auf einzelne Zeichen.



  • 🙂 Damit hab ich natürlich nicht gerechnet - danke!

    lg l00P



  • Shaggy schrieb:

    'h' ist nur ein Präfix, was noch fehlt ist der Typ. Siehe auch MSDN. Außerdem sind noch einige andere Stolpersteine in Deinem Code. Vorschlag für Umsetzung:

    Leider funktioniert der Code nich bzw. gibt ganz normal die character aus.

    Liegt daran, das der Parameter "c" nicht korrekt ist. Es muss ein "x" oder "X", klein/groß, als Parameter an das %h gehängt werden.

    Wo sind denn bitte die Stolpersteine in meinem Code ?
    Also er funktioniert wunderbar.


Anmelden zum Antworten