■■■■他奶奶的TStringList■■■■■■■

niuzhenjun 2004-01-07 04:17:25
有一字符串想用它拆分,分隔符为','

String sql = "asdf,fff dd,s,fkk";
TStringList *sl = new TStringList;
sl->Delimiter = ',';
sl->DelimitedText = sql;
int num = sl->Count; ////这里本来应该是4,却报告为5,
for (int i=0;i<num;i++)
{
cmd->CommandText = sl->Strings[i];
}

sl->Strings[1]="fff"; 而不是我希望的"fff dd",奶奶的,不但用','拆分,还用空格拆分,怎么回事,谁能救救我
...全文
77 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanchong781126 2004-05-09
  • 打赏
  • 举报
回复
本来就应该是5吧
Chimae 2004-01-08
  • 打赏
  • 举报
回复
套用两个循环,OK!
Chimae 2004-01-08
  • 打赏
  • 举报
回复
String sql = "asdf,fff dd,s,fkk";
TStringList *sl = new TStringList;
sl->Delimiter = ',';
sl->DelimitedText = sql;
int num = sl->Count; ////这里本来应该是4,却报告为5,
for (int i=0;i<num;i++)
{
cmd->CommandText = sl->Strings[i];
}
改写如下:
while (sql.AnsiPos(","))
{
sl->Add(sql.SubString(1, sql.AnsiPos(",")-1));
sql = sql.SubString(sql.AnsiPos(",")+1, sql.Length()-sql.AnsiPos(","));
}
sl->Add(sql);
warton 2004-01-07
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString Str="63.43.156.32";
Memo1->Lines->Text = StringReplace(Str,".",",",TReplaceFlags()<<rfReplaceAll);
}
把这个运行起来,再想办法改一改...
myy 2004-01-07
  • 打赏
  • 举报
回复
String sql = "asdf,fff dd,s,fkk";
TStringList *sl = new TStringList;

sl->Text=AnsiReplaceText(sql,",","\n");
...
...
delete sl; sl=NULL;
bcb0401 2004-01-07
  • 打赏
  • 举报
回复
自已写个函数吧。
niuzhenjun 2004-01-07
  • 打赏
  • 举报
回复
to: lfnhxhsoft(lfn_hxh_soft)
不行,那个属性要求是一个char,用","出错。
lfnhxhsoft 2004-01-07
  • 打赏
  • 举报
回复
是不是 sl->Delimiter = ',';这句话的事情呀,你用sl->Delimiter = ",";试一下

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧