AnsiString mit ostringstream verketten (war: operator)
-
Hallo,
wie kann ich einen AnsiString an einen String und umgekehrt anhängen?Danke in voraus!
Gruß danielEdit:
Bitte aussagekräftige Überschriften wählen. Danke!
-
Hallo
was verstehst du unter einen String? std::string? C-Style String?
AnsiString A_String; std::string S_String; char *C_String; ... A_String = AString + S_String.c-str(); + C_String; S_String = A_String.c_str(); strncat(C_String, A_String.c_str(), 10); // Max. 10 Teichen aus A_String an C_String anhängenbis bald
akari
-
danke!
Aber ich will AnsiString + ( setfill('0') +setw(4) ) vom Typ ostringstream +
i=for-Schleife + AnsiString in einen AnsiString zwischenspeichern.
Will nämlich in der VCL(BCB6) eine Schleife die von 0000 -9999 hoch zählt,aber angefangen eben bei 0000...0010...0100 also immer eine Null weg und da habe ich mehrere Editfelder die angehängt werden müssen.
Ich hoffe jemand kann mir helfen.
Gruß daniel
-
Hallo
Aber ich will AnsiString + ( setfill('0') +setw(4) ) vom Typ ostringstream +
i=for-Schleife + AnsiString in einen AnsiString zwischenspeichern.Verstehe ich nicht. was ist setfill und setw? was hat ostringstream damit zu tun?
Zeig doch mal einen passenden Codeausschnitt, mit allen Deklarationen.Ich kann dir nur sagen, das du auch von AnsiString nach ostringstream in beide Richtungen mit der jeweiligen Methode c_str() bzw str() konvertieren kannst.
bis bald
akari
-
for(int i=0;i<10000;i++)
{
ostringstream nummer;nummer<<" Hallo"<<setfill('0')<<setw(4)<<i;
cout<<nummer.str();
}// so sollte es am Ende Aussehen, aber eben nur in der VCL, also Anstatt "Hallo" eben Edit1->Text dann die Nullen(Schleife) und das ganze in einem AnsiString zwischengespeichert
verstehste ich komm da nicht weiter,
Und wenn ich nummer.str() in einem AnsiString speichern will(AnsiString a; a=nummer.str();) bekommme ich eine Fehlermeldung (Keine Übereinstimmung für AnsiString::operator=(string) gefunden
Gruß daniel
-
Hallo
nummer<<Edit1->Text.c_str()<<setfill('0')<<setw(4)<<i;Wobei ich mich allerdings frage, warum du VCL (TEdit) und Konsole (cout) mixen willst.
bis bald
akari
-
std::string stdstr = nummer.str(); AnsiString astr = stdstr.c_str(); // oder gleich AnsiString astr = (nummer.str()).c_str();
-
Ich Danke euch wie verückt es funzt!!!

Gruß daniel