- La programmation fonctionnelle en Perl : 1. Les opérateurs de liste; 2. Les fonctions d'ordre supérieur; 3. Étendre le langage.
- Comment utiliser des décorateurs en Perl: Un tutoriel pour changer le comportement d'une fonction sans en modifier le code source
- De Perl 5 à Perl 6 : 1. Les bases; 2. Les nouveautés; 3. Approfondissements; 4. Annexe 1: Ce qui change entre Perl 5 et Perl 6; Annexe 2: Les nouveautés de Perl 6.
- Les regex et grammaires de Perl 6
- Objets, classes et rôles en Perl 6 - Tutoriel de programmation orientée objet
- Tour d'horizon du nouveau langage Perl 6
c'est exactement ca, je pars d'un fichier txt , le modifie sous excel pour le remettre sous txt
je pars de différents fichiers txt, que je dois modifier un par un, mais ensuite soit j'ai autant de fichiers txt finaux qu'au départ, soit toutes les lignes peuvent etre mises dans un meme fichier txt , ca peut etre un gain de temps, car c'est mon objectif final.
W492K903384_20150409141413018-001.pdf
Pièce jointe pour expliquer le codage en binaire, je pense que c'est le plus compliqué à comprendre.
j'ai oublié d'écrire dans le piece jointe.
Peut importe où est fait le codage car je veux garder que le résultat au final. et le mettre dans la colonne voisine au message 88
date |heure |message 88| codage
je veux ca au final en gros pour comprendre, je pense que la pièce jointe explique bien
A la lecture des derniers messages, je confirme ce que Laurent propose : une ré-écriture en perl de modification d'un fichier .txt est la solution la plus adaptée, et sans doute la plus rapide.
Je vois deux solutions :
- soit tu crées un script qui traite un fichier, et tu utilises la commande perl "-i.bak" -n script.pl *.txt (appliquer script.pl pour chaque fichier *.txt en sauvant le fichier d'origine dans un fichier *.bak)
- soit tu crées un script qui accepte en entrée une liste de fichier (liste de fichier parcourue à l'aide de @ARGV, ou fichiers lus en continue avec l'opérateur <>) et qui crée en sortie un fichier unique.
Si tu désires vraiment faire ce portage, je dirais que la solution 1 apporte la possibilité de faire des tests de non-regression (qui me semblent indispensables dans un contexte professionnel) : tu peux ainsi comparer le fonctionnement avec VBA et celui avec perl (comparaison de fichier .txt résultats).
Si tu souhaites aller dans cette voie, il faudrait que tu puisses expliquer plus précisément ton cahier des charges. J'attends ta décision pour analyser plus précisément ton VBA (que je ne maitrise pas non plus, comme Laurent).
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
La conversion hex -> binaire est simple en perl (et à l'inverse également).
Exemple :
Il est ensuite facile de récupérer les 8 bits à partir du 75e, etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part perl -E '$a = "0123456789abcdef0123456789abcdef0123456789abcdef";say "$a";say unpack("B*", pack("H*", $a))'
Par contre, j'ai du mal à comprendre avec le seul arbre et le texte en dessus ce qu'il faut produire en sortie (et puis, il nous manque un peu de texte à gauche).
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
La solution 1 me parait corresponde.
J'espère que le fichier pdf pourra vous eclairer un peu dans ma démarche.
Pour le reste de mon script au départ j'ai mis l'heure la date et le message dans 3 colonnes distinctes.
en suite je ne garde que les messages commencant par 81 ou 88
je les mets dans l'ordre alphabétique pour avoir les 81 au debut et les 88 ensuite
pour etre sur de choisir un message 81 pour le décodage.
Ensuite je décode ( comme expliquer dans le pdf)
puis ensuite je supprime les lignes messages 81 car celui ci est dans une colonne des messages 88
et ensuite les enregristrer ( étape enregistrée n'est pas écrite car pas reussi)
mince pour le fichier j'avais rajouté des notes: au 186e soit c'est 00000001 ou else
le premier 0 à gauche est le 186e bit
Question : on doit décoder une seule ligne 81 par fichier (que l'on élimine une fois décodée), et les 32 bits décodés et recodés en décimal par 4 bits doivent être ajoutés à la suite des lignes 88. Est-ce bien cela ? Si oui, faut-il ajouter ces valeurs décimales à toutes les lignes 88 ?
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
Nouveau document texte.txt
voici mon fichier txt de départ,
je voudrais à la fin avoir : date | heure |message 88 | resultat du décodage du message 81
c'est exactment ca , un seul message 81 à décoder, car ils donneront le meme resultat, et ensuite le mettre à coté du message 88 et enlever les lignes 81
oui absolument à chaque message 88
Je suppose que les décimaux décodés doivent être ajoutés à la fin des lignes 88 séparés par des tabulations ?
Je suppose aussi que la ligne 81 est toujours située avant la première ligne 88 ?
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
oui pour la premiere question
et pour la deuxieme , il faut faire un tri par ordre croissant pour avoir toujours les 81 avant les 88
Ou bien stocker les lignes 88 en attendant de rencontrer la ligne 81
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
Autres questions :
- quand tu parles de 75e bit, tu veux bien dire le bit d'indice 74 (si le premier bit à l'indice 0) ?
- lors du décodage hex -> binaire, le binaire doit être présenté avec le MSB en premier ?
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
oui ou stocker les 88
le 75 bit est le debut du 00000000 ou du 00000001
regardez le pdf avec le " étant le 75e bit"
enfait il faut regarder si le 82e bit est un 1 ou un 0 en gros
-" lors du décodage hex -> binaire, le binaire doit être présenté avec le MSB en premier ? "
je comprends pas ?
Je repose mes questions (tu n'as répondu à aucune des 2 ) :
Supposons la chaine hex : A5
En mode MSB first (Most Significant Bit) le décodage donne :
C'est à dire que le MSB est placé en premier (sinon, il est placé en dernier). Dans le cas MSB first, pas besoin de se poser plus de question. Dans le cas LSB first, il faut se poser d'autres question (mais je suppose que c'est bien ce mode de décodage à utiliser).
MSB LSB 1 0 1 0 0 1 0 1
Ensuite, quand tu parles du 75e bit, tu veux parler du bit numéro 74 (le premier bit étant le bit 0). Je suppose aussi que c'est bien ça.
Je vais partir en pause, mais je pense qu'il doit être possible d'avoir une bout de code en quelques minutes.
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
Autre question : dans ton algo, tu indiques qu'il faut tester si à partir du 75e bit, les 8 bits suivant sont 00000000 ou 00000001, mais que fait-on si l'on obtient une des 254 autres possibilités ?
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
normalement ca ne peut pas etre dans les 254 autres possibilités
En informatique, il faut toujours prévoir le "anormalement" (pour l'instant, je n'ai rien prévu, donc le décodage échoue, et le fichier résultat est vide dans ce cas).
Pourrais-tu indiquer quel est le résultat du décodage pour le fichier que tu as donné en pièce jointe ? (j'ai un script qui tourne).
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager