CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

请问::关于写文件的问题!!!!!!!!请进来看看 .

楼主yydelphi()2005-04-22 15:09:25 在 C++ Builder / 基础类 提问

根据在窗口输入的目录和文件名,把接收的数据不断写入到这个文件中去。  
  请看我的代码:  
  -----------------------------------------------  
    for(i=0;i<ListView->Items->Count;i++){//查找ListView,符合条件时就写文件。  
                char   *tmp1;  
                sprintf(tmp1,"%s",ListView->Items->Item[i]->Caption);  
                char   *tmp2;  
                sprintf(tmp2,"%s",ListView->Items->Item[i]->SubItems->Strings[0]);  
                 
                if(   strcmp(projectname,tmp1)==0  
                &&strcmp(processname,tmp2)==0   ){   //查找到  
                           
                          FILE   *   fp;     //开始写文件  
                          char   *path;  
                          sprintf(path,"%s",g_filenameedit[i]->Text);     //**g_filenameedit[]中存放的是要创建的文件目录和名字**  
                          fp   =   fopen(path,"wb");  
                          fwrite(logmsg,128   *   1024   ,   1,   fp);  
                          fclose(fp);  
   
                  }  
  }   //   End  
  ------------------------------------------------  
  为什么文件没有建立???结果什么都没有。  
  什么原因?另外代码里面有哪些错误???  
   
  请大家多帮助,谢谢。 问题点数:100、回复次数:12Top

1 楼wohow()回复于 2005-04-22 15:14:51 得分 20

String类型可以直接给sprintf的%s用吗?应该用Caption.c_str(),其中Caption代表String对象Top

2 楼wohow()回复于 2005-04-22 15:16:30 得分 0

另外你的指针不用初始化的吗Top

3 楼bluesen(善哉)回复于 2005-04-22 15:25:32 得分 10

呵呵,漏洞百出,没有崩溃真是天大的奇迹。  
  建议:找一本最基础的C语言的教科书,仔细阅读,并做练习。Top

4 楼yydelphi()回复于 2005-04-22 15:29:05 得分 0

wohow(),我按你说的改过了,但是还是没有结果?怎么回事?谢谢  
   
  bluesen(..):麻烦你把我的漏洞说出来可以嘛?我也知道自己基础差,但是现在没条件从头学,只能  
  在平时多改进了。谢谢Top

5 楼cczlp(不惑)回复于 2005-04-22 15:32:07 得分 30

FILE   *   fp;   //开始写文件  
  char   *path;  
  sprintf(path,"%s",g_filenameedit[i]->Text);   //**g_filenameedit[]中存放的是要创建的文件目录和名字**  
  fp   =   fopen(path,"wb");  
  fwrite(logmsg,128   *   1024   ,   1,   fp);  
  fclose(fp);  
  --------------------------------------------------  
  改成这样:  
   
   
    FILE   *   fp;   //开始写文件  
  char   path[260];  
  sprintf(path,"%s",g_filenameedit[i]->Text);   //**g_filenameedit[]中存放的是要创建的文件目录和名字**  
  fp   =   fopen(path,"wb");  
  if   (fp)  
  {  
  fwrite(logmsg,128   *   1024   ,   1,   fp);  
  fclose(fp);  
  }  
  else  
  {  
  ShowMessage("创建文件错误:"+path);  
  }  
  Top

6 楼NetSpider9804040(网络蛛蛛)回复于 2005-04-22 15:35:06 得分 30

我的写法如下:  
  TStringList   *list   =   new   TStringList();  
  list->Clear();  
  for(i=0;i<ListView->Items->Count;i++){//查找ListView,符合条件时就写文件。  
                char   *tmp1;  
                sprintf(tmp1,"%s",ListView->Items->Item[i]->Caption);  
                char   *tmp2;  
                sprintf(tmp2,"%s",ListView->Items->Item[i]->SubItems->Strings[0]);  
                 
                if(   strcmp(projectname,tmp1)==0  
                &&strcmp(processname,tmp2)==0   ){   //查找到  
                         
                          char   *path;  
                          sprintf(path,"%s",g_filenameedit[i]->Text);     //**g_filenameedit[]中存放的是要创建的文件目录和名字**  
                      /*     fp   =   fopen(path,"wb");  
                          fwrite(logmsg,128   *   1024   ,   1,   fp);  
                          fclose(fp);*/  
                        list->Add("你要写入文件的内容");  
   
                  }  
  }    
  list->SaveToFile("你要保存的文件名");  
  delete   list;  
  list=NULL;  
  //   End  
  Top

7 楼wohow()回复于 2005-04-22 15:35:32 得分 0

sprintf(tmp1,"%s",ListView->Items->Item[i]->Caption);  
  这一句没有崩溃说明要么ListView->Items->Count==0,要么流程没有到for循环来Top

8 楼wohow()回复于 2005-04-22 15:37:14 得分 0

sprintf(tmp1,"%s",ListView->Items->Item[i]->Caption);  
  这一句没有崩溃说明要么ListView->Items->Count==0,要么流程没有到for循环来Top

9 楼yydelphi()回复于 2005-04-22 15:58:15 得分 0

谢谢各位  
   
  我按   NetSpider9804040(网络蛛蛛)说的改了下,还是没有结果。但是程序不会死了。原来多按几下按钮(通过这个Button来启动改程序)就会死掉。  
   
  按cczlp(不惑)   兄的改了下,程序编译报错,ShowMessage("创建文件错误:"+path);这里path有问题。  
  谢谢wohow(),我会逐渐进步的。  
   
   
  怎么还是没有结果呢???  
  各位给分析下   .  
   
   
  难道是收到的logmsg没有内容?那文件也要建立啊,怎么连文件都没建立。  
  ListView->Items->Item[i]->Caption应该不是空的,我之前也把ListView->Items->Item[i]->Caption中的内容送出去了,Server端收的到。  
  Top

10 楼yydelphi()回复于 2005-04-22 16:17:06 得分 0

各位再来帮我解决一下啊Top

11 楼cczlp(不惑)回复于 2005-04-22 16:19:54 得分 10

ShowMessage("创建文件错误:"+path);  
  ==>  
  ShowMessage(AnsiString("创建文件错误:")   +   AnsiString(path));  
  Top

12 楼yydelphi()回复于 2005-04-22 16:40:48 得分 0

现在文件可以生成了也有内容   。  
   
  新的问题:怎么不断的接受数据并不断的更新文件?????Top

相关问题

  • 哪位懂dos下的批处理文件编写的请进来帮忙(Iamme)
  • 用过FileSystemObject对象的请进来,我怎么写不了文件
  • 请教dll的文件的书写方法!高手请进来,送分
  • 学习JAVA时写了个读写Ini文件的类,赏脸的朋友请进来留个话吧……
  • 熟悉文件操作的高手请进来坐一下。
  • 用 PB 操纵过 [文本文件] 的朋友请进来 !!!
  • 文件格式判断问题,会的请进来
  • eclipse中创建servlet文件的问题,请进来看看
  • 在WINDWOS XP中无法删除文件,知道的请进来.
  • 写过网络文件传输程序的朋友,请进来看看,这个问题你们是怎样解决的

关键词

  • 文件
  • 内容
  • filenameedit
  • 创建
  • logmsg
  • listview
  • 谢谢
  • 查找
  • fp
  • 错误

得分解答快速导航

  • 帖主:yydelphi
  • wohow
  • bluesen
  • cczlp
  • NetSpider9804040
  • cczlp

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo