Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.15;
Скачать: CL | DM;

Вниз

Работа с файлами. Простой пример.   Найти похожие ветки 

 
Inan61   (2003-04-27 18:26) [0]

Хочу решить такую проблему. Проверяю наличие на диске файла. Если он есть, то открываю. Если его нет - надо создать и сразу открыть, но не получается:
procedure TForm1.Button1Click(Sender: TObject);
var F:file;
begin
if not FileExists("C:\A.txt") then
begin
AssignFile(F,"C:\A.txt");
FileCreate("C:\A.txt");
ShellExecute(Handle,nil, Pchar("C:\A.txt"),
nil,nil,SW_RESTORE);
end
else
ShellExecute(Handle,nil, Pchar("C:\A.txt"),
nil,nil,SW_RESTORE);
end;


 
Anatoly Podgoretsky ©   (2003-04-27 20:26) [1]

Что не получается, это как то выражается?


 
Palladin ©   (2003-04-27 21:20) [2]

хм, логика странная ничего не скажешь
во первых, для чего же F и AssignFile
во вторых ShellExecute достаточно 1 раз

procedure TForm1.Button1Click(Sender:TObject);
begin
if not FileExists("C:\A.txt") then
if FileCreate("C:\A.txt")=-1 then
begin
Application.MessageBox("Create file failed","Error");
exit;
end;
ShellExecute(Handle,nil,"C:\A.txt",nil,nil,SW_ShowNormal);
end;


 
Palladin ©   (2003-04-27 21:25) [3]

при {$B-} можно в одну строчку записать
if (not FileExists("C:\A.txt")) and (FileCreate("C:\A.txt")=-1) then


 
Ivan61   (2003-04-29 20:30) [4]

Необходимо, чтобы файл A.txt открывался если он есть на диске. Если же его нет он должен создаваться и сразу же открываться. В примере
> Palladin © (27.04.03 21:20)
если файла нет, то он создается, но не открывается. Когда закроешь программу и снова откроешь - тогда открывается, а надо сразу!


 
PGM   (2003-04-30 00:02) [5]

А чем плох старый добрый Паскаль для создания
AssignFile(F,"C:\A.txt");
Rewrite(F);
CloseFile(F);
А если еще в него пробел положить? Может поможет.

На самом деле у меня в свое время что-то подобное правда с INI файлами и исключительно под Win9х было. Под NT-like все как часы работало.


 
STANT ©   (2003-04-30 00:08) [6]

А можно так:
procedure TForm1.Button1Click(Sender: TObject);
var F:file;
begin
if not FileExists("C:\A.txt") then FileClose(FileCreate("C:\A.txt"))
ShellExecute(Handle,nil, Pchar("C:\A.txt"), nil, nil, SW_RESTORE);
end;


 
PGM   (2003-04-30 00:14) [7]

STANT> FileClose
Good. Это самое оно. Я и не заметил, что это в коде Palladin пропущено.


 
Anatoly Podgoretsky ©   (2003-04-30 00:39) [8]

Файл после создания открыт, занят!
Закрой до ShellExecute, примеры тебе привели.


 
mukha ©   (2003-04-30 22:18) [9]

procedure TForm1.Button1Click(Sender: TObject);
var F:File;
H:integer;
begin
if not FileExists("C:\A.txt") then
begin
H:=FileCreate("C:\A.txt");
if H=-1 then
begin
ShowMessage("Error");
exit;
end
else
begin
FileClose(H);
end;
end;
ShellExecute(Handle,nil,"C:\A.txt",nil,nil,SW_ShowNormal);
end;



Страницы: 1 вся ветка

Текущий архив: 2003.05.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
3-46662
Анна
2003-04-24 21:22
2003.05.15
Ссылочная целостность


1-46766
Azazello
2003-05-01 09:20
2003.05.15
О свойстве файла.


14-46949
Malder
2003-04-20 16:01
2003.05.15
BlueCon


8-46852
Городецкий Д.
2003-02-05 13:11
2003.05.15
Выполнение любого файла.


14-46895
Карлсон
2003-04-24 18:07
2003.05.15
win2k sp3