hallo Leute!
Ich möchte eine Text-Datei öffnen, komme aber mit der „fscanf()“ nicht klar. Findet ihr in dem Code irgend etwas falsches?
ULONG getFileSize(const char \*path)
{
WIN32\_FIND\_DATAA wfd;
wfd.nFileSizeLow = 0;
HANDLE hFind = INVALID\_HANDLE\_VALUE;
hFind = FindFirstFile(path, &wfd);
if (hFind == INVALID\_HANDLE\_VALUE) { return DATEI\_MURKS ; }
return wfd.nFileSizeLow;
}
char\* openFile (const char \*path, ULONG &fileSize, const char \*mode="rt")
{
FILE \*fp = fopen(path, mode);
if (fp==NULL) {return 0;}
fileSize = getFileSize(path);
char \*keep=0;
keep = new char[fileSize + 2];
if (! keep)
{cout
auf WIN sollte es auch so gehen:
char\* openFileCF(const char \*path, ULONG &sizze)
{
HANDLE hnd = CreateFile(path, GENERIC\_READ, FILE\_SHARE\_READ, NULL,
OPEN\_EXISTING, FILE\_ATTRIBUTE\_NORMAL, NULL);
//if (!hnd) { lastErr = GetLastError(); }
sizze = GetFileSize(hnd, 0);
char \*keep = new char[sizze+2];
ULONG numRead=0;
if( ReadFile(hnd, (char\*)keep, sizze, &numRead, 0) == ERROR\_HANDLE\_EOF )
{cout
Die klappen nun beide nicht. Einmal habe ich es geschafft, dass nichts als
'=' am Bildschirm ausgegeben wurden.
Die fread() und auch die fwrite() sind nur für Binaer-Dateien geeignet, richtig?
Bitte um Hilfe.
gegoogelt habe ich zB hier:
http://www.cplusplus.com/reference/clibrary/cstdio/fscanf.html
Ach ja: habe WIN2K, VC6, dotNet 2003.
lg
Martin B