注册 登录
编程论坛 Delphi论坛

[求助]用delphi或vb编写一个小程序来自动比对字段值是否相同?

hxzz 发布于 2008-10-14 14:26, 1592 次点击
如何用delphi或vb编写一个小程序来自动比对字段值是否相同? 我是新手,思路有,求代码。

数据库 A 中字段 a 的值为 abc
数据库 B 中字段 b 的值为 s1@s2@s3@abc@s4,其中s1-s4分别表示长度不等的字符串,但 abc 所在的位置固定,即在第3个 @ 之后。

另:
如果 b 字段值的写法为:
s1@s2@a@s4
s1@s2@b@s4
s1@s2@c@s4
就是将abc分别放到了3行当中,程序该如何写呢?


望大家不吝赐教,谢谢!
3 回复
#2
xu20002008-10-14 14:58
我自己有一个字符串分离的函数,可用到楼主上。
function xusGetWord(const Str, Split: string; const nWord: Integer): string;
var
  sTemp: string;
  I, J: Integer;
begin
  sTemp := Str;
  Result := Str;
  I := 0;
  while I <= nWord do begin
    J := Pos(Split, sTemp);
    if J = 0 then J := Length(sTemp) + 1;
    Result := Copy(sTemp, 1, J - Length(Split));
    sTemp := Copy(sTemp, J + 1, Length(sTemp));
    Inc(I);
  end;
end;
判断的时用Q.FieldByName('A').AsString = xusGetWord(Q.FieldByName('B').AsString, '@', 2)就可以了。
第二问题就靠楼主自已解决了。
#3
xu20002008-10-14 15:00
对了,我总觉得我的这个函数的算法不够快,哪位高手能帮忙改下。
#4
hxzz2008-10-14 16:01
谢谢xu2000版主的热心帮助!

[[it] 本帖最后由 hxzz 于 2008-10-15 21:26 编辑 [/it]]
1