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

Вниз

Есть ли возможность получить ошибку?   Найти похожие ветки 

 
ers   (2003-03-05 06:58) [0]

У меня есть такая запись S.SaveToFile(); И мне нужно получить у него ответ его выполнения Как это можно сделать? Как я понял он ответа не возвращает?
Или как можно предотвратить ошибку записи файла когда он "ЗАБЛОКИРОВАН", помогите плиз!


 
Bsl   (2003-03-05 07:52) [1]

try
except
end;


 
NAlexey ©   (2003-03-05 08:42) [2]

Посмотри, может что полезное:

procedure Read;
const
ERR = "Ошибка доступа к файлу: ""%s""! " +
"Файл может быть занят другим пользователем. ";
RET = "Повторить попытку?";
var
lFileName: String;
lFileStream: TMemoryStream;
Hn: HWND;
ReadBytes: Cardinal;
Res: integer;
i: integer;
begin
lFileName := Concat(PathSys, "\", ResName);
if FileExists(lFileName) then
try
lFileStream := TMemoryStream.Create;
try
repeat
for i := 0 to RepCount do
begin
Hn := CreateFile(PChar(lFileName), GENERIC_READ,
FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if Hn = INVALID_HANDLE_VALUE then Sleep(Interval) else Break;
end;
if Hn = INVALID_HANDLE_VALUE then
Res := Application.MessageBox(PChar(Concat(Format(ERR, [lFileName]), RET)),
"


 
vidiv ©   (2003-03-05 10:05) [3]

/// нее сильно помойму.
достаточно :

1) узнать какое исключение генерирутся, домустим EFileWriteError (я придумал наугад, чтобы узнать точно, необходимо просто симитровать ошибку и посмотреть...)
2) скажу кодом:
try
s.SaveToFile(filename);
except
on e:EFileWriteError do
begin
//обработчик ошибки, причем e.message - содержит инфу про ошибку
end;
end;


 
Intell ©   (2003-03-05 12:06) [4]

Чтение и запись TMemo


Чтение файла (назовём его "proba")


procedure TForm1.Button1Click(Sender: TObject);
var
f: textfile;
fname: string[80];
buf: string[80];
begin
fname:= "C:\proba.txt"; {Имя файла}
assignfile(f, fname);
{$i-}
reset(f);
{$i+}
if ioresult <> 0 then
begin
messagedlg("Внимание! Файл не найден!" +fname, mterror, [mbok], 0);
exit;
end;
while not eof(f) do
begin
readln(f, buf);
memo1.Lines.Add(buf);
end;
closefile(f);
end;



Запись в файл (назовём его "proba1")


procedure TForm1.Button2Click(Sender: TObject);
var
f:textfile;
fname:string[80];
i:integer;
begin
fname:="C:\proba1.txt";
assignfile(f, fname);
rewrite(f);
for i:=0 to memo1.Lines.Count do
writeln(f, memo1.Lines[i]);
closefile(f);
messagedlg("Успешно записано в " +fname , mtinformation, [mbok], 0);
end;


или как предложил Bsl:
try
{идёт сохранение}
except
{если возникла ошибка то...}
Так даже лучше.



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
3-53884
Garmahis
2003-02-24 19:32
2003.03.17
Delphi и SQL


3-53909
Klim Samgin
2003-02-25 12:31
2003.03.17
Interbase + массивы


14-54235
@lex
2003-02-27 16:52
2003.03.17
Посчитать угол по 3 точкам


14-54230
NicoLa__
2003-02-27 17:27
2003.03.17
Шкодинг и Гэйминг...


1-54015
Jaguar
2003-03-06 19:52
2003.03.17
Есть ли в Паскале/Delphi следующие операции...