Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Probleme mit TXT-FIle

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.07.2008, 10:43 Uhr
Int Main()



Hallo,

ich arbeite mit MS VS 2008 Express Edition.

Nun wollte ich einmal aus einer TXT-Datei lesen und in diese schreiben.
Dabei tritt foglendes Problem auf:

Ich kopiere meine Bsp.txt in den Projektexplorer, so dass sie im selben Verzeichnis wie die ReadMe.txt steht.

Wenn ich jetzt mit

Code:
fstream MyFile;
MyFile.open("Bsp.txt");



arbeite, erhalte ich sowohl für MyFile.good() als auch MyFile.is_open() 0. D. h., er öffnet die Datei nicht.
Wenn ich das gleiche mit MyFile.open("ReadMe.txt") mache, dann klappt alles.
Es klappt auch, wenn ich die Datei Bsp.txt auf z.B. C : \ speichere und sie dann mit MyFile.open("C : \Bsp.txt") öffne. (Wenn man CDoppelpunktBackslash schreibt, gibt es einen Smiley, wie bekommtman den weg?)

Kann mir jemand sagen, ob ich irgendwelche Eigenschaften oder sonst etwas einstellen muss? Sowohl die Hilfe aus MSDN als auch im Visual Studio waren nicht besonders hilfreich.

Die Eigenschaften von ReadMe.txt und meiner Bsp.txt sind, soweit ich das beurteilen kann, im Projektexplorer identisch.


Vielen Dank

int main()

Dieser Post wurde am 09.07.2008 um 10:44 Uhr von Int Main() editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.07.2008, 12:30 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja existiert die Bsp.txt oder existiert sie nicht?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.07.2008, 12:50 Uhr
Int Main()



Hallo,

die Datei existiert einmal im Wurzelverzeichnis von Laufwerk C:
und sie ist in den Projektexplorer kopiert und steht direkt über ReadMe.txt.

Wenn ich im Projektexplorer doppelt auf Bsp.txt klicke, öffnet sich die Datei und ich kann meine Testeinträge lesen/editieren.

Wenn ich nun aber im Programm auf Bsp.txt zugreifen will, dann klappt das für die Kopie im Laufwerk C, nicht aber für die Kopie im Projekt selber. Die Datei ReadMe.txt kann ich aber öffnen, obwohl sie im genau gleichen Verzeichnis im Projektexplorer liegt, die gleichen Eigenschaften hat und auch sonst keine für mich erkennbaren Unterschiede zur Bsp.txt aufweist.

Ich weiß nicht, woran das liegt.

über Hilfe wäre ich wirklcih dankbar

mfg

int main()

Dieser Post wurde am 09.07.2008 um 12:51 Uhr von Int Main() editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.07.2008, 15:17 Uhr
0xdeadbeef
Gott
(Operator)


Die Datei muss im Arbeitsverzeichnis liegen; das heißt, in dem Verzeichnis, aus dem du das Programm ausführst. Das ist nicht zwingenderweise das selbe, in dem sich die .exe befindet.

Kuck mal in deine Debug-Einstellungen, und ggf. lass dir mal das Arbeitsverzeichnis vom Programm ausgeben. Ich glaube, die entsprechende Windows-Funktion dazu heißt GetCurrentWorkingDirectory.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.07.2008, 02:07 Uhr
xXx
Devil


Ehm nur weils im Projektexplorer da angezeigt wird, heißt das nicht, dass es sich in dem Verzeichnis befindet!

Und zu deinem Beispiel:

C++:
fstream MyFile;
MyFile.open("Bsp.txt");
so sollte er es aber eigtl. auf jedenfall hinbekommen, die Datei zu öffnen, da du ihm nicht sagst, ob du die Datei zum lesen oder schreiben willst. D.h. nimmt er als Default an, dass du Lesen und Schreiben willst. Beim Schreiben sollte aber eigtl. automatisch, falls keine Datei existiert, eine neue erstellt werden. Von d.h. weiß ich nicht wirklich, warum ers nicht hinbekommt!


C++:
std::fstream file_stream("Bsp.txt");
if (!file_stream) std::cerr << "FEHLER: Datei nicht gefunden!";
Mal ausprobieren und sagen was passiert!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.07.2008, 18:28 Uhr
Int Main()



Erst einmal Danke für die Hilfe.

Nachdem ich das aktuelle Laufwerk ausgelesen hatte, habe ich die Datei in das entsprechende Verzeichnis gelegt und siehe da: Es funktionierte.
Die Datei erschien nun auch im Projektexplorer. Dort konnte ich Sie editieren. Allerdings wurden die Änderungen nicht wirksam.
Außerdem ist mir immer noch nicht klar, wie ich denn nun eine Datei in ein Projekt einbinde.

mfg

int main()
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
15.07.2008, 16:04 Uhr
mmc20
puss in boots


hi, wenn du ohne pfade arbeitest, dann sucht er die datei immer(!) im verzeichnis der exe. diese befindet sich meist aber nicht im project-ordner sondern im debug/release ordner!
(hat aber der forum-gott[0xdeadbeef] eigentlich schon gesagt... )

die smilies bekommt man weg, indem man diese vor dem posten abwählt, also den haken bei smilies rausmacht...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
15.07.2008, 17:45 Uhr
Tommix




Zitat von mmc20:
hi, wenn du ohne pfade arbeitest, dann sucht er die datei immer(!) im verzeichnis der exe. diese befindet sich meist aber nicht im project-ordner sondern im debug/release ordner!
(hat aber der forum-gott[0xdeadbeef] eigentlich schon gesagt... )



Zitat von 0xdeadbeef:

Die Datei muss im Arbeitsverzeichnis liegen; das heißt, in dem Verzeichnis, aus dem du das Programm ausführst. Das ist nicht zwingenderweise das selbe, in dem sich die .exe befindet.



Dieser Post wurde am 15.07.2008 um 17:45 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: