Не нужно было публиковать здесь какое-то время, но у меня есть проблема с реализацией потоков. При написании строки в FileStream, то resultnig текстовый файл имеет лишние пробелы, вставленные между символамидополнительные пробелы с преобразованием типа строки в буфер, неявное в Filestream.WriteBuffer method
Так при выполнении этого метода:
Function TDBImportStructures.SaveIVDataToFile(const AMeasurementType: integer;
IVDataRecordList: TIV; ExportFileName, LogFileName: String;
var ProgressInfo: TProgressInfo): Boolean; // AM
var
TempString: unicodestring;
ExportLogfile, OutputFile: TFileStream;
begin
ExportLogfile := TFileStream.Create(LogFileName, fmCreate);
TempString :=
'FileUploadTimestamp, Filename, MeasurementTimestamp, SerialNumber, DeviceID, PVInstallID,'
+ #13#10;
ExportLogfile.WriteBuffer(TempString[1], Length(TempString) * SizeOf(Char));
ExportLogfile.Free;
OutputFile := TFileStream.Create(ExportFileName, fmCreate);
TempString :=
'measurementdatetime,closestfiveseconddatetime,closesttenminutedatetime,deviceid,'
+ 'measuredmoduletemperature,moduletemperature,isc,voc,ff,impp,vmpp,iscslope,vocslope,'
+ 'pvinstallid,numivpoints,errorcode' + #13#10;
OutputFile.WriteBuffer(TempString[1], Length(TempString) * SizeOf(Char));
OutputFile.Free;
end;
(который является урезанная метод тестирования, писать только заголовки). Полученный CSV-файл для «OUTPUTFILE» читает
«measuredmoduletempera ры, и так далее, если смотреть в WordPad, но не в Excel, блокнот и т.д. Я предполагаю, сво SizeOf (Char) утверждение, которое является неправильным в unicode, но я не уверен, что будет правильным вставить здесь. «ExportLogfile», кажется, работает нормально, но не «OUTPUTFILE»
Из того, что я читал в другом месте этого написание в Юникоде, который является проблемой & не WordPad см http://social.msdn.microsoft.com/Forums/en-US/7e040fd1-f399-4fb1-b700-9e7cc6117cc4/unicode-to-files-and-console-vs-notepad-wordpad-word-etc?forum=vcgeneral
Любых предложения людей? большое спасибо, Брайан
Дэвид, ясный и очень полезный ответ, как всегда, большое спасибо, Брайан – SolarBrian