kirby18
Messages postés11Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention11 mai 2006
-
11 mai 2006 à 09:12
kirby18
Messages postés11Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention11 mai 2006
-
11 mai 2006 à 12:32
Bonjour, je travaille sur un petit projet en VB6. Je dois récupérer les données du fichier texte ci-joint.
A l'emplacement 135 et ce sur 8 caracteres ( 64 bits ), il doit y avoir un double à virgule. A la place, je trouve une string de caracteres speciaux.
J'ai essayé de convertir cette string en hexa ou en binaire avant de la caster double, mais rien n'y fait. Il trouve un entier à énorme exposant.
J'ai vérifier les doubles des enregistrements grace à Hew WorkShop. Le double du 1er enregistrement est : 3,13. Je cherche maintenant un automatisme car il y a beaucoup d'enregistrements.
Donc je cherche un algo me permettant de convertir directement en double.
Merci de m'aider.
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 11 mai 2006 à 10:40
Heeee oups c'est un bouble que tu veut, et je ne sait pas command reconaitre la virgule.
A tu tenter d'ouvrir ton fichier en binary (je dit ça même si je ne me souvien plus de la diferance) mais la donnée de ton double doit étre enregistrer en donée brut, soit on ecrit la valeur des octect, et un carac c'est un octect, donc 8 carac = 8 octect et un double fait 8 octect (ca me paraiterai logique)
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 11 mai 2006 à 10:44
Command lit tu ton fichier avec :
input #x, NomVariable
Ou tu recup toute le ligne de texte et tu extrait les donée ensuite? (avec "Line Input #x,NomVarString")
kirby18
Messages postés11Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention11 mai 2006 11 mai 2006 à 10:51
Effectivement. Les 8 octets valent les 64 bits que je mentionnais.
En ce qui concerne l'ouverture de fichier en binary, je l'ai fait même si je ne vois pas trop la différence ( en tout cas, quand je récupère d'autres données ).
J'ai trouvé ce morceau de code sur le net mais je ne le comprends pas et j'ai peur qu'il ne soit pas complet. Pourriez vous m'aider ?
dim dNumber as double open {somefile} for binary as #Handle
get #Handle,,dNumber
close #Handle
kirby18
Messages postés11Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention11 mai 2006 11 mai 2006 à 11:01
je récupère tout dans une string avant de traiter :s
euh c'est peut etre pas clair en haut mais j'essaie de récupérer un double affiché sous forme de caractères spéciaux dans un fichier, mais le cdbl ne marche pas
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 11 mai 2006 à 11:11
on a pas ton fichier texte, ni tes méthodes d'accès (fonctions). en plus tu parles de VB6 et de WorkSop, donc VBA?
plus tu seras flou et plus tu risques de le rester ;)
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 11 mai 2006 à 11:19
Qelqu'un connais une fonction pour converir une valeur numeric en un string mais binaire soit
2 -> "10"
5 -> "101"
Je pense que c jouable en convertisant une à une les carac spéciau en valeur, puis en binaire, concaténer tout cas et reconvertire en double.
Voillez ce que je veut dire?
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 11 mai 2006 à 11:29
copymemory?????? Je trouve pas dans l'aide (je suis en VBA sur Word avec Office 2003, et Win XP Sp2) et losque j'execute "Sub ou Fonction non défini"
CA A L'AIRE VACHEMENT BIEN COMME FONCTION!!!
Command ça marche????
kirby18
Messages postés11Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention11 mai 2006 11 mai 2006 à 11:34
PCPT > Désolé mais j'arrive pas à mettre des pièces jointes
Ensuite ma fonction d'accès : Open strNom For Binary Access Read As #lngFileNum pris sur le code source xedit trouvé sur ce site.
Après je parle de Hex Workshop, éditeur hexa qui n'a rien à voir avec vb6. Il me servait juste à vérifier que le double existe vraiment. Donc je suis bien sur VB6
Est ce que ça ira ...?
Polack77 > non justement j'ai essayé de convertir directement le binaire de 64 bits ( valant la string de 8 caracteres ) en un double mais ça ne marche pas.
Imposssible de convertir les caracteres en hexa puis en binaire également car il y a "overflow" surement dû au traitement de 64 bits.