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

Lazarus Pascal Discussion :

[Linux] Problème de lecture de fichier texte


Sujet :

Lazarus Pascal

  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 389
    Par défaut [Linux] Problème de lecture de fichier texte
    J'ai un problème avec la lecture de fichier texte formaté sous Linux et Lazarus.
    J'utilise une petite application sous Delphi 4 et XP qui lit un fichier texte de type *.xls que je décortique ensuite pour en utiliser les éléments dans une base de données.
    Cherchant à passer sous Linux et Lazarus, je réécris mon application mais voilà j'ai un problème : sous Lazarus et Linux, le début de mon fichier comprend des caractères "nuisibles" par exemple :
    0xb7d05678'
    01/02/2008'#9'-9,5'#9....etc
    La même procédure pour le même fichier sous XP me donne via un point d'arrêt et l'évaluateur de Lazarus :
    '01/02/2008'#9'-9,5'#9...etc
    Sous Delphi, j'ai le même résultat que ci-dessus, si je regarde les valeurs du fichier via un éditeur hexa je n'ai en début de fichier avant le codage de la date la valeur hexa : 20 qui est sauf erreur le codage d'un espace.

    Quel est le problème et comment le corriger ou le contourner ?

    Ci-joint le code de ma procédure :
    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
    procedure TFImport.ChoixLectureFichier;
    {ouverture fichier texte}
    begin
    MEXTENSION:=Copy(OpenDialog1.FileName,Length(OpenDialog1.FileName)-2,3);
    MEXTENSION:=UpperCase(MEXTENSION);
      if  OpenDialog1.FileName<>'' then
      begin
      AssignFile(FICHIER, OpenDialog1.FileName);{ Fichier dans la boe}
      MFICHIER:=OpenDialog1.FileName;
      Reset(FICHIER);
      TAMPON:='';
      Readln(FICHIER,XTAMPON);    { Lecture premier ligne du fichier }
        while XTAMPON<>'' do
        begin
        TAMPON:=TAMPON+XTAMPON+#10;
        Readln(FICHIER,XTAMPON);    { Lecture ligne suivante du fichier }
        end;
        if MEXTENSION='XLS' then ExtractionXls;
      CloseFile(FICHIER);
      end
      else
      begin
      MessageDLG ('Erreur, pas de fichier selectione', mtError, [mbCancel],0);
      end;
    end;
    Question supplémentaire : quelle police pour avoir les bons caractères accentués dans l'EDI de Lazarus ?
    Merci d'avance

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    hmm.. je te conseillerais plûtot d'y accéder en fichier binaire... tu n'auras pas ces problèmes d'encodage

  3. #3
    Membre chevronné

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Par défaut
    Les fichiers Excel ne sont pas des fichiers texte mais des fichiers binaires.
    Donc ça ne se lit pas avec readln... C'est une erreur de conception de ta part d'attaquer des fichiers binaires de cette façon.

  4. #4
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 389
    Par défaut
    Je précise que c'est des fichiers texte téléchargés depuis mon compte bancaire et qui sont donnés comme des fichier texte formatés par un séparateur "TAB" ou ";" que que je peux lire avec writer d'open office et que je n'ai pas ce problème avec la même procédure sous xp et que je l'utilise depuis plusieurs années sous delphi 4 et de plus quand je visualise le fichier avec un éditeur hexa j'ai bien un codage asci, alors où est le problème.
    Merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Salut,

    as-tu essayé de reformatter ton fichier txt sous linux?
    Ouvre un terminal et tape la commande suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dos2unix <tonfichier.txt>
    et regarde si tu as toujours le problème

  6. #6
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 389
    Par défaut
    Et bien j'ai toujours mon problème avec toujours ces caractères "parasites" à la lecture du fichier.
    Précision après un nouvel essai d'ouverture avec OpenOffice writer, ce dernieraffiche une fenêtre avec le choix d'un jeu de caractères puis celui du séparateur et ouvre le fichier mais via calc.
    Ces fichiers je les ouvre sans problème avec gedit, cat, ou la commande voir de MC. Alors je pense que ces fichiers sont bien au format texte et pour le confirmer sous xp je les lis correctement avec la commande readln, je ne connais que cette commande sous lazarus pour lire un fichier.
    Où est le problème ?

  7. #7
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 964
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 964
    Par défaut
    Hie,

    Joins-nous un de ces fichiers, s'il n'est pas trop gros.

  8. #8
    Membre émérite
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut
    Je lance juste une idée comme ça, je n'ai rien vérifié : ces fichiers ne seraient-ils pas au format Unicode; et les octets "parasites" tout bonnement les octets d'introduction indiquant ce format ?

  9. #9
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 389
    Par défaut
    Pour l'unicode je ne sais pas trouvé l'information et ne sais pas la trouver.

    Ci-joint un fichier : fichier-telecharger.xls
    et un autre du même genre passé à la moulinette avec dos2unix indiquée dans une des réponses.
    Merci de votre aide
    Fichiers attachés Fichiers attachés

  10. #10
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 964
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 964
    Par défaut
    Jie,

    Aucun problème avec ces 2 fichiers, sauf que
    fichier-telecharger.xls
    devrait s'appeler
    fichier-telecharger.txt
    car c'est du pur texte.

    Je ne comprends pas ton problème s'il concerne ces fichiers.

  11. #11
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 389
    Par défaut
    Je viens de faire un essai avec la même procédure et le même fichier sur un autre ordinateur mais avec une autre version de fedora la 7 et l'environnement kde et là pas de problème, donc ce dernier doit être lié à l'environnement du premier pc qui est sous fedora 9 et gnome.
    J'ai regardé la réponse à la commande : locale elle est identique sur les 2 pc.
    Alors où est le problème ? et comment chercher à le résoudre ?

    Quand au nom du fichier et son extension c'est mon "banquier" qui le donne en indiquant que c'est un fichier texte avec séparateur mais non enrichi de code de formatage, c'est vrai qu'il pourrait avoir l'extension txt.

    Merci de l'aide

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/04/2011, 10h54
  2. Problème lecture de fichier texte (*.txt)
    Par Tartuffe245 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 25/03/2010, 15h41
  3. Problème de lecture de fichier texte
    Par colorid dans le forum Langage
    Réponses: 14
    Dernier message: 07/07/2008, 19h13
  4. Problème lecture gros fichier texte
    Par UnnamedBoy dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 22/02/2008, 11h13
  5. lecture de fichier texte
    Par prorider dans le forum C
    Réponses: 36
    Dernier message: 08/09/2004, 20h55

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