入:
(Table1.fieldbyname('MyBlobField') as TBLOBField).loadfromfile('c:\aa.txt');
出:
(Table1.fieldbyname('MyBlobField') as TBLOBField).savetofile('c:\aa.txt');
(Table1.fieldbyname('MyBlobField') as TBLOBField).loadfromfile('c:\aa.txt');
出:
(Table1.fieldbyname('MyBlobField') as TBLOBField).savetofile('c:\aa.txt');
你误会我的意思了!我指的是多个字段由一个文本文件导入到表,这个文本文件是有一定规则的,如:
aa,123,kkk,(bolob),13134,20001-1-1
adaa,23,kk,(bolob),3134,20001-11-16
filetype=Fixed
charset=ascII
Field1=FieldName,Field Type,size,..
field2=num,MUMBER,16,
...数据文件:
aa,123,kkk,(bolob),13134,20001-1-1
adaa,23,kk,(bolob),3134,20001-11-16后面用TTable组件。
procedure TForm1.Button1Click(Sender: TObject);
var
Src, Data: TStrings;
i, p: Integer;
s: String;
begin
Src := TStringList.Create;
Src.Assign(Memo1.Lines); // Src.Loadfromfile也行,可以用你上面的例试。
Data := TStringList.Create;
for i:=0 to Src.Count-1 do
begin
Data.Clear;
s := Src[i];
while Length(s)>0 do
begin
p := Pos(',', s);
if p<1 then
begin
Data.Add(s);
break;
end;
Data.Add(Copy(s, 1, p-1));
s := Copy(s, p+1, MaxInt);
end;
ShowMessage(Data.Text); // 现在Data的每行就是一字段了,可以写数据库。
end;
Src.Free;
Data.Free;
end;
字段1//类型是int
文本数据1='123'
但你在做把"字段1='123'"时必须判断"字段1"的数据类型这种做法较麻烦万一"文本数据1"的值是'123a'来说那还要判断"文本数据1"的数据类型.所以我现在要的是一种较简单的做法,有没有更好方法来解决这种事情?
我很感谢大家给我提这么多意见,小弟在这谢谢了!
'123',645,true,'sdfhgs','sadfjas'
这样不就可以分清数据类型了吗
只不过要在ether提供的函数中加一些区分'的函数即可
StrToInt()或StrToIntDef之类函数作转换。
也可以参考bigfox的方法,不过您认为“123”是整型还是浮点性?“HELLO!”是
varchar还是memo? :)
如果你的文件格式象上面的举例,根本无法准确识别类型的,只能靠自己判断。