假如有一条字符串 “ 5#30#6#京DL0008 ”通过什么办法,可以将 “#”号,两边的数据全部取出来赋给一些变量或数组,供其他地方使用?比如,取出的数据应该如下:x1=5
x2=30
x3=6
x4=京DL0008 或也可以付给数组,如:
x[1]=5
x[2]=30
x[3]=6
x[4]=京DL0008
反正读取数据后,能赋给一些变量可供其他地方使用就行。请大哥们,提供一些详细的代码,谢谢了!
x2=30
x3=6
x4=京DL0008 或也可以付给数组,如:
x[1]=5
x[2]=30
x[3]=6
x[4]=京DL0008
反正读取数据后,能赋给一些变量可供其他地方使用就行。请大哥们,提供一些详细的代码,谢谢了!
var
st:Tstringlist;
s:array[0..30] of string;
i:integer;
begin
st:=tstringlist.Create;
st.Delimiter:='#';
st.DelimitedText:='5#30#6#京DL0008 ';
for i:=0 to 3 do
s[i]:=st.Strings[i];
st.Free;
end;
var
ss:TStringlist;
begin
ss:=TStringlist.Create;
ss.Delimiter:='#';
ss.DelimitedText:=str;
result:=ss;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.Text:=GetStrs('5#30#6#京DL0008 ').Text;
end;
var
st:Tstringlist;
s:array[0..30] of string;
i:integer;
begin
st:=tstringlist.Create;
st.Delimiter:='#';
st.DelimitedText:='5#30#6#京DL0008 ';
for i:=0 to 3 do
s[i]:=st.Strings[i];
st.Free;
end;有问题,好像循环不对吧?提示有错啊
procedure TForm1.Button1Click(Sender: TObject);
var
st:Tstringlist;
s:array[0..3] of string[30];
i:integer;
begin
st:=tstringlist.Create;
st.Delimiter:='#';
st.DelimitedText:='5#30#6#京DL0008 ';
for i:=0 to 3 do
s[i]:=st.Strings[i];
st.Free;
end;
[Warning] Unit1.pas(38): For loop control variable must be simple local variable
错
返回值不是一个TStringlist类型的吗,定义一个TStringlist类型的变量不就行了
例如:
procedure TForm1.Button1Click(Sender: TObject);
var
ss:TStringlist;
begin
ss:=GetStrs('5#30#6#京DL0008 ');
//ss这个字符串列表中存的就是你要的数据
//例如你要取第一个数5,那就这样
showmessage(ss[0]);
//例如你要取第二个数30,那就这样
showmessage(ss[1]);
//例如你要取第三个数6,那就这样
showmessage(ss[2]);
//例如你要取第四个字符串京DL0008 ,那就这样
showmessage(ss[3]);
//注意,用完ss之后,要释放
ss.free;
end;
var
x:integer;
str:string;
x:=strtoint(s[0]);
str:=s[3];
var
s: String;
strs :TStrings;
i :Integer;
begin
s := '5#30#6#京DL0008';
strs := TStringList.Create;
strs.Delimiter := '#';
strs.DelimitedText := s;
for i := 0 to Strs.Count-1 do
ShowMessage(Strs[i]);
end;