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++ Discussion :

recuperation de donn�es


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par d�faut recuperation de donn�es
    Bonjour � vous programmeurs en C :

    Voila je vous explique mon probleme :
    j'ai un fichier "toto.txt"
    qui contient
    un
    deux
    trois
    quatre
    cinq
    et je dois � l'aide d'un char buff[2*BUFSIZ] (sachant que j'ai definie #define BUFSIZE 5)

    j'ai donc reussi � lire dans le fichier les 10 premiers octets ainsi que tout les autres cela veut dire que quelques soit les donn�es ecrites dans le fichier j'arrive � les lires � l'ecran

    maintenant j'aurais besoin de votre aide pour savoir comment faire pour recuper un chiffre par exemple(chiffre ecrit dans le fichier) et le comparer par rapport � une valeur maximale

    mon futur fichier se presentera sous cette forme la
    12 155
    15 16
    18 16
    156 156
    je devrais donc lire ces valeurs les affich�s (mais ca cest en plus et j'arrive � le faire) mais j'aimerai m'arrete a la premiere valeurs la lire l'afficher la comparer puis pass� � la deuxieme etc...

    comment faire si je veux comparer la valeur , comment la recuperer dans une valeur sachant que j'affiche octet par octer?

    a moins qu'il ya une solution pour afficher les mots jusqua l'espace ou le caractere \n
    merci de vos aides precieuses
    voici le code
    appli.h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #include <stdio.h> 
     
    #undef BUFSIZ
     
    #define BUFSIZ 5
     
    #include <conio.h> //pour getch()
     
    #include <stdlib.h> //exit(0)(fonction terminator)
     
    #include <io.h> //pour la fonction open
     
    #include <fcntl.h> //pour les attributs O_CREAT,O_BINARY....
     
    #include <sys/stat.h> //pour les attributs S_IREAD,S_IWRITE.....
     
    #include <errno.h> // pour les attributs EACCESS....
     
    #include <string.h> //pour strlen
     
    #include "C_File.h" //fichier de la classe C_File
     
    //Prototype Terminator
    void Fin (char* pMsg);
    Fichier C_File.h (//header de la classe C_File)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
     
    class C_File
    {
    	private :
    		char buff[2*BUFSIZ];
    		int iFichier,iBitsEcriture,iBitsLecture;
     
    	public :
     
    		 C_File();
    		 int FILE_READ(void);
    		 void FILE_TRAITE(int);
    		 ~C_File();
    };/*
    FILE_NEW // Ouverture du fichier
    FILE_DEL // Fermeture du fichier
    FILE_READ // Lecture d'un bloc
    FILE_TRAITE // Traitement de ce qui est dans le tampon*/
    Fichier Fin.h (//ma fonction termniator ,si il ya une erreur on quitte le programme)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    #include "appli.h"
     
    void Fin (char *pMsg)
     
    {
    	puts(pMsg);
    	exit(0);
    }
    Le fichier C_File.cpp (la classe C_File)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    http://www.developpez.net/forums/forumdisplay.php?f=7
    }
    Et le main.cpp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    #include "appli.h"
     
     
     
    void main (void)
    {
     
     
    	int iNbrOctets;
    	//creation d'une variable de type C_File
    	C_File objet;
     
     
    	iNbrOctets = objet.File_read();
    	if(iNbrOctets ==-1) Fin("Ecriture : Erreur");
     
     
     
     
     
    }
     
     
     
     
     
    }
    merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par d�faut
    personne n"a de petite id�e ou mon post est trop grand!!!

  3. #3
    Membre �prouv�
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Par d�faut
    Salut,
    la faq gere deja ce genre de sujets:
    http://c.developpez.com/faq/cpp/?fil...NNNONNN#sect22
    je te conseil les paragraphes 12 et 13 sur la gestion des strings et la gestions des flux


    sinon pour lire dans un fichier on te conseillera plutot la classe
    fstream ou istream avec une lecture en utilisant le getline(stream,string)
    puis tu convertis la string en int cf la faq

    bonne chance a toi

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par d�faut
    le probleme est que je ne peux utiliser les fonctions avec f exemple fopen, fgets....

    donc je cherche une solution pour pouvoir recuperer les informations disons que il faudrait que je mettes dans une variable les informations jusqu'a l'espace mais comment faire pour definir l'espace

    je fais

    do
    {
    }while(buff[iCpt]!=' ');

    ??? merci de vos reponses

  5. #5
    Membre �prouv�
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Par d�faut
    tu as �galement une fonction C

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    #include <stdio.h>
    ssize_t getline(char **lineptr, size_t *n, FILE *stream);

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par d�faut
    mais comment tu l'utilises je comprend pas trop

    merci de ton aide

    cordialement

    de plus je ne vois pas du tout comment l'integrer dans mon code je sais je suis un peux bete mais j'ai vraiment aucune id�e la je gal�re depuis pas mal de temps , j'arrive � lire dans le fichier � afficher tout le fichier � l"ecran avec un buffer de taille max de 10 octets j'ai reussi � faire un buffer tournant mais apres jaimeraui recuperer le premier nombre sachant que chaque nombre et separ� par un espace (l'espacec'est quoi comme code sachant que retour � la ligne c'est \n ...)

    merci d'avance

  7. #7
    Membre �prouv�
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Par d�faut
    salut, la representation d'un carac se fait avec des simples cotes
    donc tu peux comparer un char de cette maniere :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    char c;
    ....
    if(c==' ')...
    sinon penses a utiliser les moteurs de recherches, voici un exemple du getline
    http://www.die.net/doc/linux/man/man3/getline.3.html


    enfin on est sur un forum C++ et non C donc on va plutot preferer ce genre de code ( plutot que d 'utiliser les fopen fread ...)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #include <iostream>
    #include <fstream>
    #include <string>
     
    using namespace std;
     
    int main()
    {
     ifstream inputfile("toto.txt");
     string line;
     
     while(getline(inputfile,line))
     {
     
       // traitement cf string to int de la FAQ
       cout << line<< endl;
     }
     
     
    return 0;
    }

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par d�faut
    oui mais le probleme c'est qu'un moderateur a mis mon topic dans le c++ alors que je veux utiliser des fonctions de c bref c'est compliqu� pour moi car mon prof. est du genre rigide..

    merci de vos reponses

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par d�faut
    j'ai encore une question

    voila je mais des informations dans un tableau , ce tableau contient les informations d'un fichier (le tableau ne peut depasser 10 octets donc je dois sans cesses effacer etc..)

    j'aimerais donc les informations dans une variable d�s que mon programme detecte dans mon tableau un espace ou un \n il met les informations dans un char ou un int mais je n'ai vraiment aucune id�e pour faire cela si quelqu"une en a une merci d'avance

  10. #10
    Membre �prouv�
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Par d�faut
    ton prof veut que tu utilises une fonction comme fgetc alors

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    if(fgetc(file)==EOF) --> fin de fichier
    if(fgetc(file)==' ') --> fin du mot
    if(fgetc(file)=='\n') --> fin de ligne et fin de mot
    sinon stocker dans ton tableau le carac lu.
    on peut pas trop t aider tu dois plus ou moins utiliser ces conditions et verifier a ne pas depasser les 10 carac quand tu stock les infos dans ton tableau

    sinon la fonction pour passer de l'ascii a un int , c'est atoi()

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par d�faut
    merci de tes reponses mais je vais t'expliquer ce que veux mon prof

    il veut que j'utilise de sfonction bassse par exemple je ne peux pas utiliser

    fopen mais open qui retourne un int egale au nombre de bits du fichier
    ensuite pour lire dans le fichier je ne peux utiliser fread mais read

    dans le cas de fgets je dois suremment utiliser gets ou une fonction dans ce genre mais je ne sais vraiment pas comment faire

    merci de votre aide ca va vraiment m'aid� car tout ceci est pour mon projetr de BTS et la je sui sobliger de bosser dessus pendant les vacances car je suis en retard � vcauses de ces manis

    merci d'avance..

  12. #12
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,
    Citation Envoy� par Delgador
    merci de tes reponses mais je vais t'expliquer ce que veux mon prof

    il veut que j'utilise de sfonction bassse par exemple je ne peux pas utiliser

    fopen mais open qui retourne un int egale au nombre de bits du fichier
    ensuite pour lire dans le fichier je ne peux utiliser fread mais read

    dans le cas de fgets je dois suremment utiliser gets ou une fonction dans ce genre mais je ne sais vraiment pas comment faire

    merci de votre aide ca va vraiment m'aid� car tout ceci est pour mon projetr de BTS et la je sui sobliger de bosser dessus pendant les vacances car je suis en retard � vcauses de ces manis

    merci d'avance..
    Mais, dans ce cas, il serait peut etre int�ressant de t'orienter plutot vers le forum C... D'autant plus que la seule chose r�ellement en rapport avec le C++ soit ta classe C_File

    Je ne comprendrai personnellement jamais ces professeurs qui obligent les �l�ves � r�inventer la roue en travaillant en "C style" l� ou le C++ fournit tout ce qui peut faciliter la tache, tout en fournissant quelque chose de bien plus robuste

    NOTA:
    • conio.h n'est pas portable (disponible uniquement sous windows)
    • Les autres fichiers d'entetes "langage" que tu inclue sont tous des fichiers typiquement C
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par d�faut
    merci de ta reponse mais (je sis casse pieds d�sol�) mais auriez vous alors une id�e pour mon probleme meme si ce topic releve du C

    dans le cas ou j'utilise une classe le moyen serait de cr�er des fonctions ,File_Create,File_dell,File_Read et File_Traite?

    merci de vos aides

  14. #14
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Citation Envoy� par Delgador
    (snip-
    dans le cas ou j'utilise une classe le moyen serait de cr�er des fonctions ,File_Create,File_dell,File_Read et File_Traite?

    merci de vos aides
    Par exemple... id�alement, en tant que fonction membre de la classe, d'ailleurs
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

Discussions similaires

  1. [vbexcel]recuperation de donn�es
    Par Mugette dans le forum Macros et VBA Excel
    R�ponses: 1
    Dernier message: 13/10/2005, 13h01
  2. Mysql LongBlob: recuperer les donn�es
    Par froz dans le forum SGBD
    R�ponses: 1
    Dernier message: 24/08/2005, 14h41
  3. PB de recuperation de donn�es en asynchrone !!
    Par Stopher dans le forum C++
    R�ponses: 8
    Dernier message: 01/02/2005, 23h20
  4. Recuperer des donn�es d'access
    Par Lucier dans le forum MFC
    R�ponses: 18
    Dernier message: 25/11/2004, 10h29
  5. R�ponses: 3
    Dernier message: 22/02/2004, 20h09

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