to chechy(chechy): 我是这样定义及使用的: type databa=(dtproperties,syssegments,sysconstraints); 过程中: if value in databa then value:=''; 但在编译的时候,上面这句话总报错 [Error] Sjbf.pas(64): '(' expected but 'THEN' found 这是为什么?另外我从网上抄了一段程序,用于检测驱动器的类型,程序代码如下: var x:integer; driver:pchar; begin driver:='f:\'; x := GetDriveType(driver); Case x of 2: Label1.Caption := '该驱动器是可移动驱动器'; 3: Label1.Caption := '该驱动器是固定驱动器'; 4: Label1.Caption := '该驱动器是网络驱动器'; 5: Label1.Caption := '该驱动器是CD-ROM驱动器'; 6: Label1.Caption := '该驱动器是虚拟驱动器'; Else Label1.Caption := '该驱动器无效'; End; end; 当我选择硬盘驱动器时没有问题,但当我选择软驱、光驱、活动磁盘及网络驱动器时系统提示“I/O Error 21”请问这是为什么?(Win2000+Delphi5下测试) 而且如果可移动的驱动器中没有磁盘,程序怎样才能检测出来? (你也可以在论坛中找到该问题,在那里回答)
我的修改建议: type databa=(dtproperties,syssegments,sysconstraints); setdataba = set of databa; var value: databa; aset: setdataba; begin aset := [dtproperties,syssegments,sysconstraints]; ... if value in aset then ...另,我对IO操作不熟悉。我主要是研究数据库方向的,如MIDAS。
to chechy(chechy): 在我的程序中,value必须是String类型的,它要从ListBox中取值进行判断。
抱歉,集合类型不支持string,也不可能支持(集合实际上是通过位操作实现的,效率很高)所以如果这样,你就不得不作 if ... then else if ... then else if ... then
b: a;if 'a' in b then
...
我是这样定义及使用的:
type databa=(dtproperties,syssegments,sysconstraints);
过程中:
if value in databa then value:='';
但在编译的时候,上面这句话总报错
[Error] Sjbf.pas(64): '(' expected but 'THEN' found
这是为什么?另外我从网上抄了一段程序,用于检测驱动器的类型,程序代码如下:
var x:integer;
driver:pchar;
begin
driver:='f:\';
x := GetDriveType(driver);
Case x of
2: Label1.Caption := '该驱动器是可移动驱动器';
3: Label1.Caption := '该驱动器是固定驱动器';
4: Label1.Caption := '该驱动器是网络驱动器';
5: Label1.Caption := '该驱动器是CD-ROM驱动器';
6: Label1.Caption := '该驱动器是虚拟驱动器';
Else Label1.Caption := '该驱动器无效';
End;
end;
当我选择硬盘驱动器时没有问题,但当我选择软驱、光驱、活动磁盘及网络驱动器时系统提示“I/O Error 21”请问这是为什么?(Win2000+Delphi5下测试)
而且如果可移动的驱动器中没有磁盘,程序怎样才能检测出来?
(你也可以在论坛中找到该问题,在那里回答)
type
databa=(dtproperties,syssegments,sysconstraints);
setdataba = set of databa;
var
value: databa;
aset: setdataba;
begin
aset := [dtproperties,syssegments,sysconstraints];
...
if value in aset then ...另,我对IO操作不熟悉。我主要是研究数据库方向的,如MIDAS。
在我的程序中,value必须是String类型的,它要从ListBox中取值进行判断。
if ... then
else if ... then
else if ... then