Warn the user about potential data loss when loading a (csv) file with encoding set to "auto-detect". There are still EEncodingError reports uploaded.

This commit is contained in:
Ansgar Becker
2023-11-05 10:05:13 +01:00
parent a98102111d
commit ad71496037

View File

@ -673,6 +673,10 @@ begin
editfilename.Text := Dialog.FileName; editfilename.Text := Dialog.FileName;
FFileEncoding := Mainform.GetEncodingByName(Dialog.Encodings[Dialog.EncodingIndex]); FFileEncoding := Mainform.GetEncodingByName(Dialog.Encodings[Dialog.EncodingIndex]);
if FFileEncoding = nil then begin if FFileEncoding = nil then begin
MessageDialog(_('Auto detecting the encoding of a file is highly discouraged. You may experience data loss if the detection fails.') +
SLineBreak + SLineBreak +
_('To avoid this message select the correct encoding before pressing Open.'),
mtWarning, [mbOK]);
TestStream := TFileStream.Create(Dialog.Filename, fmOpenRead or fmShareDenyNone); TestStream := TFileStream.Create(Dialog.Filename, fmOpenRead or fmShareDenyNone);
FFileEncoding := DetectEncoding(TestStream); FFileEncoding := DetectEncoding(TestStream);
TestStream.Free; TestStream.Free;