Главная страница
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.012 c
1-46727
MAS
2003-05-04 21:45
2003.05.15
Математика


3-46667
_Narayan_
2003-04-25 09:58
2003.05.15
в хранимой процедуре


14-46911
A&N
2003-04-28 15:07
2003.05.15
Организация теста


3-46636
Belkova
2003-04-24 11:40
2003.05.15
SYSDBA-masterkey


8-46848
Step[B.M.]
2003-02-04 02:16
2003.05.15
Не могу в Blob-поле InterBase вставить BMP. Что не ТАК ?