CODAGE EN BASE64 DE CHAÎNES UNICODE

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 9 nov. 2011 à 12:36
gta126 Messages postés 18 Date d'inscription dimanche 9 juillet 2006 Statut Membre Dernière intervention 29 mars 2011 - 11 nov. 2011 à 16:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/53731-codage-en-base64-de-chaines-unicode

gta126 Messages postés 18 Date d'inscription dimanche 9 juillet 2006 Statut Membre Dernière intervention 29 mars 2011
11 nov. 2011 à 16:26
L'intéret de coder en base64 est dans mon cas de pouvoir transmettre des fichiers binaires par réseaux via les composant Indy.

Il y a peut-être une autre façcon de faire pour transmettre des fichiers binaires en réseaux mais je vous explique comment j'ai fait:

1. Par exemple le client demande au serveur un fichier
2. Le serveur ouvre le fichier dans un TFileStream
3. Le serveur lit par exemple les 1024 premiers octets (moins si le fichier est plus petit) et les stockes dans un string (WideString étant sous Delphi XE2)
4. Le serveur code cette string en base64 car la fonction WriteLn des composants Indy pose problème avec des caractères non imprimable (qui sont en grand nombres dans les fichiers binaires).
5. Le serveur envoie les données codées en base64 au client
6. Le client décode les données lues
7. Le client écrit dans un fichier les données reçues
8. Le client demande la suite

etc jusqu'à tout recevoir.

Si d'ailleur il existe une meilleur façcon de transmettre des fichiers en réseaux, je serais ravis de le savoir.

Ici j'ai gérer le cas que les string sont en Unicode donc les caractères sont sur 2 octets ce qui est bien différent que des AnsiString qui elles sont sur 1 octet.
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
9 nov. 2011 à 12:36
Bonjour,
ce qui aurait été bien, c'est d'indiquer
l'intérêt d'une telle codification, du moins celle que tu aurais notée.