Re,
Ma problématique était la suivante.
Sur un autre forum, quelqu'un se trouvait fort dépourvu quand la bise fut venue...
Bon sérieux, il regrettait, grand amateur de cryptographie, de ne pas disposer d'un outil d'analyse des messages chiffrés.
Il voulait pouvoir se consacrer au travail noble de l'analyse, pas à celui fastidieux de la préparation :
- Passage de tout le message en majuscules,
- Suppression des espaces,
- Listage, affichage des quadrigrammes, trigrammes et bigrammes successifs, avec leur n° d'ordre et enregistrer ces 3 listes dans des fichiers ouvrables avec un tableur (d'où l'idée du csv),
- Tri et affichage de ces quadrigrammes, trigrammes et bigrammes par ordre alphabétique en conservant le bon n° d'ordre, avec enregistrement pour lecture tableur, avec un blanc en cas de changement de 1ere lettre des n-grammes triés,
- Compilation des listes des quadrigrammes bruts et triés (avec nos), trigrammes triés (avec nos) et bigrammes triés (avec n°s) dans un seul fichier
- A la fin de ce fichier, on écrit en outre les seuls n_grammes identiques (et leurs nos) avec saut de ligne à chaque groupe différent...
J'espère avoir été clair...
Par exemple :
Le problème a été :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 crytpto="AEDCGAEBHDC" quadrigrammes bruts : triés : 1 AEDC AEBH 6 2 EDCG AEDC 1 3 DCGA 4 CGAE BHDC 8 5 GAEB 6 AEBH CGAE 5 7 EBHD 8 BHDC DCGA 3 EBHD 7 EDCG 2 GAEB 5
- de "factoriser" au maximum ce code (on peut toujours écrire "salement", mais ce n'est pas satisfaisant pour l'esprit)
- que ces 4 fichiers ont des longueurs différentes (en nb d'enregistrement) : comment gérer ça pour ne pas avoir "index out of range" ?
Les sauts de ligne limités ont "été" aussi difficiles à gérer d'où ma recherche non satisfaisante de codes de contrôles permettant de se déplacer à volonté à l'écran. J'ai géré ça autrement.
L'exemple donné ici résulterait de la fusion de 2 fichiers csv...
J'ai traité le tout de façon séquentielle...
Si vous avez des idées, des pistes, ce sera avec plaisir pour améliorer mon code...
Au passage, un autre hic.
Je ne peux pas faire :
from os import getcwd
direct...
je sui obligé de passer par :
import os
from os import getcwd
Normal ???
Je n'en ai pas l'impression...
@+
Partager