Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Как создать файл?


Автор: Pariah 1.5.2006, 14:19
Дарова народ!
Напишите плиз исходный код как сделать так : проверяем есть ли в определённой дириктории компа(например ‘C:\WINDOWS’)  файл с каким нить именем и если его нет то создаём в этой дирриктории файл с таким именем(например console.txt)
Или подскажите winapi функцию которая создаёт файл! 
Буду оч признателен! smile 
 

Автор: blur 1.5.2006, 14:28
Ф-ция для проверки существования файла FileExist, для создания FileCreate. 

Автор: ne0n 1.5.2006, 14:42
Описание Функций:
Код



FileExist(FileName): boolean; //ну тут все понятно

function CreateFile(
   lpFileName: PChar;   // Указатель на имя файла (устройства)
   dwDesiredAccess,     //Параметры доступа
   dwShareMode: DWORD;  //Разделяемый доступ
   lpSecurityAttributes: PSecurityAttributes; //безопасность
   dwCreationDisposition,       // Описание
   dwFlagsAndAttributes: DWORD; // Атрибуты файла
   hTemplateFile: THandle       // Файл шаблона
   ): THandle; stdcall;




Но я предлагаю другой способ:
Код

...
var f:TextFile; 
...
AssignFile(F, 'c:\windows\file.txt'); 
if not FileExist('c:\windows\file.txt') then
Begin
 Rewrite(f);//создаем новый файл если нет, а если есть то перезаписываем.
//тут можно впихнуть работу с файлом
end
 else
  ShowMessage('А файлик то существует!');
 end; 
 

Автор: Ripper 1.5.2006, 14:45
http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&article_num=000075
тут, тока на С++ но ф-ии одни и теже. 

Автор: Pariah 2.5.2006, 10:39
Всемм пасиб smile  

Автор: Pariah 2.5.2006, 15:54
Народ а мож для наглядного примера кинете плиз пример с заполнеными параметрами функции CreateFile а то уж чото всё смутно както smile  smile  

Автор: Snowy 2.5.2006, 16:02
А чего тут сложного?
Ну вот пример: http://forum.vingrad.ru/index.php?showtopic=83665
Или вот: http://forum.vingrad.ru/index.php?showtopic=84112 

Автор: Pariah 3.5.2006, 15:20
Да...сложного ничего но вот файл несоздаётся почемуто!
вот код
Код

procedure TForm1.Button1Click(Sender: TObject);
const FileName = 'c:\data.txt';
begin
CreateFile(PChar(FileName), GENERIC_READ + GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);
end;

усё компилится но понажатию на кнопку файл зараза несоздаётся! 

Автор: _hunter 3.5.2006, 15:30
читай справку на предмет поведения функции с флагом OPEN_EXISTING
+ есть такая замечательная функция -- GetLastError() -- все сразу понятно становится... 

Автор: Snowy 3.5.2006, 15:32
Цитата(Pariah @  3.5.2006,  15:20 Найти цитируемый пост)
OPEN_EXISTING
Правильно. Потому что ты говоришь "Открыть существующий".
А нужно OPEN_ALWAYS - "Открыть, а если нет, то создать".
 

Автор: Pariah 4.5.2006, 13:57
 smile  smile  smile 
всем пасиб smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)