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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Hie,

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

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