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文本中,读入的时候将将路径修改即可,不需要修改。。。