为什么我截取不成功?(50分)

  • 主题发起人 主题发起人 chi8
  • 开始时间 开始时间
C

chi8

Unregistered / Unconfirmed
GUEST, unregistred user!
下面是我写的一个截取一个字段中的满足条件的东东的代码
要求:字段只有逗号做分隔,出现在最前面的逗号就要删掉,没有的话,读取到下一个逗号和开始位置之间的字符
function quzi( ss:string): string;
var
n1,n2,i1:integer
find:Boolean;
begin
n1:= 1;
n2:= 1;
i1:=1;
while (length(ss) > 0) and (n1 > 0) do
begin
Find := False;
while not find do
begin
n1 := pos(’,’, ss);
if n1=1 then
begin
system.delete(ss, 1, n1+1);//好像没 起作用?请执教
end;
n1 := pos(’,’, ss);
if n1= 0 then
Find:= True;
end;

ss:= copy(ss, 1, n1-1)
//读出数据
result:=ss;

end;
end;
 
system.delete(ss, 1, 1)
 
不能指定删第一个阿,因为不能肯定是不是删除阿
 
注意逗号的大小写(全角或半角)问题

ss:=system.delete(ss, 1, n1+1)
 
一个递归,字符串格式 sadfsdaf,324324,sadf234,
分别把部分读入一个listbox 中
代码随手写的,没经过调试,如果有问题自己调试,不过肯定方法可行。
function tform1.getdatatolist(str: string):boolean;
var
tmpstr: string;
begin
listbox.items.clear

while (pos(',',str)<>0) do
begin
listbox1.items.add(Copy(Str,1,pos(',',str)-1));
tmpstr:= copy(Str,pos(',',str),length(str));
str:= copy(tmpstr,2,length(str));
end;
end;
 
ExtractStrings([','],[],PChar(s),stringlist);
然后判断第一个是否是空,是则删除,留下的就是以,分开的字符串列表
 
我再次实验,
现在只能判断英文的逗号,汉字不知道怎么不行,有高手能知道怎么处理吗?
 
汉字- function xxxx(str: widestr):string;
 
的确是全角跟半角的问题
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部