procedure TForm1.Button1Click(Sender: TObject); var I,II : Integer; TempList : TStringList; Temp : string; begin TempList := TStringList.Create; try for I := 0 to self.StringGrid1.RowCount -1 do begin Temp := ''; for II := 0 to self.StringGrid1.ColCount -1 do Temp := Temp+ self.StringGrid1.Rows[I].Strings[II]; TempList.Add(Temp); end; if TempList.Count > 0 then TempList.SaveToFile('Test.txt'); finally TempList.Free; end; end;
没看清楚,原来lz就是觉得一行一行处理慢了。 2l 方法貌似可以.........
专门为你写的: procedure TForm1.BitBtn1Click(Sender: TObject); var i: Integer; tmpList: TStringList; begin tmpList := TStringList.Create; try for i := 0 to StringGrid1.RowCount - 1 do begin tmpList.AddStrings(StringGrid1.Rows[i]); end; if tmpList.Count > 0 then begin tmpList.SaveToFile('Export.txt'); end; finally FreeAndNil(tmpList); end; end;这样效率肯定要比你代码的效率高一截. 另外,如果数据量大,建议不要先装在内存中,可以建立磁盘文件,读取GRID的每一行后直接写入磁盘文件即可.GOOD LUCK!
private
FData: Pointer;
FRows: Pointer;
FCols: Pointer;看你怎么处理了.
procedure TForm1.Button1Click(Sender: TObject);
var
I,II : Integer;
TempList : TStringList;
Temp : string;
begin
TempList := TStringList.Create;
try
for I := 0 to self.StringGrid1.RowCount -1 do
begin
Temp := '';
for II := 0 to self.StringGrid1.ColCount -1 do
Temp := Temp+ self.StringGrid1.Rows[I].Strings[II];
TempList.Add(Temp);
end;
if TempList.Count > 0 then TempList.SaveToFile('Test.txt');
finally
TempList.Free;
end;
end;
没看清楚,原来lz就是觉得一行一行处理慢了。 2l 方法貌似可以.........
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i: Integer;
tmpList: TStringList;
begin
tmpList := TStringList.Create;
try
for i := 0 to StringGrid1.RowCount - 1 do
begin
tmpList.AddStrings(StringGrid1.Rows[i]);
end;
if tmpList.Count > 0 then
begin
tmpList.SaveToFile('Export.txt');
end;
finally
FreeAndNil(tmpList);
end;
end;这样效率肯定要比你代码的效率高一截.
另外,如果数据量大,建议不要先装在内存中,可以建立磁盘文件,读取GRID的每一行后直接写入磁盘文件即可.GOOD LUCK!
哈哈,确实高一截,感谢这么仁兄啊。delphi 库不是很熟悉。