Zum Inhalt springen

Umstellung von fstream.h auf CFile


Narf!

Empfohlene Beiträge

Hallo Leute.

Mein Visual C++ 6.0 wurde auf Visual C++ .NET umgestellt und da ergeben sich einige Probleme.

Die Dateiarbeit habe ich bisher mit fstream.h (ifstream zum lesen, ofstream zum schreiben) gemacht, jetzt muss ich das mit CFile tun.

Mit "cf.Open(CDDrive+"ncc.html", CFile::modeRead, NULL))" versuche ich eine Datei auf dem CD-ROM-LW zu öffnen, das funktioniert aber nicht.

Muss ich den Pfad in einer Variablen schreiben?

In einer while-Schleife möchte ich das Ende der Datei abfragen. Mit fstream.h ging das so:

ifstream lesen;

lesen.open(Datei);

while(!lesen.eof())

{...}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Narf!

Die Dateiarbeit habe ich bisher mit fstream.h (ifstream zum lesen, ofstream zum schreiben) gemacht, jetzt muss ich das mit CFile tun.

Ich wüsste nicht, wieso. Es reicht wahrscheinlich völlig aus, wenn du

#include <fstream>

(also ohne .h) benutzt. Die Headerdateien mit .h sind einfach nur veraltet und werden von VC7.1 nicht mehr unterstützt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe das mit dem using namespace gemacht, läuft prima bis auf eine winzige Kleinigkeit ;) :

CString CDDrive="F:\\";

ifstream lesen;

Ich versuche mit lesen.open(CDDrive+"Dateiname", ios::out); eine Datei zu öffnen.

if(!lesen)

{...}

Es wird jedesmal in die if-Anweisung gesprungen, obwohl die Datei vorhanden ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe es in ios::in geändert und es funktioniert.

Nun noch die andere Seite:

ofstream schreiben;

schreiben.open(LW+"\\Datei", ios::ate);

//Datei öffnen und neue Daten am Ende anhängen.

Die Datei wird geöffnet, jedoch der Inhalt gelöscht und mit dem neuen Inhalt überschrieben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Narf!

schreiben.open(LW+"\\Datei", ios::ate);

//Datei öffnen und neue Daten am Ende anhängen.

Die Datei wird geöffnet, jedoch der Inhalt gelöscht und mit dem neuen Inhalt überschrieben.

Hmm, wie wäre es mit ios::app! ;)

ios::ate geht nur ans Ende!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hat geklappt. Und, wie sollte es anders sein, habe ich ein neues Problem:

lesen.open(MainPth+"\\Datei", ios::in); //Öffnen einer Datei mit Pfadangeben

while(!lesen.eof())

{

lesen.getline(lese, 20); //lesen der Pfadangabe

if(lese[0]!='\0')

{

a=0;

mp3.open(lese, ios::in); //öffnen der Pfadangabe

while(!mp3.eof())

{

mp3.getline(lesemp3, 300); //lesen aus der Datei in der Pfadangabe

if(lesemp3[0]!='\0')

...

}

mp3.close();

...

Beim ersten Durchlauf funktioniert alles prima. Beim zweiten und allen weiteren Durchläufen passiert das:

Die Pfadangabe wird gelesen, die Datei wird geöffnet, aber bei der Abfrage nach dem Dateiende wird es als wahr gewertet und zu mp3.close() gesprungen, obwohl die Datei gerade erst geöffnet wurde und sich auch etwas in der Datei befindet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, die erste solange Pfadangaben in der Datei existieren und die zweite solange, wie sich Zeilen in der zweiten Datei befinden.

Nach jedem Schleifendurchlauf wird die zweite mit mp3.close() geschlossen und dann wieder geöffnet, nachdem in der ersten wieder eine neue Zeile gelesen wird, da sich dort die Pfadangabe befindet, mit der ich die zweite öffne.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...