|
#1
|
||||
|
||||
Запись в файл
Открываю файл
Код:
hFile := OpenFile('log.txt', info, GENERIC_WRITE or OF_SHARE_DENY_NONE); Код:
OK := writefile(hFile, temp, length(temp), bw, 0); Полный код Код:
program Win1; uses Windows, Messages, SysUtils; var WndClass: TWndClass; szAppName: PChar; WinHandle: hwnd; info: ofstruct; bw: cardinal; hFile: THandle; Msg: TMsg; temp: char = 'C'; ok: boolean; function MyWndProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LResult; stdcall; var i: Integer; begin case Msg of WM_DESTROY: begin PostQuitMessage(0); Result := 0; end; WM_KEYDOWN: begin OK := writefile(hFile, temp, length(temp), bw, 0); Result := DefWindowProc(hWnd, Msg, wParam, lParam); end else Result := DefWindowProc(hWnd, Msg, wParam, lParam); end; end; begin szAppName := 'Hello windows.'; WndClass.style := CS_HREDRAW or CS_VREDRAW; WndClass.lpfnWndProc := @MyWndProc; WndClass.cbClsExtra := 0; WndClass.cbWndExtra := 0; WndClass.hInstance := hInstance; WndClass.hIcon := LoadIcon(hInstance, IDI_APPLICATION); WndClass.hCursor := LoadCursor(hInstance, IDC_ARROW); WndClass.hbrBackground := CreateSolidBrush($FFFFFF); WndClass.lpszMenuName := nil; WndClass.lpszClassName := szAppName; RegisterClass(WndClass); WinHandle := CreateWindow(WndClass.lpszClassName, 'The Hello Program', WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, hInstance, nil); ShowWindow(WinHandle, SW_SHOW); UpdateWindow(WinHandle); hFile := OpenFile('log.txt', info, GENERIC_WRITE or OF_SHARE_DENY_NONE); while GetMessage(Msg, 0, 0, 0) do begin TranslateMessage(Msg); DispatchMessage(Msg); end; end. |
#2
|
|||
|
|||
Функции OpenFile оставлены для совместимости, лучше использовать CreateFile. Тогда файл закроется через CloseHandle и изменения будут сброшены
Последний раз редактировалось ChinYan, 22.05.2012 в 19:48. |
Этот пользователь сказал Спасибо ChinYan за это полезное сообщение: | ||
Kpyc (22.05.2012)
|
#3
|
||||
|
||||
Вот так еще можно:
Код:
function SaveTextToFile(Filename: string; Text: string): Boolean; var f: HFILE; Size: DWORD; begin Size := Length(Text); f := _lopen(PChar(Filename), OF_READWRITE); _llseek(f, 0, FILE_END); _lwrite(f, @Text[1], Size); _lclose(f); Result := True end; |
#4
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |
#5
|
||||
|
||||
Ну и хорошо, что оставлены. Это всегда работает.
|
#6
|
||||
|
||||
Ну-ну надейся, и не обижайся, когда в следующей версии Винды вдруг перестанет работать.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |