5/5 (3 avis)
Snippet vu 8 593 fois - Téléchargée 31 fois
// La déclaration procedure SaveLog(LeTexte:String); procedure SaveLog(LeTexte:String); //------------------------------------------------------------------ // Sauvegarde les bugs et évenements dans un fichier texte // www.dfc-automatisme.fr //------------------------------------------------------------------ var Fichier : TextFile; NomFichier : String; FichierDesti : String; LigneEcr : String; LigneLec : String; MS : TMemoryStatus; nLigne : Longint; begin NomFichier := ExtractFilePath(Application.ExeName) + 'suivi.csv'; nLigne := 0; // Création de la ligne a écrire GlobalMemoryStatus(MS); LigneEcr := DateToStr(Date) +';'+ // Date TimeToStr(Time) +';'+ // Heure TimeToStr((GetTickCount/1000)/(24*3600)) +';'+ // Temps de marche du PC Format('%d %%', [MS.dwMemoryLoad]) +';'+ // Mémoire vive utilisée LeTexte; // Description AssignFile(Fichier, NomFichier); // Ouverture fichier if not FileExists(NomFichier) then Rewrite(Fichier) // Création du fichier si innexistant else Append(Fichier); // Mode ajout sinon WriteLn(Fichier, LigneEcr); // Ecriture de la ligne Reset(Fichier); // Début fichier While not Eof(Fichier) do begin ReadLn(Fichier,LigneLec); Inc(nLigne); // Compte le nombre de lignes end; CloseFile(Fichier); // Fermeture fichier // Après 1000 ligne on fait une copie de sauvegarde et on supprime le contenu du fichier courant if nLigne > 1000 then begin FichierDesti := LeftStr(NomFichier, Length(NomFichier)-4)+FormatDateTime('_yyyy-mm-dd_hh-nn-ss".csv"', Now); CopyFile(PChar(NomFichier), PChar(FichierDesti), False); AssignFile(Fichier, NomFichier); // Ouverture fichier Rewrite(Fichier); // Supprime le contenu CloseFile(Fichier); // Ferme le fichier end; end; // L'utilisation SaveLog('DESCRIPTION'); // Exemple d'utilisation : try PortCom.Connected := True; except SaveLog('Impossible de connecter le port COM1'); end; if not FileExists(NomFichier) then SaveLog('Fichier ' + NomFichier + ' introuvable'); // Aperçu du fichier : // 27/05/2004;15:40:03;07:22:04;78 %;Démarrage d'Easytrack // 27/05/2004;15:42:30;07:24:32;79 %;Fermeture d'Easytrack
16 nov. 2004 à 20:20
uses Classes;
var STL : TStringList;
procedure OnChargement;
begin
STL.Clear; //pas nécessairement obligatoire
STL.LoadFromFile(LeFichier);
end;
procedure OnBug(Msg:string);
begin
STL.Add(LHeure+Msg);
end;
procedure OnSurLePointDeSeTerminer;
begin
STL.SaveToFile(LeFichier);
STL.Clear; //pas nécessairement obligatoire
end;
initialization
STL:=TStringList.Create;
finalization
STL.Free;
end.
Par contre, si l'EXE se plante royalement, le LOG n'est pas enregistré. Il faut savoir ce qu'on veut...
25 juin 2004 à 18:22
23 juin 2004 à 14:21
un plus serait de ne pas oublier de grapiller le + possible d'infos pour une session de débogage.
except on e:exception do
SaveLog(Erreur dans NomProc() '
+'dans le bloc : trucmuche '
+'Message :'+e.Massage);
@+
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.