Veröffentlicht 16. März 200520 j 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]
16. März 200520 j 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]
16. März 200520 j 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.
17. März 200520 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.