IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

traduction d'un fichier en ascii puis recreation du fichier ascii


Sujet :

C++Builder

  1. #1
    Membre extr�mement actif Avatar de petitours
    Homme Profil pro
    Ing�nieur d�veloppement mat�riel �lectronique
    Inscrit en
    F�vrier 2003
    Messages
    2 037
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement mat�riel �lectronique
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 2 037
    Par d�faut traduction d'un fichier en ascii puis recreation du fichier ascii
    bonjour,

    Question 1 :
    Je dispose d'un fichier texte qui contient l'image du contenu d'une m�moire d'une carte lectronique. J'a donc � la suite toute une s�rie de caract�res de valeur absolue comprise entre 0 et 256.
    Je sais � quoi correspond chaque caract�res et comment remettre en ordre toutes ces donn�es.

    Ma question : Comment manipuler ces octets dans le fichier texte pour construire un autre fichier texte lisibles en bon francais ; Comment r�cup�rer le 45 et le 46emes octets pour en faire un entier par exemple.


    Question 2 :
    Comment faire le travaille inverse de ce que je d�cris dans la question 1 ? Comment manipuler les donn�es lisibles en bon francais pour reconstruire le fichier image du contenu m�moire ?
    Par exemple :
    J'ai AdresseDebut,23 puis nom4,toto,546789045 dans le fichier "lisible"
    je souhaite enregistrer � partir du 23eme caract�re du fichiers compil� : "toto546789045" en ascii

    Merci par avance pour vos orientations

  2. #2
    Membre �clair�
    Inscrit en
    Octobre 2002
    Messages
    343
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par d�faut
    C'est assez difficile de r�pondre � ta question car on n'a pas d'information sur ton fichier exactement. Il est difficile de te dire comment faire pour r�cup�rer les infos si on ne sait pas de quel type de fichier il s'agit, comment sont cod�s les informations de ton fichier, est-ce qu'un octet correspond � un hexad�cimal ? Est-ce qu'un octet est un code ascii ? Donne nous plus d'information sur ton fichier et ce qu'il contient.

    Sinon � priori, il suffit d'ouvrir le fichier, lire n oct correspondant � une lettre, le transcrire en fran�ais et passer � l'octet suivant.

    Donne nous plus d'informations concernant ton fichier � d�coder.

    Bon courage.

  3. #3
    Membre extr�mement actif Avatar de petitours
    Homme Profil pro
    Ing�nieur d�veloppement mat�riel �lectronique
    Inscrit en
    F�vrier 2003
    Messages
    2 037
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement mat�riel �lectronique
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 2 037
    Par d�faut
    Bonjour , merci pour la r�ponse

    Les fichiers sont des fichiers text ou tout autre extension qui contient � la suite et en vrac des octets, image de ceux contenus dans une m�moire d'une carte electronique.
    Je ne sais pas trop comment mieux les d�crire... chaque caract�re, chaque octet de ce fichier va etre compris en 0 et 255 mais ce sera pas forcement de l'ascii ou de l'hexa, cela va d�pendre de l'octet.

    Le premier octet va etre les poids fort d'un entier 16 bit qui indique la position de la premi�re "dataquivabien", le second octet va �tre les poids faibles de la m�me info, le troisieme octet va �tre la premi�re lettre du nom de la "dataquivabien" ......... le dixieme octet va �tre la valeur (entre 0 et 255) de la "dataquivabien".

    effectivement il me faut ouvrir le fichier puis lire le premier octet le traiter et ainsi de suite pour chaque octet, mais c'est ca que je ne sais pas faire...

    En gros je cherche � savoir comment extraire ces octets du fichier pour les manipuler facilement comme le Nieme octet du fichier, comme on le fait pour un tableau en appelant "Tableau[1]"

    Transf�rer le fichier dans un tableau peut etre ????

    Merci

  4. #4
    Membre �m�rite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par d�faut
    bon juste une id�e:
    si tu s�pare tes valeurs dans le fichier texte par un s�parateur exemple ";"
    valeur0;valeur1;......;valeursn
    ensuite tu commence a analyser ton texte caractere par caractere lorque tu tombe sur un s�parateur ";" tu prend la valeur et tu l'empile dans un vecteur c'est dynamique et tu peux appeller en suite n'importe quelle valeurs

  5. #5
    Membre chevronn�
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    D�tails du profil
    Informations personnelles :
    �ge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par d�faut
    Ce dont tu as besoin, me semble-t-il, c'est de lire ton fichier en mode binaire plut�t qu'en mode texte de fa�on � remplir une zone de m�moire dans laquelle tu feras ce que tu as � faire.

    Il existe pour cela les fonctions classiques du C comme fopen() , fread() ou fget() (ne pas oublier #include <stdio.h>) et plein d'autres techniques aussi.

    Quant � ton explication
    chaque octet de ce fichier va etre compris en 0 et 255 mais ce sera pas forcement de l'ascii ou de l'hexa, cela va d�pendre de l'octet
    il faut noter que toute valeur comprise entre 0 et 255 peut aussi bien �tre "ASCII" �tendu et encore plus HEXA, tout d�pend quelle langue on parle (d�cimal, binaire, hexad�cimal...). Attention aux raccourcis ! L'hexad�cimal, en l'occurence, n'est qu'une repr�sentation d'une valeur toujours cod�e en binaire dans la machine.

  6. #6
    Membre extr�mement actif Avatar de petitours
    Homme Profil pro
    Ing�nieur d�veloppement mat�riel �lectronique
    Inscrit en
    F�vrier 2003
    Messages
    2 037
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement mat�riel �lectronique
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 2 037
    Par d�faut
    merci pour cette r�ponse, c'est effectivement passer tout ca en m�moire en binaire pour traiter chaque ocet comme bon me semble quil me faut !

    j'ai bien compris que tout est une histoire de langue, si je savais pas comment decrire le contenu du fichier c'est bien parce que pour moi ce ne sont que des octets ! binaire ascii ou je ne sais quoi m'en fiche, tous dans le fichie ne sont pas � lire dans la m�me langue !

    Il n'hexiste pas des outils plus performants que ceux du C avec C++ ? (je ne dis pas que cex du C sont pas bien, c'est juste que j'ai d�j� vu passer des trucs allucinants avec C++ builder...)

    Merci

  7. #7
    Membre chevronn�
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    D�tails du profil
    Informations personnelles :
    �ge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par d�faut
    Citation Envoy� par petitours
    binaire ascii ou je ne sais quoi m'en fiche, tous dans le fichie ne sont pas � lire dans la m�me langue !
    Si c'est ta mani�re d'appr�hender la programmation, change de langage ; le C(++) implique que tu ne te "fiches" pas de tout �a.

    Citation Envoy� par petitours
    Il n'hexiste pas des outils plus performants que ceux du C avec C++ ? (je ne dis pas que cex du C sont pas bien, c'est juste que j'ai d�j� vu passer des trucs allucinants avec C++ builder...)
    Ce n'est effectivement pas ce qui manque. Faut chercher un peu, lire la FAQ de ce site, la doc, l'aide et quelques bouquins...

  8. #8
    Membre extr�mement actif Avatar de petitours
    Homme Profil pro
    Ing�nieur d�veloppement mat�riel �lectronique
    Inscrit en
    F�vrier 2003
    Messages
    2 037
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement mat�riel �lectronique
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 2 037
    Par d�faut
    Euh j'ai du mal me faire comprendre

    Je m'en fiche pas au sens que ca m'interesse pas ! Je m'en fiche au sens que comme tous ces octets (image du contenu de la m�moire) correspondent � des informations tr�s diff�rentes d'un octet � l'autre ou d'une paire d'octet � une autre et que par cons�quent il me semble necessaire de pouvoir manipuler chaque octet individuellement pour pouvoir les traiter independament ensuite, dans la langue qui lui correspond.
    Mais peut etre que je me trompe encore ici...c'est l'object de ma question de comprendre comment je dois m'y prendre.

    Etant donn� que c'est plus la d�marche (ou peut etre ma "mani�re d'apprehender la programmation") qui a un soucis et pas seulement un non de fonction, j'ai bien du mal � trouver l'aide dont j'ai besoin dans l'aide ou des bouquins J'ai besoin d'etre aiguill� pour devenir un peu moins d�butant...

    Merci

  9. #9
    Membre �clair�
    Inscrit en
    Octobre 2002
    Messages
    343
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par d�faut
    D�j�, j'esp�re pour toi que tu connais un minimum la syntaxe du C++, sinon ce n'est pas la mort, mais tu vas perdre un peu de temps sur "comprendre" les m�canismes du C++ et de Builder, ce qui, je te rassure n'est pas impossible, surtout depuis qu'il y'a un forum pour

    Si j'ai bien compris tu ne maitrise peut-�tre pas Builder (remarque, moi non plus), mais tu dois conna�tre les fonctions sur les fichiers, � savoir, cr�ation de fichier, ouverture, fermeture, �criture et lecture.

    Ces fonctions commencent en g�n�ral par le mot File-, comme FileCreate, FileOpen, FileWrite, FileRead. Dans l'aide tu trouveras des exemples. Donc dans un premier temps, essaie d'ouvrir ton fichier et affiche le dans un composant TMemo par exemple (Memo1->Line->Add(octetALire);).

    Une fois que t'arrives � maitriser ces outils, tu peux passer � la suite, c'est � dire lire les octets dont tu as besoin et les interpreter.

    Perso, si je ne veux pas me casser trop la t�te et sans trop r�flechir, j'aurais fait une fonction du genre : ReadText(), ReadPostion()... Ces fonctions vont lire un octets et l'interpreter. Par exemple, si tu sasis que tu dois lire du texte, tu appels ReadText() qui te retourne la valeur en ascii. Ces fonctions �crivent directement dans un TMemo histoire de ne pas trop de casser la t�te pour valider si tu lis une bonne valeur.

    Enfin, je ne sais pas si je me suis fait comprendre, mais sinon, je te conseil de bien analyser ton fichier. C'est � dire, ecris (ne serait-ce pour toi) clairement les diff�rents types d'informations que tu dois lire et comment analyser la valeur lue. Ecris une fonction pour lire chaque type d'information � lire si tu ne sais pas comment commen�er.

    Bon courage.

  10. #10
    Membre �m�rite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    916
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 916
    Par d�faut
    Salut,

    Pour ton probl�me de lecture de fichier, tu dis qu'il est au format texte, mais sais-tu le d�crypter visuellement ?

    Il existe une variable tr�s simple � utiliser avec Builder pour les fichiers textes, c'est Le TStringList. Avec le code suivant, tu charges ton fichier:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    TStringList *Fichier = new TStringList;  //pour la déclaration
    Fichier->LoadFromFile("C:\\fichier_texte");
    Tu retrouves ton fichier dans cette liste avec autant de ligne que ton fichier.
    Chaque ligne est une AnsiString et tu y acc�des de la mani�re suivante:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    AnsiString Ligne1 = Fichier->Strings[0];
    Cette cha�ne est une suite d'octet, ceux que tu vois dans ton fichier. Si tu veux les voir sous forme d'entier, il faut l'affichier de la mani�re suivante:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    Label1->Caption = IntToStr((int)Ligne1[1]); //affiche le premier octet de Ligne1
    J'esp�re t'avoir convaincu que le C reste tr�s facile pour faire �norm�ment de chose et avoir r�ussi � comprendre et t'expliquer ce que tu voulais faire.

  11. #11
    Membre extr�mement actif Avatar de petitours
    Homme Profil pro
    Ing�nieur d�veloppement mat�riel �lectronique
    Inscrit en
    F�vrier 2003
    Messages
    2 037
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement mat�riel �lectronique
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 2 037
    Par d�faut
    super merci !

    J'ai regard� un peu toutes ces fonctions, c'est bien ca que je cherche, je commence � cerner comment on peut faire.

    Je n'ai pas besoin d'etre convaincu ! J'utilise le C sur microcontroleurs avec grand bonheur et je connais un peu d'autres languages et, en r�f�rence au VB , je sais � quel point le C est un bon language...

    TstringList a l'air d'etre exactement ce que je cherche !!! Mon fichier contient une liste non structur�e d'octets. Vais je avoir que une seule ligne au final ? Ou vais je avoir autant de lignes que je vais trouver de caract�res retour chariot dans le fichier ? (sachant que ce caract�re retour chariot serait l� par pur hasard, il peut etre l'octet de poids faible de la temp�rature du biberon et avoir la valeur binaire du retour chariot par hasard...)

    Merci !

  12. #12
    Membre chevronn�
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    D�tails du profil
    Informations personnelles :
    �ge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par d�faut
    D�s lors que ta suite d'octets peut comporter n'importe quelle valeur - et pas forc�ment des caract�res imprimables (c'est le terme consacr�) - je ne crois pas que des fonctions sur les cha�nes de caract�res soient appropri�es.

    Tu peux peut �tre, en revanche, regarder du c�t� des fonctions sur les flux (TStream) destin�es � manipuler des suites d'octets en m�moire. Cela dit, les bonnes vieilles fonctions du C comme fgetc() feraient parfaitement l'affaire selon moi.

  13. #13
    Membre extr�mement actif Avatar de petitours
    Homme Profil pro
    Ing�nieur d�veloppement mat�riel �lectronique
    Inscrit en
    F�vrier 2003
    Messages
    2 037
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement mat�riel �lectronique
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 2 037
    Par d�faut
    Merci beaucoup, j'arrive � me d�patouiller avec Tstream et je cerne suffisament le probl�me pour r�ussir � trouver dans l'aide ce qui manque

    Merci beaucoup !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 13
    Dernier message: 29/09/2008, 08h10
  2. VBScript : Cr�er puis ouvrir un fichier csv
    Par Stephbzh dans le forum VBScript
    R�ponses: 1
    Dernier message: 04/06/2008, 09h36
  3. Cr�er puis afficher un fichier Excel � partir d'Access
    Par SamLeChiseuji dans le forum VBA Access
    R�ponses: 2
    Dernier message: 20/07/2007, 08h44
  4. R�ponses: 2
    Dernier message: 20/11/2006, 18h37
  5. Export ASCII par batchmove avec fichier SCH
    Par NONO77 dans le forum Bases de donn�es
    R�ponses: 1
    Dernier message: 10/02/2005, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo