W
windflower
Unregistered / Unconfirmed
GUEST, unregistred user!
朋友们,请帮帮忙!谢谢!
我想从一个字符串变量(如“2000-10”中取出“-”左边的字符串,但我没在delphi中找到相应的函数
,因此我自己编了一段小程序,但调试中出现异常:
我的程序如下所示:
var
situation1:string[20]; //表示付款编号
str1:string[20];
str2:string[20];
i,j:integer;
found:boolean; //用于查找“-”
begin
situation1:=trim(edit1.Text) ;
//(如果用户输入的编号中有横杠)从输入的付款编号往右数的第一个横杠,此横杠以左的为所求编号
found:=false;
str1:=situation1;
i:=1;
while ((i<=20-1) and (not found)) do
begin
if (str1='-') then
begin
found:=true;
j:=i;
end;
i:=i+1;
end;
if found then
begin
for i:=1 to j-1 do
begin
str2:=str1;
end;
situation1:=str2;
end;
end;
在调试中edit1.text:='2000-10',我用单步调试发现:
i=5时,found=true,str1[1]='2',str1[2]='0',str1[3]='0',str1[4]='0',str1[5]='-',j=i=5;
但在str2:=str1中出现了一些怪字符,我最后把situation1的值用标签输出为'2000',
但在调试中situation1的值中有乱字符。
我后面的程序是根据situation1的值来进行数据库模糊查询:
with adoquery1 do
begin
with sql do
begin
close;
clear;
add('select *');
add('from 承付单表');
add('where(付款编号 like ''%'+situation1+'%'')');
end; //end with sql
end;
但运行到这儿系统出现错误提示:
unclosed quotation mark before the character string '%2000 '(注:0后的空格代表一个方框,因为不好画,只好代替)
我不知道delphi中有无可以很方便完成此功能的函数;也不知道对字符串数组的操作是否正确(我
很怀疑在i=1 to j-1(j=5)的赋值str2:=str1是否正确,还有即便str2(i从1到4)的值都
正确,那么怎样才能把正确的值赋给situation1呢。此外,我不敢肯定查询语句是否正确。
我想从一个字符串变量(如“2000-10”中取出“-”左边的字符串,但我没在delphi中找到相应的函数
,因此我自己编了一段小程序,但调试中出现异常:
我的程序如下所示:
var
situation1:string[20]; //表示付款编号
str1:string[20];
str2:string[20];
i,j:integer;
found:boolean; //用于查找“-”
begin
situation1:=trim(edit1.Text) ;
//(如果用户输入的编号中有横杠)从输入的付款编号往右数的第一个横杠,此横杠以左的为所求编号
found:=false;
str1:=situation1;
i:=1;
while ((i<=20-1) and (not found)) do
begin
if (str1='-') then
begin
found:=true;
j:=i;
end;
i:=i+1;
end;
if found then
begin
for i:=1 to j-1 do
begin
str2:=str1;
end;
situation1:=str2;
end;
end;
在调试中edit1.text:='2000-10',我用单步调试发现:
i=5时,found=true,str1[1]='2',str1[2]='0',str1[3]='0',str1[4]='0',str1[5]='-',j=i=5;
但在str2:=str1中出现了一些怪字符,我最后把situation1的值用标签输出为'2000',
但在调试中situation1的值中有乱字符。
我后面的程序是根据situation1的值来进行数据库模糊查询:
with adoquery1 do
begin
with sql do
begin
close;
clear;
add('select *');
add('from 承付单表');
add('where(付款编号 like ''%'+situation1+'%'')');
end; //end with sql
end;
但运行到这儿系统出现错误提示:
unclosed quotation mark before the character string '%2000 '(注:0后的空格代表一个方框,因为不好画,只好代替)
我不知道delphi中有无可以很方便完成此功能的函数;也不知道对字符串数组的操作是否正确(我
很怀疑在i=1 to j-1(j=5)的赋值str2:=str1是否正确,还有即便str2(i从1到4)的值都
正确,那么怎样才能把正确的值赋给situation1呢。此外,我不敢肯定查询语句是否正确。