C++ builder Stringgrid读取txt文本

来源:互联网 发布:免费无需网络发送短信 编辑:程序博客网 时间:2024/05/06 14:09

1.将StringGrid写入txt文本中:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int length;
    AnsiString Filename = "E://1.txt";//文件的路径
      int filehanlde = FileCreate(Filename);//获取文件句柄
    AnsiString as = "/t";
    AnsiString rn ="/r/n";
    for(int i = 0;i < StringGrid1->RowCount;i++)
    {
        for(int j = 0;j < StringGrid1->ColCount;j++)
        {
            FileWrite(filehanlde,StringGrid1->Cells[j][i].c_str(),StringGrid1->Cells[j][i].Length());//将数据写入文本中
            FileWrite(filehanlde, as.c_str(),as.Length());/写入空格
        }
        FileWrite(filehanlde,rn.c_str(),rn.Length());//写入换行符

    }
    Application->MessageBox("导出成功!","提示",MB_OK|MB_ICONWARNING);
    FileClose(filehanlde);//关闭文件
}

2。从txt读取文本到StringGrid中

   AnsiString Filename = "E://1.txt";
    TStringList *list = new TStringList();
    TStringList *sub = new TStringList();
    //int filehandle = FileOpen(Filename,fmOpenRead);
    list->LoadFromFile(Filename);
    for(int i = 0;i < list->Count;i++)
    {

        sub->Delimiter = ' ';
        sub->DelimitedText = list->Strings[i];

        for(int c = 0;c < sub->Count;c++)
        {
             StringGrid1->Cells[c][i] = sub->Strings[c];
        }
    }
    ShowMessage("导入成功");

思路是将所有的内容写入list中,用一个sub取出其中一列,将空格作为分隔符,这样sub就对应于一个ROWS,将数据填充进去即可,

好些入Xls文件只需要将AnsiString as = "/t";换成AnsiString as = " ";就能写入execl文本中,读入的时候将将路径修改即可,不需要修改。。。

原创粉丝点击