Maks150988
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору YuriyRR Да я вот тоже атк думал. Odysseos Ну нет, это как-то грязно. Вот сделал, на гуглокоде сишный пример понятный попался. Код: function IniFileProfileExistsW(pszFileName, pszAppName: WideString): Boolean; var pszBuf: Array [0..MAX_PATH] of WideChar; pBuf : LPWSTR; dwRet: DWORD; begin Result := FALSE; dwRet := GetPrivateProfileSectionNamesW(pszBuf, SizeOf(pszBuf), LPWSTR(pszFileName)); pBuf := pszBuf; while (pBuf <> nil) and (pBuf^ <> #0) do begin if (lstrcmpiW(LPWSTR(pszAppName), pBuf) = 0) then begin Result := TRUE; Break; end; Inc(pBuf, lstrlenW(pBuf) + 1); end; end; | До этого сделал вообще такое. Код: function IniFileProfileExistsW(pszFileName, pszAppName: WideString): Boolean; var pszText: WideString; hFile : THandle; hMem : Cardinal; pMem : Pointer; dwRead : DWORD; begin Result := FALSE; hFile := CreateFileW( LPWSTR(pszFileName), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ); if (hFile <> INVALID_HANDLE_VALUE) then try hMem := GlobalAlloc(GMEM_MOVEABLE or GMEM_ZEROINIT, 65535); pMem := GlobalLock(hMem); ReadFile(hFile, pMem^, 65535 - 1, dwRead, nil); pszText := FormatW('[%s]', [pszAppName]); Result := Pos(pszText, LPSTR(pMem)) > 0; finally GlobalUnlock(HGLOBAL(pMem)); GlobalFree(hMem); CloseHandle(hFile); end; end; | Оболдеть, кажется такая простая задача, а над решением можно долго биться. |