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

Delphi Discussion :

Trace ascii du passage dans une fonction


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 101
    Points
    101
    Par défaut Trace ascii du passage dans une fonction
    Bonjour,

    à tout hasard, est-il possible de tracer le passage dans une fonction pour enregistrer le nom de cette fonction avec les paramètres et le résultat dans un fichier ascii ?

    Et bien entendu, sans ajouter dans la fonction des lignes du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    stringlist1.lines.add('passage dans la fonction Function_One');
    stringlist1.savetofile('...');
    Ca m'aiderait bien

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    Si c'est pour le debuggage:

    http://olance.developpez.com/article...accourcis-ide/

    (Un super article)
    Dans la section Exécution/débuggage le dernier et avant dernier raccourcis...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 101
    Points
    101
    Par défaut
    Voila, dans le même genre mais en mode exécution hors Delphi...
    C'est pas gagné hein ?

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 429
    Points : 5 836
    Points
    5 836
    Par défaut
    salut

    2 solution
    1ere au sein de l'IDE

    petite procedure a ajouter dans les unitées utils

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Procedure DebugPrintFmt (Const FmtString : String ;Const Args : Array Of Const ) ;
    Begin
      OutputDebugString(PAnsiChar(Format(FmtString,Args)));
    end;
    elle permet d'inserer un element dans la fenetre de suivi

    l'autre ecrit dans un fichier debug.txt a la racine du disque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure suiviebug(const aMessage: string);
     var
        Hour, Min, Sec, MSec: Word;
        F: system.text;
    begin
     
        system.Assign (F,'c:\debug.txt');
        system.Append (F);
      DecodeTime(Now, Hour, Min, Sec, MSec);
        system.Writeln (F,Format('%.2d:%.2d:%.2d.%.3d | %s', [Hour, Min, Sec, MSec, aMessage]));
        system.Close (F);
    end;
    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 101
    Points
    101
    Par défaut
    Merci à vous pour vos propositions.
    Je reste donc avec mes fonctions contenant des écritures vers un stringlist. Ce qui m'embêtait en fait c'était de devoir écrire plusieurs fois la même chose dans une même fonction :

    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
     
    function toto(a:integer;b:string):integer;
    begin
    if a=1 then begin
       tracelist.lines.add('Fonction toto');
       tracelist.lines.add(' > paramètres : a=1, b=truc');
       tracelist.lines.add(' > calcul effectué : result:=a*a');
       result:=a*a;
    end else begin
    if a=2 then begin
       tracelist.lines.add('Fonction toto');
       tracelist.lines.add(' > paramètres : a=2, b=truc');
       tracelist.lines.add(' > calcul effectué : result:=a*2');
       result:=a*2;
    end;
    Evidemment ce n'est qu'un exemple. Mais le fait est que je me retrouve avec une dizaine de fonctions qui sont appelées en fonction d'autres paramètres, contenant chacune une dizaine de tests pour décider quel calcul effectuer : je me retrouve donc avec une tripotée de texte de trace que j'ajoute à la main. C'est vite ch**nt !

    Les plus malins auront déjà répondu : le temps que tu passes à poser la question, tu aurais déjà fini ta saisie !!! Bon, ben, j'y retourne !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Deuxième passage dans une fonction qui plante
    Par sempere dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 05/11/2013, 05h57
  2. Passage dans une fonction
    Par ptitsoleil87 dans le forum Débuter
    Réponses: 3
    Dernier message: 29/10/2009, 13h56
  3. Réponses: 17
    Dernier message: 15/05/2006, 17h18
  4. Réponses: 6
    Dernier message: 24/12/2004, 16h46
  5. [langage] Passage de paramètres dans une fonction
    Par And_the_problem_is dans le forum Langage
    Réponses: 11
    Dernier message: 28/06/2004, 08h20

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