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,其实这个空值也是作为判断其他的依据,所以我不想忽略

请问有办法判定吗???
展开
 我来答
ycsxm
2011-12-18 · TA获得超过3.3万个赞
知道大有可为答主
回答量:1.4万
采纳率:0%
帮助的人:7827万
展开全部
你上面说,的确是的,我试过它的姐妹语言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熟悉程度
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式