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 :

Récuperer les messages d'erreurs console


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 20
    Points
    20
    Par défaut Récuperer les messages d'erreurs console
    Salut je suis entrain de réaliser un petit editeur pour java "but pedago" mais j'ai eu un probleme :
    comment puisse je recuperer les message d'erreurs aprés l appel de "javac File.java",en d autre terme comment rediriger la sortie standard dos vers un fichier ????
    j'ai essayé "javac File.java>>c:\temp.txt" mais ça marche pas
    svp aidez moi

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 451
    Points
    28 451
    Par défaut
    faut utiliser les pipes

    NB: cette méthode ne fonctionne pas avec une application DOS, mais Javac est une application console windows, donc y'a pas de problème.

  3. #3
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par tothpaul
    faut utiliser les pipes

    NB: cette méthode ne fonctionne pas avec une application DOS, mais Javac est une application console windows, donc y'a pas de problème.
    Quelle est la difference entre application console et application DOS ?
    Depuis que win est passé par un emulateur DOS, je suis perdu

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 451
    Points
    28 451
    Par défaut
    Citation Envoyé par Clorish
    Quelle est la difference entre application console et application DOS ?
    Depuis que win est passé par un emulateur DOS, je suis perdu
    c'est simple, une application "console" est une application Windows qui possède par défaut une console (une fenêtre texte). La même qui tu obtiens depuis une application graphique en invoquant AllocConsole(). A part cela elle peut faire tout ce que fait une application graphique !

    Tu peux en réaliser une avec Delphi (application Windows PE)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    program HelloWord;
    {$APPTYPE CONSOLE}
    begin
     WriteLn('Hello World');
    end.
    une application DOS est une application en mode réel (Windows est maintenant en mode protégé 32 bits), qui tourne dans une machine virtuel v86 (mode d'execution particulier du processeur). Elle s'appuie sur l'interruption 21h du DOS pour tout ce qui est accès fichier, et peut même attaquer directement le hardware (qui est en fait virtualisé par Windows) par des interruptions (10h pour la video, 13h pour le disque etc...) ou même par les ports d'entrée/sortie (IN et OUT en assembleur).

    tu peux en réaliser une avec Turbo Pascal (application DOS MZ)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    program HelloWord;
    // pas de mode console, le DOS n'a pas de mode graphique :D
    begin
     WriteLn('Hello World');
    end.
    et c'est là qu'on retrouvera les bonnes vieilles unité CRT et Graph pour gérer respectivement l'écran texte et le mode graphique

    pour la petite histoire, il faut savoir que toutes les applications Windows sont aussi des applications DOS prenez un executable Windows et ouvrez le sous WordPad (mais ne le sauvegardez pas !!!!), vous verrez que le fichier commence par les caractères "MZ" d'une application DOS et elle contient le message "This program must be run under Win32" qui s'affiche si on lance l'application depuis une machine DOS sans Windows Un peu plus loin dans le fichier, vous trouverez les caractères "PE" qui indique le début de l'entête des applications Windows.

    on peut même s'amuser à débuger une application Windows
    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
     
    C:\WINNT>debug winhlp32.exe // debug de winhlp32.exe en mode DOS
    -u // désassembler
    15A1:0000 0E            PUSH    CS // code segment
    15A1:0001 1F            POP     DS // data segment
    15A1:0002 BA0E00        MOV     DX,000E // adresse du message
    15A1:0005 B409          MOV     AH,09 // imprimer le mesasge
    15A1:0007 CD21          INT     21 // via l'API DOS
    15A1:0009 B8014C        MOV     AX,4C01 // fin de programme errorlevel=1
    15A1:000C CD21          INT     21 // via l'API DOS
    -d 15a1:000e // le message se trouve bien à cette adresse :D
    15A1:0000                                            54 68                 Th
    15A1:0010  69 73 20 70 72 6F 67 72-61 6D 20 63 61 6E 6E 6F   is program canno
    15A1:0020  74 20 62 65 20 72 75 6E-20 69 6E 20 44 4F 53 20   t be run in DOS
    15A1:0030  6D 6F 64 65 2E 0D 0D 0A-24 00 00 00 00 00 00 00   mode....$.......
    Ce sont donc deux choses bien différentes, et il se trouve que la redirection des entrées/sorties d'une application DOS, ça ne fonctionne pas (j'ai pas testé sous XP), c'est un bug connu chez Microsoft qui recommande d'invoquer une application console Windows qui a son tour invoquera l'application DOS...cette dernière héritant de la console de l'application console, la sortie remontera jusque la première application ... vous me suivez ?

  5. #5
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    bien ... je comprends le principe et ca rejoint quelques une de mes experiances
    Mais je vais regarder ca au calme

    Citation Envoyé par paul toth
    tu peux en réaliser une avec Turbo Pascal (application DOS MZ)
    et c'est là qu'on retrouvera les bonnes vieilles unité CRT et Graph pour gérer respectivement l'écran texte et le mode graphique
    CRT, Graph ...... TP ..... hummm nostalgie quand tu nous tiens
    Ce bon vieux TP3 et ces caracteres speciaux pour faire du graph

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 20
    Points
    20
    Par défaut Merci
    merci de votre aide j ai trouver une solution " forum java " alors il faut changer javac :
    test.java 2>>c:\sotie.txt
    car il faut recuperer la sortie d'erreur pa la standard

  7. #7
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Simple question : Tu cherche a faire un compilo java automatique ?
    J'ai un tit programme Batch qui gere pas mal de choses de bases pour la compile de programmes java en ligne de commande

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    oui je veux le faire et j'ai la meme idée d'appeler un fichier .bat appartir de mon application ;mai si tu peu me filer ton exemple de fichier .bat je serrais reconnaissant merci

  9. #9
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par A.SISSA
    oui je veux le faire et j'ai la meme idée d'appeler un fichier .bat appartir de mon application ;mai si tu peu me filer ton exemple de fichier .bat je serrais reconnaissant merci
    comme precisié par MP :
    Lien sur la discussion Java
    Lien sur le message

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    Merci bps de votre aide

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

Discussions similaires

  1. Récuperer les messages d'erreurs dans le code
    Par TSalm dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/06/2007, 13h30
  2. Réponses: 2
    Dernier message: 15/05/2006, 12h26
  3. Réponses: 1
    Dernier message: 05/10/2005, 11h04
  4. [Message d'erreur] gérer les message d'erreurs
    Par heid dans le forum Langage
    Réponses: 2
    Dernier message: 12/10/2004, 14h57
  5. recuperer les messages d'erreurs de interbase
    Par devalender dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/06/2004, 11h45

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