Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.009 c
1-54049
lejik
2003-03-05 08:49
2003.03.17
ActionList


14-54202
Вася Добрый
2003-03-01 10:17
2003.03.17
Фрактал


14-54223
sancho
2003-02-27 16:16
2003.03.17
Как узнать t процессора?


1-54087
Hiks
2003-03-05 14:32
2003.03.17
перевод из одной численной системы в другую


6-54154
dumb
2003-01-27 09:10
2003.03.17
Быстрый gethostbyaddr





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский