Форум: "Основная";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];
ВнизЕсть ли возможность получить ошибку? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c