Convertir une chaine de caractères en ascii et inversément [Résolu]

Signaler
Messages postés
3
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
31 décembre 2007
-
Messages postés
3
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
31 décembre 2007
-
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

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
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
Messages postés
116
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
10 avril 2013
1
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...
Messages postés
14781
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 avril 2021
154
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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
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
Messages postés
3
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
31 décembre 2007

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
Messages postés
3
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
31 décembre 2007

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