Éste truco ha llegado por la necesidad de exportar el contenido de un StringGrid hacia un fichero con las columnas separadas por TABs.
Definimos una constante CHAR_SEP como separador; Modificando ésta constante podemos usar TAB, ; , Saltos de linea,...
El código:
Código Delphi
[-]
const
CHAR_SEP = ';';
var
i, j:Integer;
Str:String;
TS:TStrings;
begin
Str := '';
for i := (StringGrid1.Selection.Top) to (StringGrid1.Selection.Bottom) do
begin
if (i <> StringGrid1.Selection.Top) then begin
Str := Str + #13#10;
end;
for j := 0 to (StringGrid1.Rows[i].Count - 1) do begin
if (j <> 0) then begin
Str := Str + CHAR_SEP;
end;
Str := Str + StringGrid1.Rows[i].Strings[j];
end;
TS := TStringList.Create();
TS.Add(Str);
TS.SaveToFile('C:\aaa.txt');
TS.Free;