我的窗体上有一个TStringGrid控件,我想在ToolBar上放一个ToolButton按钮此按钮的功能就是保存TStringGrid控件中的所有内容(4列)。我放了一个TSaveDialog对话框,后面的怎么做我就不知道了???各位大神,然后要怎么做咧!!!文件保存

解决方案 »

  1.   

    2维表格的内容,两重循环来保存
    什么格式,取决于格子内容里有没有特殊字符如果没有回车和tab,直接每行对应表格一行,每格内容以tab分隔
      

  2.   

    先要搞清你是想保存到数据库还是保存成文件?保存成文件就需要TSaveDialog,如果保存到数据库,绑定数据源后,提交保存,会自动保存到数据库
      

  3.   


    我只是想单独的保存为一个.txt文件,我这样做的
    StringGrid1.Cols[1].SaveToFile('log'); 
    SaveDialog1.Execute;但是这样做后确实可以生成log文件(没有后缀),但当我点击保存按钮时保存对话框中的文件名不能绑定我的这个log文件。本来目的是想要生成log文件后,再通过TSaveDialog保存到其它目录下,并跟它加上后缀名的。求指教啊!
      

  4.   


    var
      i:integer;
      LogFile:TStringlist;
      sRow:string;
    begin
      LogFile := TStringlist.Create;
      SaveDialog1.Filter := '日志文件(*.log)|*.log';
      if SaveDialog1.Execute then
      begin
        for i := 1 to StringGrid1.RowCount  do
        BEGIN
          sRow := '';
          sRow := StringGrid1.Cells[i,1] + ';' +StringGrid1.Cells[i,2] + ';' + StringGrid1.Cells[i,3] +';'+ StringGrid1.Cells[i,4];
          LogFile.Add(sRow);
        END;
        LogFile.SaveToFile(SaveDialog1.FileName);
      end;end;
      

  5.   

    另外一种方法var
      fl:TextFile;
      K, i:integer;
      sRow:string;
    begin
      SaveDialog1.Filter := '日志文件(*.log)|*.log';
      if SaveDialog1.Execute then
      begin
        if not FileExists(SaveDialog1.FileName) then
        begin
          K := FileCreate(SaveDialog1.FileName);
          if K > 0 then
          begin
            FileClose(K);
            AssignFile(fl,SaveDialog1.FileName);
            for i := 1 to StringGrid1.RowCount do
            begin
              Append(fl);
              sRow := StringGrid1.Cells[i,1] + ';' +StringGrid1.Cells[i,2] + ';' + StringGrid1.Cells[i,3] +';'+ StringGrid1.Cells[i,4];
              WriteLn(fl,sRow);
            end;
            Closefile(fl);
          end;
        end else
        begin
          AssignFile(fl,SaveDialog1.FileName);
          for i := 1 to StringGrid1.RowCount do
          begin
            Append(fl);
            sRow := StringGrid1.Cells[i,1] + ';' +StringGrid1.Cells[i,2] + ';' + StringGrid1.Cells[i,3] +';'+ StringGrid1.Cells[i,4];
            WriteLn(fl,sRow);
          end;
          Closefile(fl);
        end;
      end;
    end;
      

  6.   

    可以先设定SaveDialog1.FileName为你想要的默认值。