zwei werte in string zusammenfassen



  • Hi,

    hab ein problem beim zusammenfassen zweier werte in einem string.

    string x = typeid(S).name() + IntToStr(&matNr).c_str();
    

    er bleibt immer an dem + hängen, ich weiss aber nicht wie ich sonst das um zusammenfassen kann ausser über mehrere string variablen und diese dann zusammenfassen. Einzeln geht es aber anders halt ncith.

    Bitte helft mir.



  • warum machste IntToStr(&matNr).c_str() ? lass doch einfach das .c_str() weg. da wandelst du doch den AnsiString in ein char* um. das kannste dann nich so "Addieren" wie AnsiStrings.



  • auch ohne das c_str() funktioniert es nicht.

    er meckert immer nur an dem + rum ->

    "Konvertierung von 'AnsiString' nach 'String' nicht möglich"



  • haste string in deinem Programm auch klein geschrieben? das muss schon groß denk' ich



  • typeid(...).name() gibt einen char-Pointer zurück. Also musst du das erst in (Ansi)String umwandeln:

    String x = String(typeid(c).name()) + IntToStr(&matNr);
    


  • ich weiss auch ncith mehr weiter, so geht es auch nicht...

    das komische ist das , dass

    string x = "   " + string(typeid(S).name()) + "  " ;
    

    geht. Aber das

    string x = "   " + string(typeid(S).name()) + "  " + IntToStr(matNr);
    

    nicht. Ich weiss das hier wieder string klein ist aber es hängt ja anscheint nicht daran..
    Mitlerweile sagt er das, dass operator+ nicht für AnsiString wäre.
    kann ich das IntToStr noch anders machen??



  • Hallo

    also noch einmal : es gibt einen Unterschied zwischen string (std::string) und String (AnsiString). C++ ist case-sensitive!
    IntToStr() liefert einen (Ansi)String. Die Umwandlung zwischen beiden Typen erfolgt mit .c_str().

    string x = "   " + string(typeid(S).name()) + "  " + IntToStr(matNr).c_str();
    

    bis bald
    akari



  • Die Umwandlung zwischen beiden Typen erfolgt mit .c_str().

    Mit .c_str() hast du jetzt aber erstmal einen const char*, den du dann noch entsprechend in den gewünschten Typ umwandeln musst. Also würde es dann heißen:

    [cpp]string x = " " + string(typeid(S).name()) + " " + string(IntToStr(matNr).c_str());[/cpp]
    So müsste es jedenfalls klappen.

    der oli



  • Hallo

    @der Oli : Wenn du meinen Code mal ausprobiert hättest, hättest du gemerkt, das er sehr wohl funktioniert.

    bis bald
    akari


Anmelden zum Antworten