问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

delphi关于字符串的截取问题

发布网友 发布时间:2022-04-22 11:10

我来回答

3个回答

热心网友 时间:2023-10-12 01:27

解决了没有啊? 

1,数组 

type 

tstringarray = array of string;//由于function的返回类型只接受一个单词的类型,在这里把array of string重命名为tstringarray,下边的所有array of string均可以用tstringarray来替换。 

function splitstr(str: string): tstringarray; 

var 

tmpstr, s1, s2: string; 

i, j, k, strcount: integer; 

begin 

j := 1; 

strcount := 0; 

k := 0; 

tmpstr := trim(str); 

for i := 1 to length(tmpstr) - 1 do 

begin 

s1 := tmpstr[i + 1]; 

s2 := tmpstr[i + 2]; 

if (s1 = ' ') and (s2 <> ' ') or (s2 = #0) then 

begin 

inc(strcount); 

setlength(result, strcount); 

result[strcount - 1] := copy(tmpstr, k, j); 

k := i + 2; 

j := 1; 

end 

else 

inc(j); 

end; 

end; 

procere TForm1.Button1Click(Sender: TObject); 

var 

astr: tstringarray; 

i: integer; 

str: string; 

begin 

astr := splitstr(edit1.Text); 

for i := low(astr) to high(astr) do 

begin 

str := str + astr[i]; 

listbox1.Items.Add(str); 

end; 

end; 

2,用tstringlist来解决。 

------------------------------------------------- 

function splitstr(str: string; split: string = ' '): tstringlist; 

var 

tmp: string; 

i: integer; 

begin 

tmp := trim(str); 

for i := length(tmp) downto 1 do 

if tmp[i - 1] = ' ' then 

insert(',', tmp, i); 

result := tstringlist.Create; 

result.DelimitedText := tmp; 

result.Delimiter := ','; 

end; 

procere TForm1.Button1Click(Sender: TObject); 

var 

strlist: tstringlist; 

i: integer; 

begin 

strlist := tstringlist.Create; 

strlist := splitstr(edit1.Text); 

for i := 0 to strlist.Count - 1 do 

listbox1.Items.Add(strlist.Strings[i]); 

end;

热心网友 时间:2023-10-12 01:27

procere TForm1.Button1Click(Sender: TObject); 

var 

str,str1: string; 

i,j: integer; 

begin 

Str:='AAA BB CCC DD'; 

Str:=trim(Str);        //去除尾部空格。

str1:=''; 

For i:=1 to length(Str) do 

begin 

if (str[i]=' ') and (str[i+1]<>' ') then 

begin 

for j:=1 to i do 

str1:=str1+str[j]; 

memo1.Lines.Add(str1); 

str1:=''; 

end; 

end; 

Memo1.Lines.Add(str); 

end;

热心网友 时间:2023-10-12 01:27

好吧,重新改了一下,试试下面这段,应该完全可以满足你的要求.

结合了deadowl判断最后一个空格的方法 (if str='') and (str[i+1]<>'').

代码如下:

function Parsestr(str:string):TStringList;

var

 tempstr:string;

 temppos:integer;

 i:integer;

begin

if str='' then

begin

exit;

end;

result:=tstringlist.Create;

str:=trim(str);

temppos:=0;

for i:=0 to Length(str) do

begin

  if (str[i]=' ')and(str[i+1]<>' ') then

  begin

  tempstr:=Copy(str,temppos,i-TEMPPOS);

  tempstr:=Trim(tempstr);

  Result.Add(tempstr);

  temppos:=i;

  end;

  if i=Length(str) then

  begin

  tempstr:=Copy(str,temppos,i);

  tempstr:=Trim(tempstr);

  result.Add(tempstr);

  end;

end;

end;

以上函数解析每一个符合要求的字符串保存在tstringlist当中.

每行为单独的字符串,这样可以方便后续对解析出的字符串扩展应用.

比数组直观一点.实在要用数组就自己变通一下.

如果要按照你要求的那样排列字符串的话可以用以下函数:

function ShowStr(stringlist:TStringList):Tstringlist;

var

 i,k:integer;

begin

result:=tstringlist.Create;

if not Assigned(stringlist) then

begin

result.text:=':(';

Exit;

end;

for i:=0 to stringlist.Count-1 do

begin

  result.Add(stringlist[0]);

  for k:=1 to i do

  begin

  Result[i]:=Result[i]+' '+stringlist[k];

  end;

end;

end;

到此为止,这两个函数搭配使用已经完全可以满足你的要求了,看,有分的服务就不同的拉.

效果可参见附件图片

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
急求贺新婚对联和诗 喜有高朋赠厚礼求下联 评价饭菜好吃的评语 为什么跑步会让我有抽烟的感觉? 国家有对出差补助规定吗? 孤独症常见的筛查量表有哪些 CARS孤独症评量表(自测) 儿童自闭症(孤独症)家长评定量表(ABC) 二十四节气下各类蔬菜种植的时间表是怎样的 冬至可以种什么蔬菜 政府办公室里可以抽烟吗? delphi中 怎样截取字符串 同事在办公室抽烟怎么办 delphi中查询字符长度 办公室抽烟违法吗 delphi提取字符串 办公室内法律规定能抽烟吗? 请问delphi中怎样获取edit控件中输入字符的长度 在办公室抽烟违法吗 delphi如何获取字符的大小?? delphi 怎样获取listbox里第 i 行字符串的长度 Delphi 字符串有多少个字节的函数是什么 梦见赌博被警察抓到后又跑掉了警察的追捕,这梦好不? 梦见被*抓住了是什么意思 404 Not Found 我梦见警察想抓我但被我跑掉了,这梦好吗? 梦见我被*抓走的预兆 海信电视65k5510U K歌用什么软件和麦克风 海信65e52d可以K歌吗 WinHide是什么,怎么用? delphi截取字符串 办公室有人抽烟怎么办? 用delphi截取字符串的方法。。。 对于在办公室抽烟的领导怎么制止,在线等 delphi 读取字符串问题 delphi 如何求得文本输入框中的字符串的长度 同事经常在办公室偷偷抽烟,该不该举报他? 关于delphi字符长度的问题? 公务员在办公室抽烟怎么处理 delphi,字符串截取。 领导喜欢在办公室内抽烟,怎么办? delphi 获取字符串之间多个字符内容 办公室的人抽烟怎么办 delphi 截取字符串 在线求,领导总是在办公室里抽烟怎么办? Delphi 字符串太长怎么办 Delphi中用来截取字符的函数,以及使用方法? 同事总在办公室抽烟,要怎么办
  • 焦点

最新推荐

猜你喜欢

热门推荐