Datei einlesen 1. Zeile fehlt
-
Hallo Gemeinde,
ich versuche mit dem folgenden Code eine Textdatei zu lesen. Dabei bekomme ich aber eine Exception wenn nur eine Zeile in der Textdatei ist und bei mehr als einer Zeile fehlt die Erste.
Ich sehe einfach den Fehler nicht:std::ifstream in("test.txt"); std::string tstr; vector<string> str_vect; while( getline(in, tstr)) { if( in.good()) { str_vect.push_back(tstr); } } TStringList *line = new TStringList; line->Delimiter = ','; StringGrid1->RowCount = str_vect.size(); for( int i=0; i<StringGrid1->RowCount; ++i) { line->DelimitedText = str_vect[i].c_str(); if( line->Count > StringGrid1->ColCount) StringGrid1->ColCount = line->Count; StringGrid1->Rows[i]->Text = line->Text; } delete line;
Danke
Gruß myerscola
-
Wo genau tritt denn der Fehler auf? In der while(getline)-Schleife oder beim Kopieren der Inhalte in dein StringGrid?
Wenn letzteres: Hast du mal nachgesehen, ob in dem vector alle Zeilen der Datei sind?(Randbemerkung: die Überprüfung if(in.good()) ist imho redundant, da die Abbruchbedingung der Schleife das selbe aussagt)
-
ich würde das in.good vor der while schleife abfragen, denn lesen, wenn die Datei gar nicht existiert etc ist schonmal ungünstig.
Aber weiter seh ich keine "Fehler"
EDIT: Oh mein Gott: for statt vor :| tja, warum ich mich so vertippt habe, ist ja wohl klar
-
Danke Euch beiden, weiß auch nicht warum ich das innerhalb der while Schleife habe.
Habe zwar nicht kapiert warum dann die 1.Zeile nicht eingelesen wurde, aber es war definitiv der Fehler.Gruß myerscola
-
Warum benutzt du nicht TStringList::LoadFromFile ???