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 :

Encodages DOS et Windows


Sujet :

Langage Delphi

  1. #1
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut Encodages DOS et Windows
    Bonjour à tous et à toutes,


    voilà j utilise une fonction de Nono40 qui me permet de capturer la sortie DOS. Concrètement la commande est lancée et copié dans un fichier TXT ce fichier est ensuite chargé dans un TMemo. Malheureusement, c 'est pas beau et lisible les accents sont remplacés par des "¨y`". Par consequent :

    1/ comment faire pour résoudre ce petit probleme?

    2/ il y a 3 tonnes de lignes vide lors que chargement, y a t il une option pour y remedier ou bien le scan du TMemo et suppression des lignes indésirables suffira t il ? (Ah oui, Wordwarp is True).

    Merci



    @++

  2. #2
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    Re,

    Bon en attendant, j ai fait une petite procedure qui vire les lignes "vides" dans mon TMemo. Mais le mystere reste entier pour les accents et characters speciaux.

    @++

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 292
    Points : 222
    Points
    222
    Par défaut
    Il est possible que le jeu de caractères de DOS soit différent du jeu de caractère de ton fichier texte ce qui fait que le DOS n'interprète pas les caractères de la même manière.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 43
    Points : 52
    Points
    52
    Par défaut
    Il te faut une fonction pour convertir ton texte, regarde là :

    http://www.jcolibri.com/articles/colibri_helpers/u_strings/u_strings.html

  5. #5
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    Bonsoir,

    Merci Nicolas.C ca marche du tonnere. Cependant je dirais simplement que la masse d unité à ajouter est phénomenale, l unité ne marche pas seule et c est bien dommage surtout si on utlise le "package" à son plein potentiel.

    Ah, oui à celles et ceux qui veulent capturé les fenetres DOS, il faut noter que sous WinXP ce n est pas MS DOS mais un émulateur par conséquent certaines commandes sont des sorties directe en Mode DOS (IPconfig) et d autres pas (ping). Et utilisé la converstion DOS -> Win sur les commandes qui n en ont pas besoin ... c est pas beau ! mais alors pas du tout.

    vala

    @++

  6. #6
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    SAlut,

    Je fais remonter ce topic pour vous dire que bien que le lien fournit par Nicolas.C correspond bien à ma recherche cepenant je deconseillerai de vous en servir si c est juste pour vous servir de la conversion DOS vers Windows car il faut rajouter 3 tonnes d'unités avant que ca marche. J ai aussi eu l occasion d utiliser l unité QStrings qui fait la conversation en utilisant les instructions assembleurs mais les accents ne sont pas bien gérer. Finallement il suffit d utliser la routine de Win32.dll contenue dans l unité Windows. Voici une fonction de conversion:
    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
     
    unit UUtils;
    ******************************************************************************}
    {*                                                                            *}
    {* Project : NetToolv2                Academic Institution: Napier University *}
    {* Author : Krz.Aramis                department: School Of Computing         *}
    {* Unit name : UUtils.pas             From Name: N/A                          *}
    {* Version : 1.0                                                              *}
    {* Graphic Interface Recommanded : N/A                                        *}
    {*                                                                            *}
    {******************************************************************************}
    interface
      function DosStrToWinStr(str_Dos : String) : String;
     
    implementation
    uses Dialogs, Windows;
     
    CONST
      Err_Msg_OverFlow = 'Buffer Overflow in converting to Windows Characters !';
     
    function DosStrToWinStr(str_Dos: String): String;
    const k_buffer_max= 1024;
    var l_buffer: array[0..k_buffer_max] of Char;
        l_pt_buffer_z: pChar;
    begin
      if Length(p_oem)> k_buffer_max
        then begin
          MessageDlg(Err_Msg_OverFlow,mtError,[mbOk],0);
          Result:= p_oem;
        end
        else begin
          l_pt_buffer_z:= @ l_buffer;
          OemToAnsi(pChar(p_oem), l_pt_buffer_z);
          Result:= l_pt_buffer_z;
        end;
     end; 
    end.
    Voila, j espere que ce ci aiderai plein d autres utilisateur.



    Ar@mi$ @->--

    @++

    PS: Les outils de John Colibri et QStrings sont des unités qui ne nécissite pas l utilisation des librairies standard delphi c est la raison pour laquelle c'est ou bien difficile de s en servir ou bien imcomplete lors de la conversion

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

Discussions similaires

  1. caractère dos et Windows
    Par kardevlop dans le forum Langage
    Réponses: 1
    Dernier message: 29/10/2005, 15h50
  2. Problème d'un passage d'un fichier DOS vers Windows Xp
    Par petitcoucou31 dans le forum Langage
    Réponses: 20
    Dernier message: 24/07/2005, 21h59
  3. [Réseau] Problème entre X-DOS et Windows 98
    Par FLCEOAP dans le forum Développement
    Réponses: 1
    Dernier message: 16/05/2005, 00h41
  4. Conversion d'un fichier dos vers windows ?
    Par elitost dans le forum Windows
    Réponses: 4
    Dernier message: 10/02/2005, 18h42
  5. Ascii DOs -> Ascii Windows
    Par remixtech dans le forum Langage
    Réponses: 3
    Dernier message: 22/03/2003, 08h14

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