Excellente question.
En fait, j'en connais la structure et comment il est organisé (un peu comme un ELF mais ça n'en est pas un). En tant que développeur, j'ai défini la manière dont les données sont stockées. Pour simplifier, ça donne ça :
Ligne X + 1, que des mots en 2 lettres
Ligne X + 2, que les mots en 3 lettres
Ligne X + 3, que les mots en 4 lettres
Etc.
Et parfois, j'ai besoin de séparer certains mots d'un double quote ou par un autre caractère (tous les autres je les ai grâce au vbXXX ou autre truc et astuces que j'ai trouvé).
Ensuite, pour l'histoire, ce fichier sera uploadé de manière automatique sur un Raspberry Pi qui gèrera son exécution et les tests sur des puces de type PIC.
Du coup j'ai quand même appliquer votre technique. Il a seulement mis un peu moins de 20 minutes pour 6Mo de données, ce qui reste finalement très correct.
Reste un problème avec votre technique :
A chaque put, il ajoute un NUL à la fin.
Donc à la première écriture du caractère du mot, je fais un:
Put #file_descriptor, LOF(1) + 1, ASC(97)
Et puis dans la boucle je fais un :
Put #file_descriptor, LOF(1), ASC(98)
Une fois la boucle fini, le texte suivi reecrase d'un caractère la précédente écriture:
Put #file_descriptor, LOF(1), "AutresDonnesAEcrire"
On ne va pas se cacher que ça fait un peu le dev qui a codé ça "avec ses pieds" mais ça a le mérite de fonctionner et d'être relativement correct niveau temps d'exécution.
Mais je suis sûr que l'on doit pouvoir éviter de faire ça, 1 par 1.