Accueil > > > [C++] BASE64CONVERTER V1.1, UN ENCODEUR DÉCODEUR EN BASE64
[C++] BASE64CONVERTER V1.1, UN ENCODEUR DÉCODEUR EN BASE64
Information sur la source
Description
Ce logiciel décode ou encode des chaînes de caractères ou des fichiers en base 64, un système qui convertit des données binaires en données texte (pour les mails). Je n'en ai pas trouvé sur internet qui encode ET décode (un seul qui décode) donc je vous en fais profiter :). J'ai conservé le code de base64.sourceforge.net, qui convertit à la fois les strings et les fichiers. ________________________________________ La version 1.0 traitait une façon originale de faire des threads, mais elle se révélait trop lente (et en réalité ce n'étaient pas des threads). Et l'appli était assez lourde (300ko) à cause des librairies STL. J'ai donc tout refait en C avec de vrais thread lancés avec _beginthread... Ca donne une petite appli de 41 Ko ! ________________________________________ Ce code va me servir avant tout à créer un logiciel pour envoyer ou lire des emails avec ou sans pièce jointe, et comme le protocole MIME le veut, les pièces jointes sont encodées en base64 ou UUEncode. Joyeux noël à tous !
Source
- // Je laisse volontairement l'ancien code pour ceux qui n'ont pas vu la source 1.0
- // URL de la source 1.0 : http://ordiman85.free.fr/logiciels/sources/Base64Converter%20v1.0%20-%20Source.zip
- //
- // Attention Ce code n'a plus aucun rapport avec le code de la version 1.1 !
- //
- // Pour les tâches d'arrière-plan
- //
- // Une alliance en une boîte de dialogue et la fonction PeekMessage
-
- // Variable définissant la tâche d'arrière-plan à lancer
- int CallBackJob = 0;
- MSG msg;
- // CreateDialog est non-bloquante, on doit donc lancer GetMessage ou PeekMessage
- HWND hWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DialogProc);
- // Boucle (presque) infinie (terminée par return 0;)
- for (;;)
- {
- // Traite tous les messages
- while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
- {
- // Si le programme veut quitter
- if (msg.message == WM_QUIT)
- return 0;
- // Traitement dans Dialogproc
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- // Arrivé ici, il n'y a plus de messages, donc on peut continuer la tâche d'arrière-plan
- // Choisit la tâche à effectuer selon la variable CallBackJob définie auparavant
- switch (CallBackJob)
- {
- case JOB_ENCODE:
- OnEncode(hWnd);
- break;
- case JOB_DECODE:
- OnDecode(hWnd);
- break;
- default:
- // Attend un message
- WaitMessage();
- break;
- }
- }
// Je laisse volontairement l'ancien code pour ceux qui n'ont pas vu la source 1.0
// URL de la source 1.0 : http://ordiman85.free.fr/logiciels/sources/Base64Converter%20v1.0%20-%20Source.zip
//
// Attention Ce code n'a plus aucun rapport avec le code de la version 1.1 !
//
// Pour les tâches d'arrière-plan
//
// Une alliance en une boîte de dialogue et la fonction PeekMessage
// Variable définissant la tâche d'arrière-plan à lancer
int CallBackJob = 0;
MSG msg;
// CreateDialog est non-bloquante, on doit donc lancer GetMessage ou PeekMessage
HWND hWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DialogProc);
// Boucle (presque) infinie (terminée par return 0;)
for (;;)
{
// Traite tous les messages
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
// Si le programme veut quitter
if (msg.message == WM_QUIT)
return 0;
// Traitement dans Dialogproc
TranslateMessage(&msg);
DispatchMessage(&msg);
}
// Arrivé ici, il n'y a plus de messages, donc on peut continuer la tâche d'arrière-plan
// Choisit la tâche à effectuer selon la variable CallBackJob définie auparavant
switch (CallBackJob)
{
case JOB_ENCODE:
OnEncode(hWnd);
break;
case JOB_DECODE:
OnDecode(hWnd);
break;
default:
// Attend un message
WaitMessage();
break;
}
}
Conclusion
Version 1.1, prête à compiler avec Code::Blocks Logiciel disponible sur http://ordiman85.free.fr/
Si vous trouvez des bugs ou des erreurs, ça donnera lieu à des corrections, promis !
Joyeux noël à tous et bonne année ;)
Historique
- 28 décembre 2006 14:58:03 :
- Version 1.1 : retapé en C, gestion des threads ajouté (+ rapide et + léger -> 41Ko)
- 28 décembre 2006 15:18:32 :
- maj (petite correction)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
conversion de fichiers en C. [ par primo177 ]
Bonjour tout le monde.J'aimerais savoir svp s'il existe un moyen de convertir un fichier word ( .doc) en uin fichier (.txt).Merci d'avance.C'est vraim
conversion de fichiers [ par sergio18 ]
salutJe fais un projet où je dois faire une conversion du fichier.POur cela le prof qui me suit m'a demandé d'effectuer ds un premier temps une lectur
Codage Base64 en C [ par jcf1981 ]
Bonjour je cherche une fonction C pour décoder une chaine de caractère en base64 . Pour la coder en PHP , pas de soucis mais pour la d
Client/serveur Socket transfert de plusieurs fichiers [ par atifelkhachine ]
Bonjour.quelqu'un peut me donner un pti guide pour realiser une application C/S de transfert de plusieurs fichiers binaires en utilsant les sockets .
Précision sur les include [ par buno ]
Salut les gens!J'aimerais avoir quelques petites précisions sur les fichiers que l'on inclus, notamment, j'aurais deux questions:- la premiè
Code Client/Server et envoi plusieurs fichiers ... [ par QuakeCoder ]
Bonjour, Après des efforts j'ai réalisé une petite application Client/Server qui sert à transférer plusieurs fichiers du clie
En-tête de fichiers [ par lisandru ]
Bonjour, Alors voila mon problème.Je voudrais savoir si il est possible d'insérer un en-tête dans un fichier sans avoir forcement a insérer l'en-tête
fichiers [ par marianna2005 ]
slt .j ai un grooooooooooos probleme et je veux de l aide: je fais un stage ds une societe de devloppement informatique.mon sujet est de faire un prog
Fichiers en ressources - API Windows [ par banane_rose ]
salut voilà je voudrais savoir comment mettre des fichiers en ressources du programmes puis après pouvoir les enregistrer après (dialo
!!! Petit sondage !!! [ par yoyo269 ]
Alors voilà. Je souhaite vous sonder (en tout bien tout honneur bien sûr) sur une source à déposer ou non. Il y a qq temps j'ai pr
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|