Главная страница
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.023 c
14-54173
Alexey Lipatov
2003-03-02 13:47
2003.03.17
А что скажут отцы ???


6-54145
Russu
2003-01-29 03:12
2003.03.17
Как узнать подключен ли в данный момент компьютер к инетрнету?


3-53853
Batman
2003-02-22 15:12
2003.03.17
Есть код ... что-то не так


14-54278
Pat
2003-02-27 17:57
2003.03.17
Схема для курсовика


7-54345
KEagle
2003-01-04 13:31
2003.03.17
Работа с портами в 2000 винде.