我读取INI文件里的一项
[set]
dot=1,2,4,6,7,12,15...等等
我读取后要达到dot1=true dot2=true dot4=true dot6=true....的目的。用Dotstr:=g.ReadString('set','dot','-1')读取后,怎么把这个字符串拆分?
[set]
dot=1,2,4,6,7,12,15...等等
我读取后要达到dot1=true dot2=true dot4=true dot6=true....的目的。用Dotstr:=g.ReadString('set','dot','-1')读取后,怎么把这个字符串拆分?
var
reg: TPerlRegEx;
List: TStrings;
i: integer;
begin
List := TStringList.Create;
reg := TPerlRegEx.Create(nil); reg.Subject := 'aaa,bbb,ccc,ddd';
reg.RegEx := ','; reg.Split(List,MaxInt); { 输入一个最大整数, 表示能分多少就分多少} ShowMessage(List.Text);
{返回:
aaa
bbb
ccc
ddd
} for i:= 0 to List.Count -1 do
(FindComponent('Dot'+List.Strings[i]) as TcxRadioButton) FreeAndNil(reg);
List.Free;
end;
var
i: integer;
dot: String;
strlist: TStringList;
begin
dot := '1,2,4,6,7,12,15';
strList := TStringList.Create;
try
strList.Delimiter := ',';
strList.DelimitedText := dot;
for i:=0 to strList.Count-1 do
begin
showmessage(strList[i]);
end;
finally
strList.Free;
end;
end;
strList := TStringList.Create;
strList.Delimiter := ',';
strList.DelimitedText := rtu1;
for i:=0 to strList.Count-1 do
begin
dot:=strtoint(strList[i]);
data[dot]:=true; //此点是16位数据
end;
var
str,str1: String;
begin
str := '1,2,4,6,7,12,15';
if pos(',',str)<>0 then
begin
str1 := copY(str,0,pos(',',str)-1);
str := copY(str,pos(',',str)+1,length(str)-pos(',',str));
end else
str1 := str;
end;
用pos,copy 一个个去取吧,可以自己写个函数
for i:=0 to length(str)do
begin
if str[i]<>',' then
begin
dot:=strtoint(str[i]);
data[dot]:=true; //此点是16位数据
end;
end;
我这样写有错没?能实现吗
sl:= TStringList.Create;
try
sl.Text:= stringreplace('1,2,4,6,8',',',#10,[rfReplaceAll]);
showmessage(sl.Strings[3]); //第4个
finally
sl.Free;
end;
var
i : Integer;
begin
Result := '';
for i:=1 to Length(sCStr) do
begin
if sCStr[i] = sSign then
begin
Result := Copy(sCStr,1,i-1);
Delete(sCStr, 1, i);
Break;
end;
end;end;sString:=SplitsElement(',');
begin
if trim(sl.strings[i]) <> '' then
data[strtoint(sl.strings[i])]:= true;
end;
var
strlist: TStringList;
begin
strlist := TStringList.Create;
try
getStr('1,2,4,6,7,12,15',strlist);
showmessage(strList.Text);
finally
strList.Free;
end;
end;function TForm1.getStr(str: String;var StrList: TStringList): Boolean;
var
str1: String;
begin
try
while not pos(',',str)<>0 do
begin
if pos(',',str)<>0 then
begin
str1 := copY(str,0,pos(',',str)-1);
str := copY(str,pos(',',str)+1,length(str)-pos(',',str));
strList.Add(str1);
end else
begin
str1 := str;
strList.Add(str1);
break;
end;
end;
result := true;
except
result := false;
end;
end;