GOOGLETRANSLATOR

gagah1 Messages postés 509 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 3 août 2010 - 19 sept. 2007 à 09:21
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 21 sept. 2007 à 00:42
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/44119-googletranslator

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 sept. 2007 à 00:42
char *Length = new char;
wsprintf(Length, "%d", PostData.length());
string Req = "POST " + string(...)....;
delete Length;

Je crains fort que wsprintf n'écrive au dela du simple char alloué.
Pourquoi pas:
char Lenght[12];
tout simplement ? irait au moins aussi bien.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 sept. 2007 à 00:32
J'ai essayé de plusieurs manières, rien à faire, il retourne le texte excédentaire non traduit.
Idem que sur l'interface web.
cs_Mini92 Messages postés 45 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 10 janvier 2009
20 sept. 2007 à 23:26
Salut, pour commencer merci pour vos coms.
Bref j'ai un peu modifié le code, rien qu'en modifiant la lib sstream par un wsprintf la taille de l'exe diminue enormément ^^
Pour la désaloccation mémoire ba.. le texte est envoyé directement dans la fonction LoadFile, c'est aussi simple.

Par contre au niveau des 4994 oct t'es sûr BruNews ?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 sept. 2007 à 17:02
C'est fini mais je vais modifier pour limiter le texte.
Non non, très peu d'asm, je me modère...
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
20 sept. 2007 à 16:48
Bah alors Brunews .... Et moi qui croyait que tu savais parler anglais!
Sinon bonne source et j'attend la tienne avec impatience Brunews (j'suis sure qu'on va y avoir plus d'ASM que de C/C++) ^^
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 sept. 2007 à 16:10
Je viens de vérifier direct sur l'interface web de google translation, j'obtiens exact la même limite que dans le prog donc c'est confirmé.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 sept. 2007 à 15:55
Mini92, j'ai fait des tests et me semble que google ne traduit plus au delà de 4994 octets de texte.
Tu confirmes ?
mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023
20 sept. 2007 à 08:20
ne fonctionne pas si on se trouve derrière un proxy :
Error function connect()
Connection to the server 66.102.11.99 failed !


Pour la taille de l'exe, avec DevCpp :
- en cochant "Plus d'optimisations"
- en cochant "Retirer les symboles de l'executable"
on passe déjà à 200Ko
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 sept. 2007 à 01:32
Très bonne idée de source.
Faudra corriger ce qu'a noté gagah1.

Dommage d'utiliser des 'string' et autres stream, vu les manips que tu fais dessus dans le thread, l'espace mémoire du processus est transformé en un vrai gruyère.
La taille de l'exe s'en ressent aussi, c'est énorme inutilement. J'ai refait avec 1 seule alloc pour 1 seul buffer dans le thread au lieu des dizaines implicites dues aux string, l'exe fait 9 Ko. Pas encore mis l'enreg de la config ni le change de font mais ça n'ira pas beaucoup plus loin en taille.
gagah1 Messages postés 509 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 3 août 2010
19 sept. 2007 à 09:21
Source interessante. Par contre à chaque appelle de fn LoadFile(..) tu oublies de désallouer les mémoires allouées par new et aussi dans la fonction LoadFile(...) tu oublies d'allouer le dernier octet (null terminator): Content = new char[FileSize+1]. Sinon je trouve cette source bien utile.
Rejoignez-nous