专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++ Builder

listview导出txt文档有关问题

发布时间:2011-06-28 12:14:22 文章来源:www.iduyao.cn 采编人员:星星草
listview导出txt文档问题
各位高手好,向大家请教个问题?请指点!
我在listview中的显示数据如下:
3 27.434 10.511 C1 105.664 70.104 270  
3 27.434 10.511 C2 129.032 57.404 180
3 27.434 10.511 C3 123.444 71.12 180
想把这些数据导出txt文档,并且数据之间有逗号,于是我编了下面的程序:
C/C++ code

TStringList*   outcsv  =   new   TStringList;
for(int   i=0;   i <ListView1-> Items-> Count;   i++)
  {
    TListItem*   outcItem=   (TListItem*)ListView1-> Items-> Item[i];
    outcsv-> Add(outcItem-> Caption+",");
    for(int  j=0;  j<ListView1-> Columns-> Count-1; j++)
       {
      if   (j < outcItem-> SubItems-> Count)
         outcsv-> Add( outcItem-> SubItems-> Strings[j]+",");
          else
       outcsv-> Add( " "); 
    }
}
outcsv-> SaveToFile( "C:\\Users\\samsung\\Desktop\\12345.txt ");
delete    outcsv;

结果我自己得到的输出的txt文档文本内容显示为如下:
3,
27.434,
10.511,
C1,
105.664,
70.104,
270,
3,
27.434,
10.511,
C2,
129.032,
57.404,
180,
3,
27.434,
10.511,
C3,
123.444,
71.12,
180,
我想要的输出的txt文档的内容为如下:
3,27.434,10.511,C1,105.664,70.104,270  
3,27.434,10.511,C2,129.032,57.404,180
3,27.434,10.511,C3,123.444,71.12 ,180
不知道到怎么改程序,请高手不吝赐教!!!谢谢!

------解决方案--------------------
达不到你想要的结果,就得自己去寻找原因!
来给你分析下 
for(int j=0; j<ListView1-> Columns-> Count-1; j++)
{
if (j < outcItem-> SubItems-> Count)
outcsv-> Add( outcItem-> SubItems-> Strings[j]+",");
TStringList 的outcsv每调用Add一次,表示增加一个元素(AnsiString) ,保存到TXT里就是一行了

你上面的for循环是每取一个单元格 ,就Add一次 。所以你的每个单元格信息变成了一行。

要变成3,27.434,10.511,C1,105.664,70.104,270 行格式
你需要把每行单个元信息都取完,拼接起来 然后add 就如你所愿了

代码思路如下:
AnsiString Str ="";
.......
for(int j=0; j<ListView1-> Columns-> Count-1; j++)
Str +=outcItem-> SubItems-> Strings[j]+","; 
outcsv->Add(Str);
.......

------解决方案--------------------
String str;//用字符串变量中转一下就OK
TStringList* outcsv = new TStringList;
for(int i=0; i <ListView1-> Items-> Count; i++)
{
TListItem* outcItem= (TListItem*)ListView1-> Items-> Item[i];
str=outcItem-> Caption+",";
for(int j=0; j<ListView1-> Columns-> Count-1; j++)
{
if (j < outcItem-> SubItems-> Count)
str= outcItem-> SubItems-> Strings[j]+",";
else
str=" "; 
}
outcsv->Add(str);
}
outcsv-> SaveToFile( "C:\\Users\\samsung\\Desktop\\12345.txt ");
delete outcsv;
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: