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 :

Lecture d'un fichier encodé en base64


Sujet :

Langage Delphi

  1. #1
    cdb
    cdb est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Lecture d'un fichier encodé en base64
    Bonjour,

    je cherche a lire un fichier codé en base 64 et de stocker son contenu dans une variable de type String.

    Actuellement, si j'utilise une TStringList, son texte contient la donnée b64 mais aussi tout une série de caractères non imprimable.

    Toutefois si je charge le même fichier via un TMemo en utilisant la méthode Memo.Lines.LoadFromFile(), la donnée affichée est correcte.

    Je pense que le fichier base64 doit être encodé dans un format incompatible avec ANSI ou ASCII mais je ne sais pas comment le charger.

    Merci de votre aide pour pouvoir lire ce fichier et le stocker dans une string. Je mets ci dessous le lien URL d'un fichier b64 d'exemple qui me pose problème.

    http://www.eaistorage.com/share/test.b64

    Sébastien

  2. #2
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Il n'y a pas de raison que le résultat soit différent. Ton code de lecture utilisant une TStringList doit être buggé.

  3. #3
    cdb
    cdb est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bonjour Pierre,

    Le fichier encodé en base 64 est créé avec un composant du package TAsCrypto. Il contient une méthode EncodeFile()

    Une fois le fichier encodé, il est possible de l'ouvrir avec Winzip, Wordpad, Notepad, Ultraedit. Mais si j'écris :

    StringList.LoadFromFile(monfichier);
    MaString := StringList.Text;
    ShowMessage(MaString);
    ^ la c la catastrophe !!! Pas d'erreur mais il le buffer est totalement corrompu !!

    Il est peut être important de dire que j'utilise Delphi 7 !!

    Pierre as tu essayés de lire le fichier que j'avais joint dans mon premier post ? Si oui, pourrais tu me donner le code source que tu as utilisé.

    Merci de ton aide .

    sébastien

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    D'après ce que j'ai vu ton fichier tient sur une seule ligne, peut être que showmessage n'accepte pas une ligne si longue

  5. #5
    cdb
    cdb est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Peut etre, mais juste en inspectant la string qui contient le base 64, la première partie du fichier est correcte, mais a peu pret a 1/3, le contenu de la string n'est que des #8 #0 et autres.

    En notepad, ces caractères n'apparaisent pas. Lorsque j'inspecte, et que je ne récupère que la chaine "claire", en retirant tous les la suite de #..., et que je décode ce contenu, l'image contenue dans le base 64 est corrompue (totalement noire).

    Je vous propose d'essayer de lire le fichier joint en premier post via le code ci dessus, je n'ai toujours pas trouvé de solution...

  6. #6
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    J'avais effectivement testé avec le fichier fourni sans rencontrer de problème.
    Le mieux est que tu fasse une mini-application de test pour que l'on puisse voir ce qu'il se passe. Et pense à vérifier que le fichier qui est en téléchargement soit bien le même que celui-que tu utilise (au cas où il aurait été modifié lors d'un transfert par ftp par exemple). Tu as peut-être un problème lié à un fichier encodé en Unicode.

  7. #7
    cdb
    cdb est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Résolu
    Je viens de trouver le problème. Il s'agirait apparement d'un bug d'affichage du mode Evaluate/Modify de delphi. Le but était de charger le contenu ce fichier dans une base de donnée. Or lors de lorsque j'evaluait le contenu de la string contenant le fichier, les fameux caractères #0 apparaissaient. Si j'enregistrait ma string dans un fichier, il n'y avait aucun souci. Le plus drole, c'est que le showmessage a le meme probleme, ainsi qu'Araxis Merge. Mais le résultat est là, je suppose qu'un bloc de caractère est mal traduit à l'affichage...

    Merci pour votre aide.

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

Discussions similaires

  1. [Encodage] Fichier encodé base64 ?
    Par Angel-hybride dans le forum Langage
    Réponses: 6
    Dernier message: 06/04/2014, 17h37
  2. encoder une image et un fichier xml en base64
    Par fallsys dans le forum C++
    Réponses: 2
    Dernier message: 04/09/2008, 13h36
  3. Lecture fichier encodé Unicode
    Par iuchiban dans le forum Ruby
    Réponses: 1
    Dernier message: 29/03/2007, 14h33
  4. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2003, 08h54
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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