Hallo...
Ich möchte gerne eine ->belibig<- große datei einlesen lassen...
ich mach das volgendermaßen:
jetzt hab ich aber nur 100 frei in ReadBuffer...
Jetzt dachte ich mir, ich kann doch mit GetFileSize, die größe der datei herrausfinden und erst DANN ReadBuffer Dekliniren...
Praktisch so:
aber da bekomm ich immer volgende Fehlermeldung:
Mach ich das i.wie falsch?
Ich möchte gerne eine ->belibig<- große datei einlesen lassen...
ich mach das volgendermaßen:
Code:
CHAR ReadBuffer[100];
DWORD dwBytesRead;
HANDLE hFile;
hFile = CreateFile("C:/test.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
MessageBox(hWnd, (LPCSTR)GetLastError(), "Could not open file", MB_OK);
if(ReadFile(hFile, ReadBuffer, 100, &dwBytesRead, NULL) == FALSE) {
MessageBox(hWnd, (LPCSTR)GetLastError(), "Could not read from file", MB_OK);
CloseHandle(hFile);
}
if (dwBytesRead > 0) {
ReadBuffer[dwBytesRead]='\0'; // NULL character
} else {
MessageBox(hWnd, "error", "error", MB_OK);
}
CloseHandle(hFile);
jetzt hab ich aber nur 100 frei in ReadBuffer...
Jetzt dachte ich mir, ich kann doch mit GetFileSize, die größe der datei herrausfinden und erst DANN ReadBuffer Dekliniren...
Praktisch so:
Code:
DWORD dwBytesRead;
DWORD FileSize; //new
HANDLE hFile;
hFile = CreateFile("C:/test.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
MessageBox(hWnd, (LPCSTR)GetLastError(), "Could not open file", MB_OK);
FileSize = GetFileSize(hFile, NULL); //new
CHAR ReadBuffer[FileSize]; //new <- Zeile 177
if(ReadFile(hFile, ReadBuffer, FileSize, &dwBytesRead, NULL) == FALSE) {
MessageBox(hWnd, (LPCSTR)GetLastError(), "Could not read from file", MB_OK);
CloseHandle(hFile);
}
if (dwBytesRead > 0) {
ReadBuffer[dwBytesRead]='\0'; // NULL character
} else {
MessageBox(hWnd, "error", "error", MB_OK);
}
CloseHandle(hFile);
aber da bekomm ich immer volgende Fehlermeldung:
(177) : error C2057: Konstanter Ausdruck erwartet
(177) : error C2466: Zuordnung eines Arrays der konstanten Größe 0 nicht möglich.
(177) : error C2133: 'ReadBuffer': Unbekannte Größe
Mach ich das i.wie falsch?