Einzelnen Beitrag anzeigen

QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#16

AW: Ansi Encoding ohne Leerzeichen

  Alt 7. Aug 2017, 17:16
ich schreibe das jetzt alles so
Delphi-Quellcode:
      aText := Datetimetostr(now) + ' ' + aText + linefeed;
      aByteArr := TEncoding.Utf8.GetBytes(aText);
      //FStream.Write(aText[1], length(aText) * Sizeof(aText[1]) );
      FStream.WriteData(aByteArr, Length(aByteArr));
Datei wird wie folgt erzeugt, damit es passt
Delphi-Quellcode:
    if not TFile.Exists(fLogFile) then
    Begin
      FileOpenMode := fmCreate;
      fStream := TFileStream.create( self.fLogFile, FileOpenMode );
      Preambel := Tencoding.UTF8.GetPreamble;
      fStream.WriteData(Preambel,length(Preambel));
      fStream.free;
    End;
Ich öffne mehrere (wenige und kleine)Logfiles und hänge sie hintereinander in einen String.
  aText := aText + TFile.ReadAllText(flogfile,Tencoding.UTF8); Dann erzeuge ich aus dem String eine einzige Datei für ein Email Attchment.
Delphi-Quellcode:
function TLog.Internal_GetEmailFile: String;
var alogtext:String;
begin
  result := '';
  Internal_ReadFile(alogtext);
  alogtext := aLogtext.Replace(''+linefeed, ''+carriageReturn+''+linefeed, [rfReplaceAll] );//für Notepad.exe
  alogtext := alogtext.Replace(''#0,'',[rfReplaceAll]);//einfach zur sicherheit.
  if tFile.Exists(fEmailFile) then
    Tfile.Delete(fEmailFile);
  TFile.WriteAllText(femailfile,aLogText, TEncoding.UTF8 );//erzeugt eine UTF8 Preambel (BOM)
  result := femailfile;
end;
Diese Datei kann ich dann tatsächlich per notepad.exe öffnen.

Problem ist also gelöst..
und viel über kodierung und strings dabei gelernt.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat