problem mit getline?
-
Zeig mal den aktuellen Code- Teil!
-
@DerAltenburger
Der Vergleich ist schon ok, da er ja seinen string in AnsiString umwandelt und dannn vergleicht. SubStringgibt ja einen AnsiString zurück.Ich kann mir höchstens vorstellen, dass der eingelesene string zu lang wird und er dann in eben dieser Zeile bleibt und somit eof nie erreicht.
-
fstream tempfile((source + ".temp").c_str()); fstream destinationfile((source).c_str()); while (!tempfile.eof()) { tempfile.getline(sourceline,500); // if (AnsiString(sourceline).SubString(1,20) != " JAM-INHERIT-PROPS") if (AnsiPos(" JAM-INHERIT-PROPS", AnsiString(sourceline)) != 1) { destinationfile << sourceline << endl; } }source enthällt zb "C:\meinetextdatei.txt".
-
Bei mir schneidet der den Rest der alten datei nicht ab!
Lösch mal vorher die Datei (targetfile).
PS: da stimmt mit dem stream was nicht, da kenn ich mich aber nicht aus, fstream nehm ich nie.
Der alte Inhalt muss gelöscht werden. Schau mal bei fstream nach.
(Funktionen, State, Modus)
-
Source existiert nicht... es existiert nur die .temp... was soll ich anstelle von fstream nehmen?
-
Kontrollier bitte mal ob das failbit von tempfile gesetzt ist, wenn deine Bedingung erfüllt ist. Ansonsten könntest du auch statt dem char Puffer eine Variable vom Typ std::string nehmen. Deren getline liest immer bis zum Zeilenende (egal wieviele Zeichen) und springt dann in die nächste Zeile.
Also z.Bsp
string str;
getline(tempfile, str, '\n');
-
-
das mit
getline(tempfile, str, '\n');
geht nicht...
er meckert mir:
E2285 Keine Übereinstimmung für 'getline......'O.o?
-
hast du string und iostream inkludiert ?
-
danke!! es geht nun alles *freu* :)))))))))