aus Textdatei zeilenweise einlesen
-
Hallo, ich lesen wie folgt aus einer Textdatei zeilenweise ein:
char pfad[256]; char Zeilenstring[1256]; _getcwd(pfad, 256); // Programmpfad ifstream datei; if (LangMode == 1031) { //deutsch datei.open((pfad + string("\\liesmich.txt")), ios::in); } else if (LangMode == 1033) { // englisch datei.open((pfad + string("\\readme.txt")), ios::in); } while (!datei.eof()) { datei.getline(Zeilenstring, sizeof(Zeilenstring)); HistoryText = HistoryText + Zeilenstring; HistoryText = HistoryText + "\r\n"; } datei.close();
Bei der deutschen Sprache (also 1031) funktioniert dies, bei der englischen Sprache (1033) aber nicht.
Jetzt kann der Unterschied eigentlich nur in der jeweiligen Textdatei liegen.
Kann hierfür der Zeichensatz der Datei der Grund sein?
-
Ob die Datei überhaupt existiert stellt
datei.eof()
nicht fest.
-
Ja die Datei ist da - dies frage ich zentral beim Start der Anwendung ab.
Habe die Ursache noch gestern gefunden - diese Datei wird von einem anderen Programm (von einem anderen Rechner aus) zeitgleich verwendet und somit blockiert.
Somit habe ich wie folgt erweitert:ifstream datei; if (LangMode == 1031) { //deutsch datei.open((pfad + string("\\liesmich.txt")), ios::in); //MLHIDE } else if (LangMode == 1033) { // englisch datei.open((pfad + string("\\readme.txt")), ios::in); //MLHIDE } if (datei.is_open()) { while (!datei.eof()) { datei.getline(Zeilenstring, sizeof(Zeilenstring)); HistoryText = HistoryText + Zeilenstring; HistoryText = HistoryText + "\r\n"; //MLHIDE } } datei.close();
Die Auswertung wenn nicht open erfolgt an einer anderen Stelle.
Kommt deiner Vermutung sehr nahe
-
sati schrieb:
..lese ...aus einer Textdatei zeilenweise ein...
Kann hierfür der Zeichensatz der Datei der Grund sein?
Getline liest i.d.R. alles bis zum Zeilenende als Text ein.
Die Art des Datei Öffnens könnte eine Rolle spielen ; wenn z.B. binär gelesen werden muss.
Mit einfachen Ttextdateien sollte es so funktionieren.
Zugriffsrechte, oder Sonderzeichen im Pfad könnten Probleme machen.
Was ist denn der Inhalt der Dateien?