AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Log-Datei realisieren

Ein Thema von MatthiasR · begonnen am 8. Nov 2007 · letzter Beitrag vom 8. Apr 2016
Antwort Antwort
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Re: Log-Datei realisieren

  Alt 8. Apr 2016, 08:34
Meine Logdatei hat vor jedem Zeichen einen NUL Charakter.
Ist das normal? Bzw. geht das mit der Funktion auch anders?
Sieht sehr bescheiden aus. Man kann quasi nix lesen.
hört sich nach einem Unicodeproblem an. Aber warum WinAPI? Gibt es dafür einen besitmmten Grund? Schau mal ob deine Delphiversion TStreamWriter unterstützt und wenn ja dann verwende das.. Wenn ich das richtig sehe wurde das mit Delphi 2010 eingeführt...

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#2

AW: Log-Datei realisieren

  Alt 8. Apr 2016, 09:15
Die #0 stört nicht, aber dass der halbe Text fehlt ist vielleicht etwas schlimmer. (seit Delphi 2009)

Jupp, die bösen Jugendsünden bestrafen Einen immer wieder.
Einfach aus String ein AnsiString machen und aus #13#10 ein sLineBreak.

Und da wir "nette" Programmierer sind, wird auch noch aus GENERIC_WRITE, 0 ein GENERIC_WRITE, FILE_SHARE_READ.



Die WinAPI hatte hier den Vorteil, daß die Fehlerbehandlung etwas "sanfter" reagiert, also vorallem ohne Exceptions.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 8. Apr 2016 um 09:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MuTzE.Y85
MuTzE.Y85

Registriert seit: 11. Apr 2006
152 Beiträge
 
#3

AW: Log-Datei realisieren

  Alt 8. Apr 2016, 21:47
Nun, es musste natürlich wieder schnell gehen, und das hier hatte ich mit als erstes gefunden

Und da der Code von himitsu war, hab ich ihn genommen.


Aktuell nutze ich den Code hier von Luckie:
Delphi-Quellcode:
function WriteLog(LogFile, LogString: String): Integer;
var
  f: TextFile;
begin
{$IOCHECKS OFF}
  AssignFile(f, LogFile);
  if FileExists(LogFile) then
    Append(f)
  else
    Rewrite(f);
  Writeln(f, LogString);
  CloseFile(f);
  Result := GetLastError();
{$IOCHECKS ON}
end;
Welcher ist denn nun besser?
Wie shmia oben schreibt sollte man solchen Code heute nicht mehr nutzen, da es bessere Wege gibt.

Zur Erklärung:
Ich schreibe ein kleines Tool um Prime95 fernzusteuern und lasse alle 30 Sekunden die Kerntemperaturen speichern. Dafür brauche ich die Logfunktion
LAN-PC: C2Q Q9550 @ 4004 MHz @ 1.232 V @ Mugen 2 | DFI LANParty JR P45-T2RS | G.Skill 4GB DDR2-1000 CL5 | ZOTAC GTX 280 @ GTX 285 @ 1.06 V | WD Caviar Blue 320GB / WD Caviar Black 640GB | BeQuiet DPP P7 450W | Antec Mini P180

Geändert von MuTzE.Y85 ( 8. Apr 2016 um 21:54 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz