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 :

[Fichiers] Les caractères enregistrés diffèrent de ceux saisis


Sujet :

Langage Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 13
    Points : 8
    Points
    8
    Par défaut [Fichiers] Les caractères enregistrés diffèrent de ceux saisis
    Bonsoir,

    J'ai un nouveau problème à vous soumettre car je n'arrive pas à le solutionner même apès plusieurs heures de recherche.

    J'ai un programme qui demande la saisie d'enregistrements à l'écran et qui les sauvegarde dans un fichier. Mon problème survient lorsque je fais la lecture de ce fichier pour en afficher le contenu à l'écran et aussi l'imprimer.

    Les caractères accentués ne sont pas enregistrés correctement et sont donc retourné erronnés lors de la lecture du fichier.

    Comme au début je ne faisait qu'imprimer le contenu du fichier, je soupçonnais à tort la compatibilité des jeux de caractères avec l'imprimante mais ce fut une fausse piste.

    Auriez-vous une petite idée pour m'éclairer :

    Au plaisir !

  2. #2
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 274
    Points : 2 477
    Points
    2 477
    Par défaut
    Bonjour

    Utilises-tu TP sous DOS ou Ouindose(TM) ?
    Dans le premier cas, je ne me souviens pas d'un tel pb...
    Il faudrait sans doute vérifier (avec un éditeur hexa) si le fichier contient les bons codes, puis vérifier que TP ne contient pas d'option permettant de changer de pages de codes, sans passer par celles du DOS...
    Je ne vois pas d'autre piste pour le moment.

    Si c'est sous Ouindose, alors il faut s'assurer que les pages de codes sont compatibles, que le système assure un compatibilité correcte avec la logiciel...

    Bon courage

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Ça me dépasse un peu...
    Salut ALT,

    Je travail avec DELPHI 6 en application console car c'est ce que l'on nous demande dans le cadre de mon cours.

    Alors oui malheureusement pour moi j'utilise OUIN DOSE(TM)

    Je t'avoue cependant que j'ignore comment faire pour modifier les codes de pages.


    Il faudrait sans doute vérifier (avec un éditeur hexa) si le fichier contient les bons codes

    J'ai essayé des chose comme WIDECHAR car on dit dans l'aide que ça change le codage des caractères 1 octet ou deux j'sais plus trop. Aussi UTF8, ANSI mais rien n'y fait. J'ai aussi triché et édité mon fichier pour y inscrire directement les caractères " é et à " pour le lire et me retourner leur code. Je me rends comptes alors que les codes diffèrent de ceux ASCII mais je ne trouve pas de quelle page ils proviennent.

    Je crois que je vais tout simplement faire fi de ce problème et ne pas mettre les accents lors de la saisie puisque ça déborde légèrement du cadre de mon exercice à remettre. Ce n'est que dans un but de perfectionnement que je voulais régler ça.

    A+

  4. #4
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 274
    Points : 2 477
    Points
    2 477
    Par défaut
    re-bonjour

    Bon, ben on avance : OuinDose utilise le code ANSI, qui est par nature différent de l'ASCII.
    Or le mode console utilise l'ASCII... Or, Delphi est en mode graphique, donc il doit gérer l'ANSI.
    Il y aurait un gag par là que ça ne m'étonnerait pas beaucoup.

    Regarde dans les paramètres de Delphi en console, pour voir s'il n'y a pas moyen de changer le codage des caractères.
    Regarde aussi dans les paramètres de la console DOS, dans ce même but.

    Bon courage

  5. #5
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Puisque tu es sous Delphi, tu peux utiliser sans problème les fonctions de conversion ASCII <-> ANSI. Il doit bien y avoir un truc dans le genre.

    Sous BPW et Windows 3.1, la fonction s'appelait OemToAnsi et AnsiToOem.

    Mais, avec l'avènement de Win32, cette fonction est passée comme "obsolète", et a été remplacée apr la fonction OemToChar. Il faut regarder dans l'aide Win32 SDK.

    A+

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Manque de temps
    Salut,

    Comme je n'avais plus de temps pour expérimenter les options que vous m'avez si gentillement décrites, j'ai tout simplement omis d'inscrire les accents lors de la saisie des enregistrements pour mon fichier (Je sais c'est un coup dur pour notre belle langue). Mais une chose est certaine, je n'en resterai pas là...

    J'ai remis mon travail car je ne crois pas que la gestion des accents était primordiale pour démontrer son fonctionnement. N'empêche que j'aurais bien aimer avoir une semaine de plus...

    Merci à tous et je vous redonne des nouvelles sur la convertion.

    À la prochaine

  7. #7
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 967
    Points : 59 729
    Points
    59 729
    Billets dans le blog
    2
    Par défaut
    Salut !

    Ai-je bien compris : ton programme se limite-t-il à saisir des données et à les stocker dans un fichier ?
    Si oui, quel programme utilises-tu pour afficher et imprimer le contenu de ton fichier ?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Pas tout à fait ça
    Salut Alcatîz,

    Je t'avoue que c'est mêlant,

    J'ai traficotter mon programme pour que je puisse faire la saisie des enregistrements à l'écran et la sauvegarder dans un fichier.

    Ensuite, je relis ce fichier et le tri via un de ses champs (nom).

    J'ai ajouter un menu qui permet ensuite de l'imprimer, d'afficher les enregistrements dans l'ordre de saisie ou de les afficher dans l'ordre trié.

    Le problème que j'éprouve c'est que lorsque je relis le fichier les accents ne suivent pas idem pour l'impression.

    Ce qui me mêle le plus (car je ne suis pas famillier avec tout ça) c'est que
    lorsque j'exécute un WRITELN sur l'imprimante je peux écrire la chaîne :

    Writeln(Print,'Salut j'aime l'école');

    et tout sortira correct à l'impression. Parcontre, si je ne fais qu'afficher à l'écran cette phrase je dois écrire :

    Writeln('Salut j'aime l''',#130,'cole');

    pour obtenir l'affichage des accents.

    Je me suis découragé après plusieurs tentatives car cela dépasse mon niveau de connaissance actuelle. Je n'ai pas eu le temps d'expérimenter les suggestions des autres pour l'instant.

    Merci pour vos explications

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

Discussions similaires

  1. InputQuery n'affichant pas les caractères saisies
    Par netah25 dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2007, 11h03
  2. Réponses: 2
    Dernier message: 14/09/2006, 13h56
  3. Réponses: 3
    Dernier message: 22/07/2006, 12h26
  4. [C#] mémoriser les caractères saisis au clavier
    Par tiboleo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 04/06/2006, 12h25
  5. Réponses: 2
    Dernier message: 28/11/2005, 10h12

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