如 Str:='12345,abcdef,87654,uytre'分解成
Str1:='1234';
Str2:='abcdef';
Str3:='87654';......
如果不用TStringList的话有没有好的方法?
Str1:='1234';
Str2:='abcdef';
Str3:='87654';......
如果不用TStringList的话有没有好的方法?
解决方案 »
- 用adoquery控件的sql属性添加记录时,当某些字段为空时,就会报错
- 如何取出一字符串中的后几个字符.并输出.
- 各位大侠帮忙?(非技术)
- 有关数据库的别名!各位多多指教!
- 青岛的程序员:有谁想做这个软件的兼职?(软件外包)
- 如何在运行程序时使窗体不可见,只留下系统托盘区的程序图标?
- 那位有clientsocket和serversocket发送stream或text的例子,收到立即送100分([email protected])
- 如何设回屏幕的分辨率?
- 如何从一个激活的窗体写代码使别外的一个窗体中的构件。。。。??
- 在线等待中!
- 这段程序老有问题那位高人能告诉我是怎么回事?(100分)up有分
- 使Windows窗口闪动的API函数是什么?
a:array[1..3]of integer;
i:integer;
begin
for i:=1 to 3 do
a[i]:=pos (str,',');
str1:=copy(str,1,a[1]-1);
str2:=copy(str,a[1]+1,a[2]-1);
end;
大概是这么个意思,没测试
Pos(',', str)
Copy(str, x, Pos(',', str)
自己组合组合联想联想
Strings: TStrings): Integer;其中:
Separators 就是分隔符集合,如 [',']
WhiteSpace 指前面可以忽略的字符集合,一般传空即可:[]
Content 就是待分割的字符啦
Strings 就是存放分割后各字符串的列表啊
l:integer;
tempstr:string;
begin
l:=0;
tempstr:='';
for i:=1 to Length(Str) do
begin
if str[i]=',' then
begin
l:=l+1;
Case l do
1:str1:=tempstr;
2:str2:=tempstr;
end;
tempstr:='';
Continue;
end;
tempstr:=tempstr+str[i]
end;
var
str: String;
Str1: TStringList;
begin
Str1 := TStringList.Create;
Str:='12345,abcdef,87654,uytre';
Str1.CommaText := Str;
ShowMessage(Str1[0]);
ShowMessage(Str[1]);
end;
var
s,s1:string;
str,str1:TStringList;
i,j,m,n:integer;
begin
str:=TStringList.Create;
str.Clear;
str1:=TStringList.Create;
str1.Clear;
s:='124312,fsdfs,4234,fsdf';
i:=length(s);
for j:=1 to i do
begin
if s[j]=',' then
str.Add(inttostr(j));
end;
m:=str.Count;
if m>0 then
begin
for n:=0 to m-1 do
begin
if n=0 then
begin
s1:=copy(s,1,strtoint(str.Strings[n])-1);
str1.Add(s1);
end
else
begin
s1:=copy(s,strtoint(str.Strings[n-1])+1,strtoint(str.Strings[n])-strtoint(str.Strings[n-1])-1);
str1.Add(s1);
end;
end;
if strtoint(str.Strings[m-1])<i then
begin
s1:=copy(s,strtoint(str.Strings[m-1])+1,i-strtoint(str.Strings[m-1]));
str1.Add(s1);
end;
end;
i:=str1.Count;
for j:=0 to i-1 do
showmessage(str1.Strings[j]);
end;