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 :

Connaître l'encodage d'un fichier "texte" [Lazarus]


Sujet :

Lazarus Pascal

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 385
    Points : 223
    Points
    223
    Par défaut Connaître l'encodage d'un fichier "texte"
    Bonjour,
    Pour connaître une peu plus la programmation avec lazarus sous linux je cherche à manipuler des fichiers tableurs venant de libre office vers une base sqlite.
    Par exemple UTF8 ou ISO_8859_15 ou autres.
    Dans mon appli d'essai il me faut utiliser une fonction de transcodage comme UTF8ToSys ou autre mais pour savoir laquelle utiliser il me faudrait connaître l'encodage du fichier.
    Comment le faire à l'exécution après le choix dans un OpenDialog ?
    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour ! Une possibilité est d'utiliser la fonction GuessEncoding() de l'unité LConvEncoding. Attention, l'argument passé à la fonction n'est pas le nom du fichier, mais son contenu.

    Voici un exemple d'utilisation (testé sous 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    uses
      LConvEncoding;
     
    { TForm1 }
     
    function LoadStringFromFile(const filename: string): string;
    var
      fs: TFileStream;
    begin
      fs := TFileStream.Create(filename, fmOpenRead or fmShareDenyNone);
      try
        SetLength(Result, fs.Size);
        fs.ReadBuffer(Result[1], Length(Result));
      finally
        fs.Free;
      end;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if OpenDialog1.Execute then
        Edit1.Text := OpenDialog1.FileName;
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
    var
      s: string;
    begin
      if not FileExists(Edit1.Text) then
      begin
        ShowMessage(Format('File not found: "%s"', [Edit1.Text]));
        exit;
      end;
     
      s := LoadStringFromFile(Edit1.Text);
     
      Edit6.Text := GuessEncoding(s);
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 385
    Points : 223
    Points
    223
    Par défaut
    Bonsoir,
    Merci pour cette réponse qui sous linux répond correctement au codage UTF8 mais pourle codage ISO8859_15 la réponse est ISO8859_1, mais c'ela permet l'adaptation du choix décodage.
    Merci encore problème pour moi résolu.
    A+

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

Discussions similaires

  1. Connaître l'encodage d'un fichier avant l'ouverture
    Par dmganges dans le forum Langage
    Réponses: 25
    Dernier message: 04/08/2014, 17h38
  2. Comment connaître l'encodage d'un fichier texte?
    Par sergentgarcia dans le forum Général Python
    Réponses: 3
    Dernier message: 26/05/2008, 10h41

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