CString::Format mit Array
-
Hallo
Habe einen CString mit Platzhaltzern "%d". Diesen String möchte ich nun mit einem Array oder einem std::vector füllen.
CString myArray[]{ 1,2,3}; CString myString myString.Format("Eins: %d Zwei: %d Drei %d" , myArray);Das geht natürlich nicht. Nur als Veranschaulichung von meinem Problem.
-
Danke für die Information.
-
Wieso danke für die Information? Das war eigentlich eine Frage.
-
CString myArray[]{ 1,2,3}; CString myString myString.Format("Eins: %d Zwei: %d Drei %d" , myArray[0],myArray[1],myArray[2]);
-
myString.Format("Eins: %d Zwei: %d Drei %d" , myArray[0],myArray[1],myArray[2]);Ok vieleicht habe ich vergessen zu sagen, dass das Array dynamisch ist.
Meine Ziel ist eine Funktion der ich einen CString mit beliebiger Anzahl an Platzhaltern und ein Array mit gleicher Anzahl an Einträgen übergebe. Diese Einträge sollen dann in den CString formatiert werden.
-
namespace__class schrieb:
Wieso danke für die Information? Das war eigentlich eine Frage.
Nein, da war gar keine Frage.
namespace__class schrieb:
Meine Ziel ist eine Funktion der ich einen CString mit beliebiger Anzahl an Platzhaltern und ein Array mit gleicher Anzahl an Einträgen übergebe. Diese Einträge sollen dann in den CString formatiert werden.
Wandel in einer Schleife die Array-Werte in Strings um und häng die Strings aneinander.
-
Wandel in einer Schleife die Array-Werte in Strings um und häng die Strings aneinander.
????
Wie soll ich das verstehen. Also ich wandle meine Array inhalt in Strings um.
Arrayinhalt ist 1,2,3 -> so dann habe ich danach 123. Und was bringt mir das?
-
schau dich mal nach Append um

-
Und dann was bringt mir bitte Append. Ich will meine Zahlen in einen String formatieren und nicht hinten anhängen.
-
Na dann erstell ein zweites Array wo dann "Eins,Zwei,Drei..." drinsteht und Bastel dir daraus den String Zusammen. Den Text kannste nun mal nicht dynamisch erzeugen, zumindest fällt mir da nix ein.
CStringArray Text("Eins","Zwei","Drei"); int myArray[]{ 1,2,3}; CString Ausgabe,tmp; for(int Count = 0;Count < ArrayCount;Count++) { tmp.Format("%s: %d ",Text[Count],myArray[Count]); Ausgabe += tmp; }so mal was ausn Kopf wie es gehen könnt
-
1. %d und CString beißen sich ja wohl.
2. Ist doch FormatAppend genau das, was Du brauchst. Du machst eine Shcleife und hängst in dieser Schleife mit FormatAppend die Daten immer hinten an.
3. Kann ich es langsam nicht mehr sehen, wenn CString direkt in Format oder printf verwendet wird:
http://blog.m-ri.de/index.php/2008/01/08/die-unsitte-objekte-direkt-in-printf-und-funktionen-mit-variabler-anzahl-von-argumenten-zu-nutzen/
http://blog.m-ri.de/index.php/2007/09/12/die-cx2y-falle/