文件读取的问题

borlandme 2003-10-17 06:43:10
如何把下列文件中的内容一条一条读取出来并显示在不同控件内
yb.dat

111111,12,36
222222,3698,9
333333,54,857

例如:把111111在Edit1->Text显示
12在Edit2->Text显示
36在Edit3->Text显示
...全文
34 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
borlandme 2003-10-21
  • 打赏
  • 举报
回复
感谢所有热心参与的同志
我不懂电脑 2003-10-18
  • 打赏
  • 举报
回复
没看清题目
新参考代码
TStringList *StringList = new TStringList();
TStringList *StringList1 = new TStringList();

StringList->LoadFromFile("xxx.txt");

StringList->Delimiter = ','
StringList->DelimitedText = = StringList->Strings[0];
Edit2->Text = StringList1->Strings[0];
Edit3->Text = StringList1->Strings[1];
BoyMgl 2003-10-18
  • 打赏
  • 举报
回复
TStringList的功能十分强大要好好利用!:)
ljianq 2003-10-18
  • 打赏
  • 举报
回复
TStringList *StringList = new TStringList();

StringList->LoadFromFile("yb.dat");

AnsiString s=StringList->Strings[0]; //第一行
int pos=s.AnsiPos(",");
Edit1->Text = s.SubString(1,pos-1);
pos=s.Delete(1,pos).AnsiPos(",");
Edit2->Text = s.SubString(1,pos-1);
Edit3->Text = s.Delete(1,pos);
yjy1001 2003-10-18
  • 打赏
  • 举报
回复
ljianq(泉深水清) 方法可行
使用 TStringList 流可以实现对文本文件操作
而字符串操作 也很容易了

多练练字符串的操作,以后 就容易了。
aliker 2003-10-18
  • 打赏
  • 举报
回复
意思没弄清楚!
GeoPhoenix 2003-10-17
  • 打赏
  • 举报
回复
告诉你我用的一个简单方法,先用写字板将‘,’替换成空格,再按照正常的整形数读取就可以了,这样程序的代码非常简单,为了处理一个‘,‘,需要费很多代码,并且也不是必须的,我就是这么干的
我不懂电脑 2003-10-17
  • 打赏
  • 举报
回复
TStringList *StringList = new TStringList();

StringList->LoadFromFile("xxx.txt");

Edit1->Text = StringList->Strings[0];
Edit2->Text = StringList->Strings[1];
Edit3->Text = StringList->Strings[2];
myredsun 2003-10-17
  • 打赏
  • 举报
回复
char buffer[50];
char ls_storeid[2];
char ls_goodsid[5];
char ls_color[3];
char ls_size[4];
char ls_end[6];
char ls_barcode[15];
AnsiString ls_filename;
char lc_key = VK_RETURN;
AnsiString ls_id;

//打开选择文件对话框
if (OpenDialog1->Execute())
ls_filename = OpenDialog1->FileName;
else
return;

//打开文件
mi_Row = 0;
FILE *dictfd = NULL;
if((dictfd = fopen(ls_filename.c_str(), "r")) == (FILE *)NULL)
{
ls_filename = "不能打开文件:" + ls_filename + ",\r\n请确认存在该文件。";
MessageBox(this->WindowHandle,ls_filename.c_str(),"系统提示",MB_ICONWARNING);
return;
}
while(fgets(buffer, sizeof(buffer), dictfd) != (char *)NULL)
{
mi_Row++;
/* Skip empty space */
if(*buffer == '#' || *buffer == '\0' || *buffer == '\n')
{
continue;
}

if( sscanf(buffer, "%s%s%s%s%s%s", ls_goodsid, ls_color,ls_size, ls_end,ls_storeid,ls_barcode) < 6)
{
ls_filename = "文件:" + ls_filename + "第" + IntToStr(mi_Row) + "行存在非法的数据格式。";
MessageBox(this->WindowHandle,ls_filename.c_str(),"系统提示",MB_ICONINFORMATION);
return;
}else
{
buffer[0] = '\0';
Edit1->Text = ls_barcode;
Edit1KeyPress(Sender,lc_key);
}
}
if ( dictfd != NULL )
fclose(dictfd);
borlandme 2003-10-17
  • 打赏
  • 举报
回复
这样的文件为什么不能按格式读取呐 代码如下:
FILE *fp=fopen("yb.dat","r");
char *name= new char;
int qian,hou;
if(!feof(fp))
{
fscanf(fp,"%s,%d,%d",name,&qian,&hou);
Edit1->Text=name;
Edit2->Text=IntToStr(qian);
Edit3->Text=IntToStr(hou);
}
delete name;
wuxq7311 2003-10-17
  • 打赏
  • 举报
回复
做一个判断不就行了吗??
打开文件后
for(int i=0; i < file->size; i ++)
{
file->Read(buf, 1);
if(buf == ",")
{
自己加
}
}

13,825

社区成员

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

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