Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
14-46940
Astarot
2003-04-24 14:08
2003.05.15
Механизмы работы БД


3-46666
Lony
2003-04-19 22:55
2003.05.15
Почему нельзя воспользоваться этим кодом?


14-46998
Dimaz-z
2003-04-24 19:41
2003.05.15
Компонент для работы с архивами.


8-46862
xn0bys
2003-01-30 13:49
2003.05.15
Мигание Image м


14-46936
ZeroDivide
2003-04-23 16:06
2003.05.15
Delphi challenge. Авторские права и стимул соревнований




   Наверх