char-Vektor in CString umwandeln
-
Hi!
Ich würd gern einen dynamischen char-Vektor in einen CString umwandeln. Weiß zufällig wer , wie das geht?

mfg enne
-
in einer Schleife kannst einfach jedes Element des Vektore mit += an deinen String anfügen. Evtl davor schonmal die physikalische Länges Strings setzen
CString temp; temp.Preallocate(vec.size()); vector<char>::iterator it; for(it = vec.begin();it != vec.end();++it) { temp += *it; }Kannst die Schleife natürlich auch mit dem STL-Algorithmus umsetzen.
-
Ok, hat mir sehr geholfen, thx

-
Ich hätte da jetzt noch folgendes Problem:
Ich möchte in meiner Methode noch zusätzlich die Anzahl der Zeilen bestimmen. Das Problem ist nur, dass ich das Ende der Datei erreicht habe und ich es nicht schaffe, zum Anfang meiner Textdatei zurückzukehren.
Hier der Code:bool CWegmessung::GetText() { //Variable length mit irgendeinem Wert initialisieren int length = 1; //Textdatei zum Lesen öffnen ifstream textdatei("test.txt", ios::in); if(!textdatei) { TRACE(_T("Fehler beim Öffnen der Datei!")); return 1; } //Länge der Textdatei bestimmen textdatei.seekg (0, ios::end); length = textdatei.tellg(); textdatei.seekg (0, ios::beg); //Neues Vektorobjekt anlegen char *buffer = new char[length]; textdatei.read (buffer,length); //Bufferinhalt in CString-Objekt speichern text = buffer; TRACE(text); int f = (int)textdatei.tellg(); //Speichern der Zeilenanzahl while(!textdatei.eof()) { textdatei.getline(buffer, length); this->linecounter++; } //Schließen der Textdatei textdatei.close(); delete buffer; return 0; }Die while-Schleife wird nie aufgerufen, da ich mich bereits am Ende der Textdatei befinde. Gibts da ne Möglichkeit, zum Anfang zu kommen?
mfg enne