SELECT语句中,FOXPRO与DELPHI字符串不匹配(100分)

  • 主题发起人 lianggan2
  • 开始时间
L

lianggan2

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是FOXPRO的数据库,数据库是用户输入的,其中有一个字段是名字(name),假设我先把一个人的名字读到
一个字符串当中,然后某一时刻又需在数据库中查询,'select * from dbf c where
c.name='''+string1'''';但出现错误‘不认识的字段/关键字’,然后就是引号错误,我去查看原数据库。发现名字后有
不可显示的字符如‘张三 ’,跟踪程序,发现实际上这个字段在库中为'张三'#$c4,在foxpro库中显示为'张三'后面一个空格
请问怎么把这个#$c4去掉,我用过trim函数但没用,trim后还是'张三'#$c4
 
安装一个foxpro后在其中打开并修改
 
用stringreplace函数,代码:
string1 := StringReplace(string1,#$c4,'',[rfReplaceAll]);
 
关键是我要在程序里实现修改,总不能让用户打开foxpro 查看没错误时,再使用程序吧
 
替换之后,再执行你的查询。
 
先把你的不可见字符替换掉。
 
这是半个中文字的问题,你可以做个过滤过程,判断中文数是否配对。
for i:=0 to Length do
begin
if ord(str)>128 then //中文
j:=j+1; //记录中文字符数
end;
if odd(j) then //奇数,去掉最后一个字符


如果中间有英文分段处理
 
多人接受答案了。
 
顶部