線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1622
推到 Plurk!
推到 Facebook!

EInOutError 出错

缺席
xxiaowang
中階會員


發表:51
回覆:75
積分:55
註冊:2005-01-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-16 09:29:36 IP:58.60.xxx.xxx 訂閱
 用Delph8, 这句有错:

raise EInOutError.Create('xxxxxx");

错误信息: undeclared identifier einouterror

uses 已经有 sysutils.

谢谢!
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-16 10:47:49 IP:118.168.xxx.xxx 未訂閱
您好,

EInOutError 是一個列舉的值, 不是物件, 所以 .create 是錯誤的

請參考用法.
except
// IO error
On E : EInOutError do
ShowMessage('IO error : ' E.Message);
// Dibision by zero
On E : EDivByZero do
ShowMessage('Div by zero error : ' E.Message);
// Catch other errors
else
ShowMessage('Unknown error');
end;
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
xxiaowang
中階會員


發表:51
回覆:75
積分:55
註冊:2005-01-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-16 11:22:13 IP:116.24.xxx.xxx 訂閱
谢谢,

但怎样主动 Raise 一个EInOutError 呢?


st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-03-16 12:00:11 IP:122.116.xxx.xxx 未訂閱
您好,

非常對不起, 我說錯了,

我自己在程式中寫
IF not directoryexists('c:\test2\') THEN BEGIN
raise EInOutError.Create('C:\TEST2\ NOT EXISTS');
END;
可以用, 沒發生 UNDECLARE 錯誤.

請問您 USES SYSUTILS 是在 INTERFACE 段還是 IMPLEMENTATION 段 ?
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
編輯記錄
st33chen 重新編輯於 2009-03-16 12:01:14, 註解 無‧
st33chen 重新編輯於 2009-03-16 12:27:54, 註解 無‧
xxiaowang
中階會員


發表:51
回覆:75
積分:55
註冊:2005-01-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-03-16 12:59:41 IP:121.35.xxx.xxx 訂閱
这是我的代码,蓝色那句出错: 

unit SULog;
interface
const
FILENAME_LOG = 'C:\FTPLOG.TXT';
procedure InitializeLog;
procedure LogIt(const sLogText: String);
procedure LogToFile(const sLogText: String; sFileName: String);

implementation
uses
SysUtils;
procedure InitializeLog;
begin
if FileExists(FILENAME_LOG) then
eleteFile(FILENAME_LOG);
end;
procedure LogIt(const sLogText: String);
begin
LogToFile(sLogText,FILENAME_LOG);
end;
procedure LogToFile(const sLogText: String; sFileName: String);
var
F : TextFile;
begin
sFileName := SysUtils.Trim(sFileName);
if sFileName = '' then
raise EInOutError.Create('Blank file name passed to LogToFile');
AssignFile(F,sFileName);
if FileExists(sFileName) then
Append(F)
else
Rewrite(F);
try { finally }
Writeln(F,sLogText);
Flush(F); // just in case
finally
CloseFile(F);
end;
end;
end.
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-03-16 13:48:30 IP:59.112.xxx.xxx 訂閱
我用的是D7
我抓你整個code 下來編譯,只有 eleteFile(FILENAME_LOG); 少一個 D
其他完全正常,可以run耶


===================引 用 xxiaowang 文 章===================
这是我的代码,蓝色那句出错:

unit SULog;
interface
const
FILENAME_LOG = 'C:\FTPLOG.TXT';
procedure InitializeLog;
procedure LogIt(const sLogText: String);
procedure LogToFile(const sLogText: String; sFileName: String);

implementation
uses
SysUtils;
procedure InitializeLog;
begin
if FileExists(FILENAME_LOG) then
eleteFile(FILENAME_LOG);
end;
procedure LogIt(const sLogText: String);
begin
LogToFile(sLogText,FILENAME_LOG);
end;
procedure LogToFile(const sLogText: String; sFileName: String);
var
F : TextFile;
begin
sFileName := SysUtils.Trim(sFileName);
if sFileName = '' then
raise EInOutError.Create('Blank file name passed to LogToFile');
AssignFile(F,sFileName);
if FileExists(sFileName) then
Append(F)
else
Rewrite(F);
try { finally }
Writeln(F,sLogText);
Flush(F); // just in case
finally
CloseFile(F);
end;
end;
end.
------
額有朝天骨,眼中有靈光
xxiaowang
中階會員


發表:51
回覆:75
積分:55
註冊:2005-01-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-03-17 10:33:05 IP:116.7.xxx.xxx 訂閱
用回 D7 好了,Delphi8 不熟。
系統時間:2024-05-15 4:41:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!