Commentamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Compteur de mots

0/5 (1 avis)

Snippet vu 2 933 fois - Tlcharge 5 fois

Contenu du snippet

J'ai fait ceci un peu à la va-vite, vous m'en excuserez. Il s'agit donc vraiment d'une application et non pas d'un script POO.

Vous avez toujours utilisé Microsoft Office Word pour compter les mots de vos textes. Pourtant, dans la langue française, ce logiciel fait défaut et se trompe allègrement entre autre en comptant les mots avec élisions comme un seul mot. ("l'avion" est un mot, et non deux). Confronté à une limite de mots très strict dans un travail, je me suis donc décidé à construire ce petit outil qui, s'il n'est pas parfait, est déjà plus exact que tous les sites Internet et logiciels qui sont offerts.

Ainsi, mon script compte les mots avec apostrophes tout en tenant en considération les exceptions de la langue française (ex : aujourd'hui) afin que vous puissiez avoir accès aux statistiques les plus précises.

Tester ici : http://tinyurl.com/comptermots (sans les espaces s'il y a lieu)

Le lien direct est le suivant : http://jdmcreator.byethost5.com/count.html (sans espaces s'il y a lieu)

Source / Exemple :


<!DOCTYPE html>
<html>
	<head>
		<title>Statistiques - Compteur de mots</title>
		<meta charset="iso-8859-1">
		<style media="all" type="text/css">
			.mode {
				margin-top:13px;
			}
			.mode span {
				background:red;
				margin-right:4px;
				padding:5px;
			}
			.mode span:first-child {
				background:pink;
			}
			
		</style>
		<script type="text/javascript">
			/*
1 mots : d'ores et dj, no-man's land, queue d'aronde, rubis sur l'ongle, trait d'union

  • /
(function(undefined) { function sortObject(obj) { var arr = []; for (var prop in obj) { if (obj.hasOwnProperty(prop)) { arr.push({ 'key': prop, 'value': obj[prop] }); } } arr.sort(function(a, b) { return a.value - b.value; }); return arr; } function beautifyNumber(tl) { var tk = ""; tl = tl.toString(); for (var i = tl.length - 3; i > -4; i = i - 3) { tk = " " + tl.substring(i, i + 3) + tk; } return trim(tk); } function trim(m) { return m.replace(/^\s+/g, '').replace(/\s+$/g, '') } var TAB_car = { " ": "[ESPACE]", "\n": "[SAUT DE LIGNE]", "\t": "[TAB]" } word = function(a, b) { var j = a, reg1 = /[\s'&#8217;]+/g, reg2 = /[\s]+/g, reg3 = /aujourd['&#8217;]{1}hui|n['&#8217;]{1}djamena|bernard-l['&#8217;]{1}[h]{0,1}ermite|prud['&#8217;]{1}hom|s['&#8217;]{1}il-(tu|vous)-pla(|i)t|bec-d['&#8217;]{1}(|a)ne|bouton([s]{0,1})-d['&#8217;]{1}(argent|or)|caca d['&#8217;]{1}oie|c['&#8217;]{1}est-(a|)-dire|chef([s]{0,1})-d['&#8217;]{1}(|oe)uvre|clin d['&#8217;]{1}(|oe)il|commedia dell['&#8217;]{1}arte|coq-(|a)-l['&#8217;]{1}(|a)ne|dame-d['&#8217;]{1}onze-heures|entr['&#8217;]{1}aim|entr['&#8217;]{1}aper(c|)|entr['&#8217;]{1}ouv(r|e)|hors-d['&#8217;]{1}(|oe)uvre|je-m['&#8217;]{1}en-fichisme|je-m['&#8217;]{1}en-f(ichist|outism)e|jusqu['&#8217;]{1}au-boutis(t|m)e|m['&#8217;]{1}amie|m['&#8217;]{1}as-tu-vu|main([s]{0,1})-d['&#8217;]{1}(|oe)uvre|monte-en-l['&#8217;]{1}air|pas-d['&#8217;]{1}(|a)ne|patte([s]{0,1})-d['&#8217;]{1}oie|pet-en-l['&#8217;]{1}air|pied([s]{0,1})-d['&#8217;]{1}(alouette|oiseau)|pont-l['&#8217;]{1}(|e)v(e|)que|qu['&#8217;]{1}en-dira-t['&#8217;]{1}on|queue-d['&#8217;]{1}(aronde|hironde)|sot-l['&#8217;]{1}y-laisse|tape--l['&#8217;]{1}(|oe)il|tout-(|a)-l['&#8217;]{1}(|e)gout|trompe-l['&#8217;]{1}(|oe)il/gi, reg4 = /[!?:;.,&#8230;*/\\\(\){}\[\]+]{1}/g, reg5 = /\b[A-Z]{3,}(\b|[!?:;.,&#8230;*/\\\(\){}\[\]+-]{1})/g, reg6 = /\b\S*[0-9]+\S*(\b|[!?:;.,&#8230;*/\\\(\){}\[\]+-]{1})/g, reg7 = /[^-'&#8217;\s0-9a-zA-Z&#256;&#257;&#258;&#259;&#260;&#261;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#270;&#271;&#272;&#273;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#292;&#293;&#294;&#295;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#305;&#306;&#307;&#308;&#309;&#310;&#311;&#312;&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#323;&#324;&#325;&#326;&#327;&#328;&#329;&#330;&#331;&#332;&#333;&#334;&#335;&#336;&#337;&#340;&#341;&#342;&#343;&#344;&#345;&#346;&#347;&#348;&#349;&#350;&#351;&#354;&#355;&#356;&#357;&#358;&#359;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#372;&#373;&#374;&#375;&#377;&#378;&#379;&#380;&#630;&#628;&#610;]+/, reg8 = /[^a-zA-Z&#256;&#257;&#258;&#259;&#260;&#261;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#270;&#271;&#272;&#273;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#292;&#293;&#294;&#295;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#305;&#306;&#307;&#308;&#309;&#310;&#311;&#312;&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#323;&#324;&#325;&#326;&#327;&#328;&#329;&#330;&#331;&#332;&#333;&#334;&#335;&#336;&#337;&#340;&#341;&#342;&#343;&#344;&#345;&#346;&#347;&#348;&#349;&#350;&#351;&#354;&#355;&#356;&#357;&#358;&#359;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#372;&#373;&#374;&#375;&#377;&#378;&#379;&#380;&#630;&#628;&#610;]+/g; b = b || {}; var overtext = "", mode = b.mode; if (b.apos) { a = a.replace(reg4, '').replace(reg3, function(a) { //console.log(a); return "AAAAKEY" + a.replace(reg1, 'AGTBAAA'); }); } a = a.replace(reg7, ''); if (b.MAJ) { a = a.replace(reg5, ' ') } if (b.number) { a = a.replace(reg6, ' '); } var can = j.replace(reg8, '').length; a = trim(a).split(b.apos ? reg1 : reg2); var z = [], mots = [], motsIIII = []; classeNombre = { 1: [], 2: [], 3: [], 4: [] }, carac = {}; if (/^\[[0-9]+\:[0-9]+\]$/g.test(b.alpha)) { var FIRST = parseInt(b.alpha.substring(1, b.alpha.indexOf(':'))), SECOND = parseInt(b.alpha.substring(b.alpha.indexOf(':') + 1, b.alpha.length - 1)), TABLE = []; for (var i = Math.min(FIRST, SECOND); i < Math.max(FIRST, SECOND) + 1; i++) { TABLE.push(String.fromCharCode(i)); } b.alpha = TABLE.join(""); } var alpha = b.alpha || "abcdefghijklmnopqrstuvwxyz"; if (mode && b.alpha != "[TOUT]") { for (var i = 0, l = alpha.length; i < l; i++) { carac[alpha.charAt(i)] = 0; } } for (var i = 0; i < a.length; i++) { var t = a[i]; if (t) { if (t.substring(0, 7) == "AAAAKEY") { t = t.substring(7).replace(/AGTBAAA/g, '&#8217;'); } t = t.replace(reg7, '') t = t.toLowerCase(); if (/^[-'&#8217;\s]+$/g.test(t)) { continue; } mots[t] = mots[t] || 0; mots[t]++; var tl = t.length; if (tl > 4) { motsIIII[t] = motsIIII[t] || 0; motsIIII[t]++; } classeNombre[tl] = classeNombre[tl] || []; classeNombre[tl].push(t); z.push(t); if (mode) {} } } if (mode) { var TOTALC = 0; for (var i = 0; i < j.length; i++) { r = j.charAt(i); if (b.CASE) { r = r.toLowerCase(); } if (b.alpha == "[TOUT]") { if (!isNaN(carac[r])) { carac[r]++; } else { carac[r] = 1; } TOTALC++; } else if (!isNaN(carac[r])) { carac[r]++; TOTALC++; } } } mots = sortObject(mots).reverse(); motsIIII = sortObject(motsIIII).reverse(); moinsdeIII = classeNombre[1].length + classeNombre[2].length + classeNombre[3].length; moinsdeIIII = moinsdeIII + classeNombre[4].length; var txt = "Nombre de mots : " + beautifyNumber(z.length) + "\nNombre de caractres : " + beautifyNumber(j.length) + "\nNombre de caractres alphabtiques : " + can + "\n\nMots de moins de trois caractres : " + beautifyNumber(moinsdeIII) + " (" + beautifyNumber(Math.round(moinsdeIII / z.length * 100)) + "%)"; txt += "\nMots de moins de quatre caractres : " + beautifyNumber(moinsdeIIII) + " (" + beautifyNumber(Math.round(moinsdeIIII / z.length * 100)) + "%)\n\n"; if (mots[0]) { txt += "Mots le plus frquent : " + mots[0].key + " (" + beautifyNumber(mots[0].value) + " fois)" } if (motsIIII[0]) { txt += "\nMots de plus de quatre caractres le plus frquent : " + motsIIII[0].key + " (" + beautifyNumber(motsIIII[0].value) + " fois)"; } if (mode) { carac = sortObject(carac).reverse(); txt += "\n\nCaractres les plus frquents :\n-----------"; for (var i = 0, r; i < carac.length; i++) { r = carac[i]; var kar = (TAB_car[r.key]) ? TAB_car[r.key] : r.key; txt += "\n" + kar + " (" + beautifyNumber(r.value) + " fois)"; } txt += "\n-----------\nTotal : " + beautifyNumber(TOTALC) + " caractre" + ((TOTALC > 1) ? "s" : ""); } document.getElementById('b').innerHTML = txt; } })(); function showorhide(w) { w = w.style; w.display = (w.display == "none") ? "block" : "none"; } </script> </head> <body> <h1>Statistiques et compteur de mots V1.0 &#946;</h1> Vous avez toujours utilis Microsoft Office Word pour compter les mots de vos textes. Pourtant, dans la langue franaise, ce logiciel fait dfaut et se trompe allgrement entre autre en comptant les mots avec lisions comme un seul mot. ("l'avion" est un mot, et non deux). Confront une limite de mots trs strict dans un travail, je me suis donc dcid construire ce petit outil qui, s'il n'est pas parfait, est dj plus exact que tous les sites Internet et logiciels qui sont offerts. Par exemple, la phrase exemple ci-dessus compte trois mots de moins sur Word qu'en ralit.<br><br> <form onsubmit="return false;"> <textarea id="a" style="width:100%;height:150px;">Lorsque j'tais jeune, mon pre, tendrement, s'tait pench vers moi et m'avait confi le secret le plus doux et le plus profond de ma vie.</textarea> <div class="mode"> <span> <input type=radio id="mode" name="mode">Normal</span> <span> <input type=radio name=mode checked>Avanc</span> </div> <br>Options : <br> <input type=checkbox checked id="apos"> <label for="apos">Compter les lisions avec un apostrophe comme plusieurs mots, sauf <a href="#" onclick="showorhide(document.getElementById('exceptions'));return false;">exceptions</a>(ex : "l'avion" compte deux mots, "aujourd'hui" compte pour un.)</label> <br> <div id="exceptions" style="display:none;"> <br>Exceptions : <ul> <li>Aujourd'hui</li> <li>Bernard-l'ermite</li> <li>Bec--l'ne</li> <li>Bouton-d'argent</li> <li>Bouton-d'or</li> <li>caca d'oie</li> <li>c'est--dire</li> <li>Chef-d'oeuvre</li> <li>Clin-d'oeil</li> <li>Commedia dell'arte</li> <li>Coq--l'ne</li> <li>Dame-d'onze-heures</li> <li>Entr'aimer</li> <li>Entr'apercevoir</li> <li>Entr'ouvrir</li> <li>Hors-d'oeuvre</li> <li>Je-m'en-fichisme</li> <li>Je-m'en-fichiste</li> <li>Je-m'en-foutisme</li> <li>Jusqu'au-boutisme</li> <li>m'amie</li> <li>M'as-tu-vu</li> <li>Monte-en-l'air</li> <li>Pas-d'ne</li> <li>Patte-d'oie</li> <li>Pet-en-l'air</li> <li>Pied-d'alouette</li> <li>Pied-d'oiseau</li> <li>Pont-d'vque</li> <li>Main-d'homal</li> <li>Main-d'homie</li> <li>N'djamena</li> <li>Prud'homme</li> <li>Queue-d'aronde</li> <li>Queue-d'hironde</li> <li>S'il-te-plat</li> <li>S'il-vous-plat</li> <li>Sot-l'y-laisse</li> <li>Tape--l'oeil</li> <li>Tout--l'gout</li> <li>Trompe-l'oeil</li> </ul>Ces mots sont compts comme un seul mot mme lorsque l'option ci-dessus est active. De mme, les formes au pluriel sont accepts, de mme que l'utilisation du symbole "" la place de "oe" ainsi que l'oubli des accents.</div> <input type=checkbox checked id="maj"> <label for="maj">Compter les mots en majuscules comme des mots</label> <br> <input type=checkbox id="number"> <label for="number">Compter les mots contenant des nombres comme des mots</label> <br> <br> <label for="alpha">Caractres comptabiliser :</label> <br><input style="width:34ex;" value="abcdefghijklmnopqrstuvwxyz" id="alpha" onkeydown="document.getElementById('selector').value = '1'"> <a href="#" onclick="showorhide(document.getElementById('help'));return false;">(?)</a> <div id="help" style="display:none"><br>Cet outil avanc vous permet de dresser des statistiques exactes sur l'emploi de diffrents caractres. Il suffit d'insrer les caractres recherchs dans la zone d'entre de texte ci-haut. De mme, le menu droulant ci-bas permet de slectionner certaines listes frquemment utilises ou pertinentes. <br> <br>Il est aussi possible d'utiliser certaines expressions ou mots-cls, telles que les suivantes : <br> <span>[TOUT]</span>: Comptabilise tous les caractres, incluant les espaces. <br> <span>[X:Y]</span>: Comptabilise tous les caractres dont le code Unicode se situe entre X et Y. Par exemple, [97:122] est l'quivalent de l'alphabet.</div> <br> <select id="selector" onchange="if(this.value!=1){document.getElementById('alpha').value = this.value}"> <option value="1">Personnalis</option> <option value="[TOUT]">Tous les caractres</option> <optgroup label="Caractres classiques"> <option value="abcdefghijklmnopqrstuvwxyz" selected>Caractres alphabtiques</option> <option value="0123456789">Caractres numriques</option> <option value="0123456789abcdefghijklmnopqrstuvwxyz">Caractres alphanumriques</option> </optgroup> <optgroup label="Caractres accentus"> <option value="&#257;&#259;&#261;&#263;&#265;&#267;&#269;&#271;&#273;&#275;&#277;&#279;&#281;&#283;&#285;&#287;&#289;&#291;&#293;&#295;&#297;&#299;&#301;&#303;&#305;&#307;&#309;&#311;&#312;&#314;&#316;&#318;&#320;&#322;&#324;&#326;&#328;&#329;&#331;&#333;&#335;&#337;&#341;&#343;&#345;&#347;&#349;&#351;&#355;&#357;&#359;&#361;&#363;&#365;&#367;&#369;&#371;&#373;&#375;&#378;&#380;&#630;&#628;&#610;">Accentus uniquement</option> <option value="abcdefghijklmnopqrstuvwxyz&#257;&#259;&#261;&#263;&#265;&#267;&#269;&#271;&#273;&#275;&#277;&#279;&#281;&#283;&#285;&#287;&#289;&#291;&#293;&#295;&#297;&#299;&#301;&#303;&#305;&#307;&#309;&#311;&#312;&#314;&#316;&#318;&#320;&#322;&#324;&#326;&#328;&#329;&#331;&#333;&#335;&#337;&#341;&#343;&#345;&#347;&#349;&#351;&#355;&#357;&#359;&#361;&#363;&#365;&#367;&#369;&#371;&#373;&#375;&#378;&#380;&#630;&#628;&#610;">Accentus et alphabtiques</option> <option value="0123456789&#257;&#259;&#261;&#263;&#265;&#267;&#269;&#271;&#273;&#275;&#277;&#279;&#281;&#283;&#285;&#287;&#289;&#291;&#293;&#295;&#297;&#299;&#301;&#303;&#305;&#307;&#309;&#311;&#312;&#314;&#316;&#318;&#320;&#322;&#324;&#326;&#328;&#329;&#331;&#333;&#335;&#337;&#341;&#343;&#345;&#347;&#349;&#351;&#355;&#357;&#359;&#361;&#363;&#365;&#367;&#369;&#371;&#373;&#375;&#378;&#380;&#630;&#628;&#610;">Accentus et numriques</option> <option value="0123456789abcdefghijklmnopqrstuvwxyz&#257;&#259;&#261;&#263;&#265;&#267;&#269;&#271;&#273;&#275;&#277;&#279;&#281;&#283;&#285;&#287;&#289;&#291;&#293;&#295;&#297;&#299;&#301;&#303;&#305;&#307;&#309;&#311;&#312;&#314;&#316;&#318;&#320;&#322;&#324;&#326;&#328;&#329;&#331;&#333;&#335;&#337;&#341;&#343;&#345;&#347;&#349;&#351;&#355;&#357;&#359;&#361;&#363;&#365;&#367;&#369;&#371;&#373;&#375;&#378;&#380;&#630;&#628;&#610;">Accentus et alphanumriques</option> </optgroup> <optgroup label="Ponctuation"> <option value="'&#8217;#&%*!?:;.,&#8230;*/\(){}[]+-">Toute la ponctuation</option> <option value="&#8230;.!?">Sparateurs de phrase</option> <option value=":;">Relieurs de phrase</option> <option value="-(),">Ponctuation de retrait</option> <option value="()[]{}">Ponctuation double</option> </optgroup> <optgroup label="Listes"> <option value="aeiouy">Voyelles</option> <option value="bcdfghjklmnpqrstvwxz">Consonnes</option> <option value="02468">Nombres pairs</option> <option value="13579">Nombres impairs</option> <option value="abcdefghijklmnopqrstuvwxyz">Caractres les plus frquents selon Wikipdia</option> <option value="&#164;&#402;$&#8356;&#8373;">Monnaie courante</option> <option value="&#945;&#946;&#947;&#948;&#949;&#950;&#951;&#952;&#953;&#954;&#955;&#956;&#957;&#958;&#959;&#960;&#961;&#963;&#964;&#965;&#966;&#967;&#968;&#969;">Symboles grecs</option> <option value="+&#8869;&#8742;&#8741;&#8740;&#8739;&#8728;&#8733;ױ&#8722;&#8721;&#8719;&#8743;&#8744;&#8756;&#8891;&#8892;&#8893;&#8896;&#8897;&#8771;&#8772;&#8776;&#8777;&#8792;&#8793;&#8797;&#8798;&#8799;&#8800;&#8801;&#8802;&#8804;&#8805;&#8810;&#8811;&#10877;&#10878;=-">Oprateurs mathmatiques</option> <option value="&#8592;&#8593;&#8594;&#8595;&#8596;&#8597;&#8598;&#8599;&#8600;&#8601;&#8602;&#8603;&#8604;&#8605;&#8606;&#8607;&#8608;&#8609;&#8610;&#8611;&#8612;&#8613;&#8614;&#8615;&#8616;&#8617;&#8618;&#8619;&#8620;&#8621;&#8622;&#8623;&#8624;&#8625;&#8626;&#8627;&#8628;&#8629;&#8630;&#8631;&#8632;&#8633;&#8634;&#8635;&#8636;&#8637;&#8638;&#8639;&#8640;&#8641;&#8642;&#8643;&#8644;&#8645;&#8646;&#8647;&#8648;&#8649;&#8650;&#8651;&#8652;&#8653;&#8654;&#8655;&#8656;&#8657;&#8658;&#8659;&#8660;&#8661;&#8662;&#8663;&#8664;&#8665;&#8666;&#8667;&#8668;&#8669;&#8670;&#8671;&#8672;&#8673;&#8674;&#8675;&#8676;&#8677;&#8678;&#8679;&#8680;&#8681;&#8682;&#8683;&#8684;&#8685;&#8686;&#8687;&#8688;&#8689;&#8690;&#8691;&#8692;&#8693;&#8694;&#8695;&#8697;&#8698;&#8699;&#8700;&#8701;&#8702;&#8703;&#10224;&#10225;&#10226;&#10227;&#10228;&#10229;&#10230;&#10231;&#10232;&#10233;&#10234;&#10235;&#10236;&#10237;&#10238;&#10239;">Flches</option> <option value="&#164;&#402;$&#8354;&#1044;&#8356;&#8355;&#8359;&#1547;&#2546;&#2547;&#2555;&#2801;&#3065;&#3647;&#6107;&#8352;&#8353;&#8357;&#8358;&#8360;&#8361;&#8362;&#8363;&#8365;&#8366;&#8368;&#8369;&#8370;&#8371;&#8372;&#8373;&#8374;&#8375;&#8376;&#8377;&#43064;&#65129;&#65284;&#65504;&#65505;&#65509;&#2352;&#1332;PQR">Monnaie</option> <option value="&#30340;&#19968;&#26159;&#19981;&#20102;&#22312;&#20154;&#26377;&#25105;&#20182;&#36825;&#20010;&#20204;&#20013;&#26469;&#19978;&#22823;&#20026;&#21644;&#22269;&#22320;&#21040;&#20197;&#35828;&#26102;&#35201;&#23601;&#20986;&#20250;&#21487;&#20063;&#20320;&#23545;&#29983;&#33021;&#32780;&#23376;&#37027;&#24471;&#20110;&#30528;&#19979;&#33258;&#20043;&#24180;&#36807;&#21457;&#21518;&#20316;&#37324;&#29992;&#36947;&#34892;&#25152;&#28982;&#23478;&#31181;&#20107;&#25104;&#26041;&#22810;&#32463;&#20040;&#21435;&#27861;&#23398;&#22914;&#37117;&#21516;&#29616;&#24403;&#27809;&#21160;&#38754;&#36215;&#30475;&#23450;&#22825;&#20998;&#36824;&#36827;&#22909;&#23567;&#37096;&#20854;&#20123;&#20027;&#26679;&#29702;&#24515;&#22905;&#26412;&#21069;&#24320;&#20294;&#22240;&#21482;&#20174;&#24819;&#23454;">100 caractres mandarins les plus frquents</option> </optgroup> </select> <input type="checkbox" id="CASE" checked>Insensible la casse <br> <input type="submit" onclick="word(document.getElementById('a').value, { apos:document.getElementById('apos').checked, MAJ : !document.getElementById('maj').checked, number: !document.getElementById('number').checked, mode : !document.getElementById('mode').checked, alpha : document.getElementById('alpha').value, CASE : document.getElementById('CASE').checked });"> <pre id="b"></pre> </body> </html>

Conclusion :


Je tenterai d'ajouter une version en POO et indépendante que vous pourrez ajouter dans vos propres codes. De plus, je tenterai d'optimiser le tout, c'est vraiment un brut de fonderie. Veuillez m'en excuser encore.

Version 1.0 BÊTA

Si vous avez des commentaires, questions, bugs ou si le compte de mots n'est pas bon, merci de me l'indiquer !

A voir également

Ajouter un commentaire

Commentaires

Votre évaluation

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.