delphi 关于Tstringlist分割符的问题
begin//ifRzPageControl1.Pages:=1then//beginlst:=TStringlist.Create;tlst:=TStringlist....
begin
//if RzPageControl1.Pages := 1 then
//begin
lst:=TStringlist.Create;
tlst:=TStringlist.Create;
lst.LoadFromFile('itemset.txt');
tlst.Delimiter := #9;
tlst.DelimitedText := lst.Strings[0];
for i:= 0 to tlst.Count - 1 do
begin
tmpComponent := findComponent('advedit' + inttostr(i+1)); //根据名称查找对应的edit控件
(tmpComponent as TadvEdit).text := tlst.Strings[i]; //进行赋值
//end;
end;
这是我写的部分代码,这些代码的意思是,lst是一个多行字符串
然后tlst以tab为分隔符,分割了lst的第一行,并输出到对应的edit内
但现在有个问题就是,假如有个tab内没有数据,也就是空值,那么输出的时候,会自动忽略这个tab,其实这个空值也是作为判断其他的依据,所以我不想忽略
请问有办法判定吗??? 展开
//if RzPageControl1.Pages := 1 then
//begin
lst:=TStringlist.Create;
tlst:=TStringlist.Create;
lst.LoadFromFile('itemset.txt');
tlst.Delimiter := #9;
tlst.DelimitedText := lst.Strings[0];
for i:= 0 to tlst.Count - 1 do
begin
tmpComponent := findComponent('advedit' + inttostr(i+1)); //根据名称查找对应的edit控件
(tmpComponent as TadvEdit).text := tlst.Strings[i]; //进行赋值
//end;
end;
这是我写的部分代码,这些代码的意思是,lst是一个多行字符串
然后tlst以tab为分隔符,分割了lst的第一行,并输出到对应的edit内
但现在有个问题就是,假如有个tab内没有数据,也就是空值,那么输出的时候,会自动忽略这个tab,其实这个空值也是作为判断其他的依据,所以我不想忽略
请问有办法判定吗??? 展开
1个回答
展开全部
你上面说,的确是的,我试过它模漏的姐妹语言C++BUILDER6,这两个语言是旦陆烂一样的,后者从前者
移植的,内核是完全一样的,我用C++BUILDER试的,也适用于你DELPHI的,
解决悉卜办法:
用StringReplace()子程序将原串中#9即tab替换成回车换行#13#10这两个符号,产生的新串
就可以直接送入StringList,StringList.Text:=新串;
我用C++BUILDER成功了,附下,DELPHI一定会成功:
#include "SysUtils.hpp" // StringReplace()头定义
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char tab=(char)9;
String s=String("abcd")+tab+String("1234")+String(tab)+tab+String(tab)+String("qwert");
String ns=StringReplace(s,String(tab),"\r\n",TReplaceFlags()<<rfReplaceAll); \\ \r\n是回车换行
TStringList *ss=new TStringList;
ss->Text=ns;
Memo1->Lines=ss;
}
我对DELPHI只知一点点。 肯定适合DELPHI,关键是你对DELPHI熟悉程度
移植的,内核是完全一样的,我用C++BUILDER试的,也适用于你DELPHI的,
解决悉卜办法:
用StringReplace()子程序将原串中#9即tab替换成回车换行#13#10这两个符号,产生的新串
就可以直接送入StringList,StringList.Text:=新串;
我用C++BUILDER成功了,附下,DELPHI一定会成功:
#include "SysUtils.hpp" // StringReplace()头定义
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char tab=(char)9;
String s=String("abcd")+tab+String("1234")+String(tab)+tab+String(tab)+String("qwert");
String ns=StringReplace(s,String(tab),"\r\n",TReplaceFlags()<<rfReplaceAll); \\ \r\n是回车换行
TStringList *ss=new TStringList;
ss->Text=ns;
Memo1->Lines=ss;
}
我对DELPHI只知一点点。 肯定适合DELPHI,关键是你对DELPHI熟悉程度
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询