有那位大虾研究过DELPHI带的DEMOS/DB/TEXTDATA例子?(50分)

  • 主题发起人 主题发起人 初学者1
  • 开始时间 开始时间

初学者1

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟能力确实有限,不知能否改为两个字段或更多字段。能提供原代码更好。有别的例子
也可。(分不够再加)[:(]
 
每人回答?
 
文本存成固定的格式(例如:列与列中间用制表符分隔)
用循环不就可以把表读出来了
 
ZIYY
我现在没办法,只好读出一条纪录,然后通过字符串运算,
如果我的文本存为一定格式,如每个数据之间用#分隔,我想知道如何将其绑定位几个字段
 
这么多大虾,难道没有人研究过?
 

有人看,没人答
最后一次提前,不浪费时间了
 
当然可以,只需设定ODBC就可以
 
TEXTDATA有用到BDE啦。。不符合你的要求了。。还是你自己写一个吧。。
 
>>forss 呵呵,我一用了别的方法,只是对这个问题感兴趣,其实,现在想,还有几个用文本存
数据,(老板要,没办法,作了一半,结果他听说acess可以满足要求,就要acess了,原来他非不用
acess,只要paradox)
http://www.delphibbs.com/delphibbs/dispq.asp?lid=701230,可以帮我看看,
现在用的是access库,设计时,由于我装了office2000,oledb是4.0 的
我们这边好多人都装2000,office97每人用,我想探测一下oledb的版本,如果没装,帮错误信息
好让我处理,,,,,,,,
>>homejun
不懂,如果分数不够,可以在加,还有10几分:)
 
哈,这个问题我正好刚研究过,而且用得蛮好。需要修改demo的源码才行,我贴出来吧:
(分数全给我噢!)

只要修改下面两个函数,我把字段定界符规定为逗号','(只为读ZoneAlarm防火墙日志
方便),你可以自己改成别的,一般用'|'做定界符。

function TTextDataSet.GetFieldData(Field: TField; Buffer: Pointer): Boolean;
var
i,n,j:integer;
pc,tmp:pchar;
begin
pc:=pchar(ActiveBuffer);
j:=0;
while (j<Field.Index) and (pc^ <> #0) do
begin
if pc^ = ',' then j:=j+1;
pc:=pc+1;
end;
// ActiveBuffer:=@pc;
tmp:=pc;
n:=0;
for i:=1 to Field.Size do
begin
if pc^ = ',' then break;
pc:=pc+1;
n:=n+1;
end;
// StrLCopy(Buffer, ActiveBuffer, Field.Size);
StrLCopy(Buffer, tmp, n);
Result := PChar(Buffer)^ <> #0;
end;

procedure TTextDataSet.SetFieldData(Field: TField; Buffer: Pointer);
var
i,n,j:integer;
pc,tmp:pchar;
begin
pc:=Buffer;
j:=0;
while (j<Field.Index) and (pc^ <> #0) do
begin
if pc^ = ',' then j:=j+1;
pc:=pc+1;
end;
tmp:=pc;
n:=0;
for i:=1 to Field.Size do
begin
if pc^ = ',' then break;
pc:=pc+1;
inc(n);
end;
// i:=strlen(Buffer)-strlen(pc);
StrLCopy(ActiveBuffer, tmp, n);
// StrLCopy(ActiveBuffer, Buffer, Field.Size);
DataEvent(deFieldChange, Longint(Field));
end;
 
呵呵
终于有大虾来了,别急,等我试过以后,绝对给你,好,如果可以,全给你
 
晴天>>
ok,可以,加分!
另外,如果你有改为query的原码,我另外开一个问题.在加50,,
先等你的消息,明天晚上以前给你加这50分
 
接受答案了.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
837
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部