如何用Delphi分别获取这些字符串
注册表里一个注册表项存着这些信息<MacroChatchat0='测试0'chat1='测试1'chat2='测试2'chat3='测试3'chat4='测试4'chat...
注册表里一个注册表项存着这些信息 <MacroChat chat0='测试0' chat1='测试1' chat2='测试2' chat3='测试3' chat4='测试4' chat5='测试5' chat6='测试6' chat7='测试7' chat8='测试8' chat9='测试9'/>
我把这个注册表键值读取出来了赋值给macrochat(string类型的)
现在要把这写文本分别读取出来分给10个变量,str0,str1,str2,str3,str4,str5,str6,str7,str8,str9 分别把chat0-9内的文本赋给str0-9的变量里,chat0-9里的文本长度是不一定的,请问怎么获取这10段内容赋给10个变量?回答好我多加分!!! 展开
我把这个注册表键值读取出来了赋值给macrochat(string类型的)
现在要把这写文本分别读取出来分给10个变量,str0,str1,str2,str3,str4,str5,str6,str7,str8,str9 分别把chat0-9内的文本赋给str0-9的变量里,chat0-9里的文本长度是不一定的,请问怎么获取这10段内容赋给10个变量?回答好我多加分!!! 展开
展开全部
难道你觉得有技术难题吗?
其实只是麻烦一点而已,提示使用下面的三个函数既可:pos、copy、delete
函数的具体参数你可以查DELPHI的帮助,打了这个单词之后按F1。
具体是思路是用两个pos获取空格位置,delete删除空格前的部分,再用pos获取下一个空格位置,copy出第2个空格之前的内容,进行识别,然后删除第二个空格之前的内容,如此反复。
其实只是麻烦一点而已,提示使用下面的三个函数既可:pos、copy、delete
函数的具体参数你可以查DELPHI的帮助,打了这个单词之后按F1。
具体是思路是用两个pos获取空格位置,delete删除空格前的部分,再用pos获取下一个空格位置,copy出第2个空格之前的内容,进行识别,然后删除第二个空格之前的内容,如此反复。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你这些chat之间是固定用某个字符来分隔的话(比如空格),可以用TStringList来自动拆分
var
S: TStringList;
begin
S := TStringList.Create;
S.Delimiter := ' ';
S.DelimitedText := 'chat0='测试0' chat1='测试1' chat2='测试2' chat3='测试3' chat4='测试4' chat5='测试5' chat6='测试6' chat7='测试7' chat8='测试8' chat9='测试9'';
end;
这样就OK了
如果不懂得怎么从TStringList里把这些东东读出来的话……那就自己去查帮助吧……
var
S: TStringList;
begin
S := TStringList.Create;
S.Delimiter := ' ';
S.DelimitedText := 'chat0='测试0' chat1='测试1' chat2='测试2' chat3='测试3' chat4='测试4' chat5='测试5' chat6='测试6' chat7='测试7' chat8='测试8' chat9='测试9'';
end;
这样就OK了
如果不懂得怎么从TStringList里把这些东东读出来的话……那就自己去查帮助吧……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
uses
SysUtils, Classes; //这里用 classed
var
S: TStringList;
macrochat:string;
str0,str1:string;
begin
macrochat:='<MacroChat chat0=''测试0'' chat1=''测试1'' chat2=''测试2'' chat3=''测'+
'试3'' chat4=''测试4'' chat5=''测试5'' chat6=''测试6'' chat7=''测试7'' chat8=''测试8'' chat9=''测试9''/>';
//macrochat是你已经取好的值,为了测试我重新赋值,不用管这个了
//使用下面的。
S := TStringList.Create;
S.Delimiter := ' ';
S.DelimitedText :=copy(macrochat, 12, length(macrochat)-2-11);
str0:=Copy(S.ValueFromIndex[0],2,length(S.ValueFromIndex[0])-2);
str1:=Copy(S.ValueFromIndex[1],2,length(S.ValueFromIndex[1])-2);
//str2...依次类推
S.Free;
end;
SysUtils, Classes; //这里用 classed
var
S: TStringList;
macrochat:string;
str0,str1:string;
begin
macrochat:='<MacroChat chat0=''测试0'' chat1=''测试1'' chat2=''测试2'' chat3=''测'+
'试3'' chat4=''测试4'' chat5=''测试5'' chat6=''测试6'' chat7=''测试7'' chat8=''测试8'' chat9=''测试9''/>';
//macrochat是你已经取好的值,为了测试我重新赋值,不用管这个了
//使用下面的。
S := TStringList.Create;
S.Delimiter := ' ';
S.DelimitedText :=copy(macrochat, 12, length(macrochat)-2-11);
str0:=Copy(S.ValueFromIndex[0],2,length(S.ValueFromIndex[0])-2);
str1:=Copy(S.ValueFromIndex[1],2,length(S.ValueFromIndex[1])-2);
//str2...依次类推
S.Free;
end;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
讲起来比较麻烦,提醒你一下, 用xml来做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询