Bonjour ! J'ai proposé il y a peu d'expliquer comment fonctionne l'utilitaire que j'ai créé pour la publication.
après une légère réflexion, j'en ai conclu que séparer en deux parties est plus judicieux.
La première serra très brève, elle explique comment ça fonction dans la théorie, ce que j'utilise pour en arriver là et ... Mais sans rentrer dans le code.
La deuxième va être plus technique, j'expliquerai réellement le fonctionnement du code qui est derrière. Avant toute chose, je tiens à préciser que le programme en question aura était créer en Autoit (https://www.autoitscript.com/site/) qui n'est ABSOLUMENT PAS.
Le meilleur langage qui existe... mais c'est celui qui était présent sur mon ordinateur, et aussi le premier auquel j'ai touché (Il reste puissant malgré tout hein, ce n'est pas de la merde non plus xD, mais au cas où, je le signale).
Partie 1à quoi ça sert ?Bah oui, être bien précis sur l'utilité du programme est.. assez important quand même.
L'utilitaire permet, à l'aide d'un lien Google docs (le open office intégré à google drive) de créer le texte qui serra utiliser pour mon forum, tout en respectant l'italique, le gras et ...
Google Docs.. c'est quoi.. ?
C'est un système crée par google, qui permet d'avoir un fichier texte, modifiable par plusieurs personnes en même temps (l'affichage du texte est visible par tout le monde).
L'intérêt est double, le premier est de permettre l'accès à tout un groupe, l'autre et de stocker le fichier en ligne.
(résumer en quelques mots, tout le monde peut le modifier, en même temps, et de n'importe où)
Pourquoi Google Docs..?J'utilise ce format simplement pour pouvoir écrire sur mon téléphone, ou mon ordinateur, en fonction de mon envie.. c'est pas plus compliqué que ça xD.
Et.. l'utilitaire.. il marche comment ?Si je devais résumer, je dirai qu'il fonction en 4 parties.
La première, on demande l'adresse de la page google Docs en question (contenu dans le cadre juste en dessous des onglets.)
La deuxième, le programme va lire le site (son code HTML)
La troisième, le programme va travailler sur ce qu'il a lu, pour n'avoir plus que le texte (et pas tout le reste qui compose l'affichage) et les informations sur le gras et l'italique (ou plus d'informations, en fonction du contexte.)
La dernière, va être d'écrire le résultat dans un fichier (créer en avance)
Ok.. Mais du concret.. C'est possible ?Le google Docs utiliser pour le test est
là- Pour ce qui on la flemme de cliquer:
On rentre le lien dans mon utilitaire (https://docs.google.com/document/d/12Ccjvq7iGfbIZ-u4JZyUyP_niZI7BQTSB70_El98I3M)
- mon utilitaire:
et ça ressors dans un fichier ça
- bloc-note:
Et si on colle ce texte sur un post sur le forum, ça donne ce résultat
-----------------------------
ça c'est du texte normal.
ça c'est du texte en italique.et ça c'est du texte en grasça
c'est un piège
total-----------------------------
Partie 2là on s'attaque à la partie technique, même si je vais essayé d'être le plus clair possible.. une petite base est conseillé pour bien comprendre !
Pour commencer.. Le code (bah vi, ça aide à comprendre xD)
TermeLa partie chiante.. mais utile.. Savoir le sens d'un terme.. bah c'est très important pour comprendre xD
Variable: la variable est un élément qui permet d'enregistrer,modifier et de récupérer diverse information(un nombre, des lettres et ...). Sur autoit, une variable commence toujours par un $
String: Un string est un ensemble de caractère.
HTML: langage dans le quel est crée une page web.
SelectionLa première étape.. c'est de savoir qu'elle page serra utilisé pour la transformation.
Ligne 2) Je demande à l'utilisateur de rentré le lien du google Docs
Ligne 3) Je travail avec la version mobile du document. Donc j'indique que maintenant la variable $deb contient son ancienne valeur + /mobilebasic (ça rajoute donc ça au lien en gros.)
Obtention de la pageUne fois que l'on sait qu'elle page est voulu, il faut la récupérer.
ligne 6) Je lis la page web trouver avec comme lien $deb. Le BinaryToString permet simplement de rentré le contenu lisible.
ligne 13~15) je remplace les éléments $er par les éléments $rep dans la chaine $ret car la page web à actuellement transformer les caractère spéciaux en erreur. $er et $rep sont des listes, on récupère leurs contenu avec le nom de la variable, plus des crochet avec le numéro du contenu en question. on commence à 0($rep[2]="é")
Pour finir, le for va répéter le remplacement avec chaque'une des 16 valeurs des deux listes. (partie compliqué. Mais pas obligatoire pour comprendre la suite.)
Récupération de texteAvoir tout le code html.. c'est bien.. mais je préfère avoir que le texte
ligne 11) cette ligne permet de récuprer tout ce qui a après ); (pourquoi ? car ça permet de réduire le plus possible la zone de travail, et donc d'accélérer la vitesse du programme... Même si il n'y a aucune lag en réalité xD)
ligne 12) Pareil que la 11.. sauf que l'on travail avec
et que l'on récupère ce qui a avant.
ligne 17)Je sépare dans une liste nommé $tab le contenu de $ret (la page.) l'élément spéarateur est
Maintenant, on à la texte enfermer dans des trucs de ce genre
- Code:
-
<span style="color:#000000;font-weight:700;text-decoration:none;vertical-align:baseline;font-size:12pt;font-family:"Times New Roman";font-style:italic">Chapitre 39</span></p>
Ce qu'il faut savoir. ce code contient italic si il y a de l'italique dans le texte, font-weight:700 si il y a du gras et pour finir
ligne 7)je créer une liste de 3 élément vrai ou faux. le premier pour l'italique, le deuxième pour le gras et le dernier pour le retour à la ligne.
ligne 20) tant que $i n'égale par $tab[0](le nombre d'élément après la séparation de la page faite ligne 17), on répète ce que l'on fait. on augmente $i de 1 à chaque tour.
ligne 21 à 22) on remet les vérificateurs d'italique et gras à faux. (pour éviter de tous mettre en italique et gras)
ligne 23) on travail avec la variable $val. mais il faut lui donner sa valeur, ça serra toujours l'élément $i de la liste $tab (on commence à 0, mais 0 donne le nombre d'élément dans la liste, donc je dois rajouter +1)
ligne 25) Si dans la boucle d'avant(le tour d'avant en gros, le Deuxième tour, pour le troisième) la troisième valeur de $verif est a true (vrai), alors on rajoute @CRLF derrière $fin. Avec $fin qui représente le contenu texte de la page, et @CRLF qui représente simplement un saut à la ligne.
ligne 29) je remet la troisième valeur de $verif à false.
ligne 31) cette ligne permet de mettre à vrai la première valeur de $verif si le mot italic est contenu dans la $val avec l'a qu'elle on travail (en gros, si on trouve italic dans $val, on mets l'information sur l'italique à vrai.)
ligne 35) pareil que 31, mais avec font-weight:700 pour le gras.
ligne 38) pareil encore.
ligne 42 à 43)on donne à $val comme valeur, seulement ce qui est contenu entre le > et < . En gros, seulement le texte (enfin !) Pour plus d'info. voir ligne 11 et 12, c'est le même principe.)
ligne 48 à 56) si la première valeur de $verif( voir ligne 31 pour savoir comment elle est trouvé) est à true(vrai) alors on entour $val de
et (ce qui indique l'italique en gros.) pareil pour la deuxième valeur, mais avec
et (le gras en gros.)
ligne 58) on rajoute +1 à $i (bah oui.. sinon reste bloque dans le while xD)
ligne 59) on indique que c'est la fin du while, on retour donc au début du while si la condition n'est pas respecté ($i<$tab[0] ($i plus petit que le nombre d'élément dans $tab)
Enregistrer le résultat.ligne 61) On "ouvre" le fichier dans le quel on va écrire (@ScriptDir indique l'endroit où se trouve l'utilitaire) son nom est test.txt, et il serra à côté de l'utilitaire. (c'est pas une ouverture visible. mais c'est ce qui permet d'écrire dans un fichier.
ligne 62) on écrit dans le fichier ouvert à la ligne 61 le contenu de $fin (la variable qui stock (le texte avec les balises nécessaire à la mise à page)
ligne 63) on ferme le fichier ouvert à la ligne 63.
Merci d'avoir résister jusque là !
Voilà ! Une petite galère à expliquer en essayant de rester compréhensible
Vos avis m'intéresse, par exemple sur ce qui est dur à comprendre. ! (j'ai aussi ouvert un sondage pour savoir qui a compris, et jusqu'à où
)