Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Dateien mit C++ lesen

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.10.2003, 11:13 Uhr
~Ludwig
Gast


Hallo zusammen,
wie kann ich in C++ z.B. eine Textdatei öffnen,lesen.
Würde das gerne in C++ machen, da ich in C nicht so gut bin.

Danke schonmal, Ludwig
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.10.2003, 11:35 Uhr
0xdeadbeef
Gott
(Operator)



C++:
#include <fstream>

//...
std::ifstream infile("dateiname.txt");
//... infile benutzen wie einen normalen istream.


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 09.10.2003 um 11:35 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.10.2003, 11:43 Uhr
~Ludwig
Gast


Danke erstmal, aber ich hab mich zu ungenau ausgedrückt.
Ich möchte dieses File (kann ja auch eine .h Datei sein) Zeichen für Zeichen auslesen (Parsen), in einen CString abspeichern, um mit Hilfe von Überprüfungen mir bestimmte Dinge rauszufiltern.

Ludwig
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.10.2003, 11:46 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



C++:
char c
FILE *fp=fopen("dateiname.txt","rb");
while(!feof(fp){
  c=fgetc(fp);   //mit fread sollte es schneller gehen
  //hier irgendwas mit dem zeichen machen
}

fclose(fp);


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 09.10.2003 um 11:47 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.10.2003, 11:50 Uhr
~testos
Gast


hi, probier das mal...

C++:
{
    DWORD Bytes(0);
    char buffer[1024];
    CString str;

    HANDLE h_file = CreateFile("default.cfg", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0 , NULL);
    if (h_file != INVALID_HANDLE_VALUE)
    {
        ReadFile(h_file, &buffer, sizeof(buffer)-1, &Bytes, NULL);
        if (Bytes > 0)
        {
            buffer[Bytes] = 0;
            str = (LPCSTR)buffer;
        }
        else
            // Fehler : keine daten gelesen;
    }
    else
        // Fehler : konnte datei nicht öffnen/finden;

    CloseHandle(h_file);
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.10.2003, 11:57 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@testos
Problem bei diesen Dingen ist das man sich dann in die Betriebssystemabhängigkeit begibt.
Ich würde bei solchen sachen versuchen so lange wie möglich in Ansi-C/c++ zu bleiben und nur wenns nicht mehr geht os-spezifische funktionen verwenden.
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.10.2003, 13:19 Uhr
RHBaum



Naja, Wenn man nen tool zum Lesen von Ini-files schreibt, oder nen Tool was, was .inf Dateien parst, braucht man ned unbedingt auf Platformunabhaengigkeit achten kommt also auf die Verwendung an !

Wobei testos Loesung bestimmt ned die Beste ist, da es hier ja um Vc++ und vielleicht MFC, und ned um C geht ...

Also wenn MFC soweiso benutzt, solltes dir CFile etc mal anschauen ....

Wenn nicht MFC, dann die STL-Streams (fstream etc) .

Warum CFile ?

Vorteil: die CFile funktionen liefern Dir Wiondows-MFC-Kompatible Strings. ALso TCHAR * .... (CString baut auch auf TCHAR auf)
Bei der STL kannst die Strings die lesen und schreiben willst, mit ein bisserl Aufwand zwar hinbiegen, das man da auch TCHAR konform bleibt. ABer ich kenn keinen Stream, wo man den Dateinamen als TCHAR sauber uebergeben kann. Ohne Konvertierung. Und convertierungsmakros find ich unschoen

Ein naives:

C++:
Cstring MyFileName = "C:\\test.txt";
std::ifstream infile(MyFileName );


klappt zwar in 99% aller Faelle, aber irgendwann Uberstzt das mal einer mit _UNICODE ... und schon gehts schief ! :-)

Also ... wenn dich schon auf CString usw eingeschossen hast ... nimm CFile.
CString CMap usw... gleichzeitig mit STL zu benutzen, ist sowieso esthetisch unschoen ! :p

Und naechstes Project versuchst mal die STL und meidest die MFC !

Ciao ...

Dieser Post wurde am 09.10.2003 um 13:25 Uhr von RHBaum editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


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: