ATwork Geschrieben 16. März 2005 Geschrieben 16. März 2005 Hallo Leute, hab diesmal folgendes Problem. Habe einen Text per ifstream ausgelesen und in einen AnsiString verschoben. jetzt adde ich einen substring an der stelle (i, 1) ein Zeichen weit und möchte den in ein characterarray schieben, weiß aber nicht wie? könnt ihr bitte helfen... quellcode sieht ungefähr so aus. using namespace std; vector<string> ganzerText; string zeile; char textArray[1000]; ifstream eingabe ("c:\\Test.txt"); ofstream ausgabe("c:\\ausgabe.txt"); ganzerText.clear(); Memo1->Clear(); while (getline(eingabe, zeile,'\0')) { ganzerText.push_back(zeile); ausgabe << zeile; } eingabe.close(); //ausgabe.close(); AnsiString neuerText = ""; for (int i=0; i<ganzerText.size(); i++) { neuerText += ganzerText.at(i).c_str(); } for (int i=0; i<neuerText.Length(); i++) { Memo1->Lines->Add(neuerText.SubString(i,1)); } } [/php] Zitieren
SNOWMAN Geschrieben 16. März 2005 Geschrieben 16. März 2005 Ich würd das schieben von ganzertext ins textarray so machen: for( int i = 0; i < sizeof(ganzertext); i++){ textarray(i) = mid(ganzertext, i, 1); } [/PHP] Zitieren
ATwork Geschrieben 16. März 2005 Autor Geschrieben 16. März 2005 was soll den mid(...) für eine funktion sein? der kennt die bei mir gar nicht. hab davor auch stringtochar ausprobiert, komm aber nicht drauf, den code richtig zu schreiben. Zitieren
kLeiner_HobBes Geschrieben 17. März 2005 Geschrieben 17. März 2005 Warum benutzt du denn nicht c_str()? Ich kapier den Sinn deines Codes zwar nicht ganz, sieht mir ziemlich nach Umweg aus, aber wenn du es so kompiziert machen willst, dann heißt es: for (int i = 0; i < 999 && i < neuerText.Length(); i++) textArray[i] = (char)*neuerText.SubString(i,1).c_str(); Ist aber wirklich umständlich. Einfacher sollte es gehn mit: textArray = neuerText.SubString(0,1000).c_str(); Ich weiß jetzt nicht, wie er reagiert, wenn die Länge von neuerText unter 1000 liegt, evtl. mußt du da noch was einbauen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.