txt Datei einlesen
-
Hallo
Ich versuche das schon seit ein paar Tagen mit Visual Studio 2008 hinzubekommen. Es gibt ja einige Anleitungen im Internet, aber ich bekomme es immernoch nicht gebacken. Ich habe eine Text Datei mit mehreren Zeilen. Jede Zeile besteht aus mehreren mit ; getrennte Nummern. Ich will nun jede Zeile einzeln auslesen (mit getline?) und diese Nummern in Arrays speichern. Es ist bestimmt eine einfache Sache, habe vorher nur Konsole und mit Borland (Win32 Oberfläche) gearbeitet.
-
Huhu,
#include <fstream> #include <string> #include <iostream> int main() { std::ifstream file ( "PFAD") ; std::string line; if ( !file ) { std::cerr << "Datei konnte nicht geöffnet werden oder so...!" << std::endl; return 1; } while ( file.getline(file,line) ) { // Mach was du willst } }
Das Beispiel ist ungetestet, sollte aber funktionieren... Hoffe ich :xmas1:
-
CStdioFile bietet die Methode ReadLine().
-
Da kommt leider immer ein Fehler in der Zeile 12:
Fehler 1 error C2664: 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::getline(_Elem *,std::streamsize)': Konvertierung des Parameters 1 von 'std::ifstream' in 'char *' nicht möglich c:\dokumente und einstellungen\michael jackson\eigene dateien\visual studio 2008\projects\txteinlesen\txteinlesen\Form1.h 126
return 1; musste ich auskommentieren, da er dort auch meckerte, das void ein Wert zurück gibt.
-
Habs jetzt selber hinbekommen, danke für den Codeschnipsel
Hier mein jetziger Code, um erstmal testweise alles in einer textBox auszugeben. Allerdings kommt bei NewLine \n immer das Kästchen in die Box, weiß jemand warum?
http://ottelo.ot.funpic.de/sonstiges/cpp.gif
std::ifstream file ( "z:\\Uni\\Informatik\\bde.txt") ; std::string line; if (file) { while ( getline(file,line) ) { textBox1->AppendText(gcnew String(line.c_str()) + "\n"); } } else MessageBox::Show("Fehler beim Öffnen");
-
Lass hier
textBox1->AppendText(gcnew String(line.c_str()) + "\n");
das + "\n" weg.
-
Dann sag bitte wie Du weitermachen möchtest. Der Code ist ist std:: und nicht MFC.
In der MFC sieht das anders aus.
Wie steht sicher in der FAQ.
-
Der ist nicht mal std:: der Code ist auch noch C++/CLI dazu
-
Martin Richter schrieb:
Der ist nicht mal std:: der Code ist auch noch C++/CLI dazu
... und damit zählt man File::ReadAllLines(...) sowie String::Split(...) sehr schnell zu den besten Freunden
Wenn ich allerdings "\\Uni\\Informatik\" lese, wird hier dann eher ANSI C verlangt ...
Gruß
foodax