M
eine möglichkeit wäre die komplette datei in einen buffer zu lesen und dann zu suchen, ändern etc.
HANDLE hFile;
DWORD dwFileSize;
DWORD dwBytesRead;
char *lpBufPtr;
if((hFile = CreateFile(
SAVEFILE,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
(HANDLE)NULL)) == (HANDLE)-1)
return FALSE;
dwFileSize = GetFileSize(hFile, NULL);
if(dwFileSize == 0xFFFFFFFF)
return FALSE;
lpBufPtr = (char *)LocalAlloc(GMEM_FIXED, dwFileSize);
if(lpBufPtr == NULL)
{
CloseHandle(hFile);
return FALSE;
}
ReadFile(hFile,(LPVOID)lpBufPtr, dwFileSize, &dwBytesRead, NULL);
if(dwBytesRead == 0)
return FALSE;
CloseHandle(hFile);
// hier suchen, lesen, ändern, wieder zurückschreiben
LocalFree(lpBufPtr);
return TRUE;
hier noch ein auszug aus der msdn zum manipulieren des buffers http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_string_manipulation.asp