IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Comment générer un fichier de rapport d'exécution d'un programme ?


Sujet :

Langage Delphi

  1. #1
    Membre du Club Avatar de bigey3
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Points : 50
    Points
    50
    Par défaut Comment générer un fichier de rapport d'exécution d'un programme ?
    salut,

    j'ai codé une application qui lit un fichier et réecrit(reformatage) le contenu dans un autre fichier. je souhaiterais écrire un code espion qui surveille l'exécution du code.Ainsi à la fin de la réecriture je veux générer un fichier log qui confirmera ou infirmera que le fichier à été correctement écrit.

    merci
    La patience est un Chemin d'or

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Salut,

    Tu peux toujours truffer ton code de Try ... Except ... End et placer dans les emplacements critiques des MaStringListEspion.Lines.Add('Jusqu'ici tout s'est bien passé') ou MaStringListEspion.Lines.Add('Anomalie détectée à tel endroit du code') puis de sauver ou d'afficher la StringListEspion.

    Par contre ceci alourdit et ralentit le code. En complément ou en remplacement rien n'empêche en phase de mise au point d'afficher le Fichier-De-Destination re-formatté pour vérifier si ce fichier à été correctement écrit.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #3
    Membre du Club Avatar de bigey3
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Points : 50
    Points
    50
    Par défaut salut
    salut

    merci pour le coup de main,mais j'aimerais faire mieux puisque mon application reformate plusieurs fichiers.ainsi je souhaiterais générer un fichier de rapport associé au fichier écrit afin de pouvoir vérifier au moment voulu l'exactitude du processus.

    merci
    La patience est un Chemin d'or

  4. #4
    Membre du Club Avatar de bigey3
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Points : 50
    Points
    50
    Par défaut voila j'ai une solution mais.......
    salut

    j'ai un code qui fait l'espion mais je l'ai mis dans code sans succès.Quelq'un pourrait me dire où exactement et comment devrai l'utilisé pour qu'a chaque fois que j'ecris le fichier ,que le code espion puisse créer égalment son fichier.

    merci

    voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    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');
    La patience est un Chemin d'or

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Re-bonjour,

    Si ton problème est de sauver ton fichier tu peux faire plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    procedure SaveLog(var LeTexte:String);
    var 
      SL : TStringList; 
      NomFichier    : String; 
      LigneEcr      : String; 
      MS            : TMemoryStatus; 
    begin 
      NomFichier  := ExtractFilePath(Application.ExeName) + 'suivi.csv';
      MS.dwLength:=SizeOf(TMemoryStatus);
      GlobalMemoryStatus(MS); 
      LigneEcr := inchangé
      SL:=TStringList.create;
      SL.Add(LeText);
      SL.Add(LigneEcr);
      SL.SaveToFile(NomFichier);
      SL.Free;
    end;
    ... de cette manière le fichier 'suivi.csv' correspond chaque fois à la dernière utilisation ... je ne vois pas l'intérêt d'ajouter à la fin d'un fichier 'suivi.csv' des utilisations successives à moins de vouloir créer un historique ce qu'on peut d'ailleurs également créer avec une succession de fichiers isolés dont le nom est incrémenté dans le style 'suivi1.csv', 'suivi2.csv', 'suivi3.csv' ...

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  6. #6
    Membre du Club Avatar de bigey3
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Points : 50
    Points
    50
    Par défaut j'en veux plus stp
    salut

    le code que j'ai mis c'est juste le code que j'ai poiché sur le net.
    mes besoins restent ceux que j'ai consigné dans mon post précédent.

    en fait je veux crée un fichier rappport qui stipule si oui ou non l'exécution a été parfaite.

    merci
    a+
    La patience est un Chemin d'or

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Re-Salut,

    le code que j'ai mis c'est juste le code que j'ai poiché sur le net.
    mes besoins restent ceux que j'ai consigné dans le code que j'ai mis c'est juste le code que j'ai poiché sur le net.
    mes besoins restent ceux que j'ai consigné dans mon post précédent.
    ... et dans ton post précédent tu disais.
    j'ai un code qui fait l'espion mais je l'ai mis dans code sans succès.
    ... donc si tu as déjà le code qui fait l'espion c'est donc lui qui doit te renvoyer le contenu de la variable LeTexte:String à envoyer dans la procedure SaveLog(var LeTexte:String) évoquée précédemment.

    Pour avancer faudrait voir comment t'as inséré le code qui fait l'espion dans le code de ton appli.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/06/2007, 14h35
  2. Réponses: 6
    Dernier message: 29/11/2006, 11h56
  3. [VS.Net] Comment générer un fichier executable ?
    Par tifawete dans le forum Visual Studio
    Réponses: 2
    Dernier message: 21/07/2006, 16h51
  4. Réponses: 2
    Dernier message: 14/03/2006, 14h22
  5. Comment générer un fichier texte à partir d'un XML et XSL
    Par Jayceblaster dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 24/07/2005, 22h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo