[Lazarus] StringGrid1.SaveToCSVFile - UTF-8 with BOM

Sandro Cumerlato sandro.cumerlato at gmail.com
Sun Mar 11 07:01:03 CET 2018


Thank you Mattias and Michael for your help!

procedure TForm1.ButtonSaveClick(Sender: TObject);
const
  UTF8BOM = #$EF#$BB#$BF;
var
  s: String;
  fs: TFileStream;
begin
  s := ChangeFileExt(Application.ExeName, '.csv');
  try
    fs := TFileStream.Create(s, fmCreate);
    fs.Write(UTF8BOM, SizeOf(UTF8BOM));
    StringGrid1.SaveToCSVStream(fs, ';', True, False);
  finally
    fs.free;
  end;
end;


On 10 March 2018 at 17:25, Michael Van Canneyt via Lazarus <
lazarus at lists.lazarus-ide.org> wrote:

>
>
> On Sat, 10 Mar 2018, Mattias Gaertner via Lazarus wrote:
>
> On Sat, 10 Mar 2018 16:57:08 +0100
>> Sandro Cumerlato via Lazarus <lazarus at lists.lazarus-ide.org> wrote:
>>
>> Hello,
>>> how can I save StringGrid content to a CSV file encoded to "UTF-8 with
>>> BOM"
>>> format? (as default it is saved to "UTF-8 without BOM" format)
>>>
>>
>> var
>>  s: string;
>>  ms: TMemoryStream
>>
>> ms:=TMemoryStream.Create;
>> try
>>  s:=UTF8BOM;
>>  ms.Write(s[1],length(s));
>>  Grid.SaveToCSVStream(ms)
>>  ms.Position:=0;
>>  ms.SaveToFile('foo.csv');
>> finally
>>  ms.Free;
>> end;
>>
>
> You can also just use a filestream ?
>
> Michael.
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus-ide.org
> https://lists.lazarus-ide.org/listinfo/lazarus
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20180311/eac63506/attachment-0001.html>


More information about the Lazarus mailing list