Convertir une chaine de caractères en ascii et inversément

Résolu
tibay3 Messages postés 3 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 31 décembre 2007 - 30 déc. 2007 à 15:57
tibay3 Messages postés 3 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 31 décembre 2007 - 31 déc. 2007 à 09:08
Bonjour!

Je programme dans le langage Visual Basic 6 et je butte sur un petit problème de conversion. En fait, j'ai une série de mesures aléatoires (par rnd) qui se créent via un timer et que je dois convertir en code ascii et ensuite enregistrer ligne par ligne dans un fichier  en .dat. Après, je dois relire les lignes du fichier l'une après l'autre et reconvertir du code ascii vers une chaine de caractères. Mon problème et que les codes ascii chr$(13) et chr$(10) insère des retours chariots non-désirés dans mon fichier .dat et donc mes lignes d'enregistrement ne sont plus correctes car une série de mesures doit équivaloir à une seule ligne. ( et non pas 2,3,... à cause des CR LF).
Ma question est donc, comment puis-je enregistrer les mesures qui correspondent aux valeurs 13 et 10 dans mon fichier (sachant que je ne peux utliser que 1 seul caractère) et pouvoir après reconvertir ligne par ligne mon fichier en chaine de caractère lors de la lecture de celui-ci?

J'espère être assez clair. (désolé si je ne le suis pas) 
D'avance MERCI!!!

Tibo

6 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
30 déc. 2007 à 16:42
Perso, j'aurais dit plus simple.

Ne écrire (lire) un fichier texte (avec Print, Line input) mais travailler plutot sur un fichier binaire (avec Put et Get) afin que les données lues ou écrites ne soient pas interprétées

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
BLUEBIBUBBLE Messages postés 116 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 10 avril 2013 1
30 déc. 2007 à 20:52
Je suis de l'avis de casy: Enregistre (et lis) ton fichier en mode binaire, pas en mode texte !
Un accès séquenciel reste possible avec GET & PUT...
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
30 déc. 2007 à 16:13
Bonjour

Juste une piste :
Utilise un tableau d'octets et le passage à une base 64.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 déc. 2007 à 16:57
salut,
encore une solution pour le fun :
vu que tu vas récupérer le code ascii on peut supposer que tu vas utiliser de 1 à 255
tu peux donc couper tes lignes non pas avec vbcrlf mais avec vbnull (= > chr$(0))
nb : fait bien attention lors de l'enregistrement du fichier de sauver avec ; pour éviter un dernier vbcrlf
++
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tibay3 Messages postés 3 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 31 décembre 2007
30 déc. 2007 à 18:20
Rebonjour,

Merci pour vos tuyaux de réponses. En fait, je veux qu'un serveur enregistre les données dans le fichier et qu'un client qui se connecte au serveur via TCP-IP (winsock) puisse recalculer le CRC16 (vérification après l'envoi de ma ligne de code ascii), qui a déjà calculé par le serveur et placé en fin de ma ligne d'enregistrement, avant de reconvertir mes caractères ascii en chaine de caractères (sans le CRC). C'est pour celà que mes longueurs d'enregistrement en code ascii doivent absolument être de mêmes longueurs.  

J'ai oublié de préciser que je suis obligé d'utiliser un accès séquentiel (donc je ne peux malheureusement pas utiliser put et get...). Merci quand même.

Peux-t-on encore me donner quelques indices de réolutions?

Un très grand merci en tout cas pour vos réponses.

Tibo
0
tibay3 Messages postés 3 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 31 décembre 2007
31 déc. 2007 à 09:08
Ok! Merci beaucoup pour l'aide, je ne connaissais pas l'ouverture de fichier à accès séquentiel en mode binaire. J'utiliserai donc ce mode ainsi que get et put.
Encore merci à tous pour m'avoir aidé dans ma recherche.

A l'avance, je vous souhaite une très Bonne Année 2008!!

Tibo
0
Rejoignez-nous