begin process at 2012 05 30 03:16:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

lire un fichier et envoyer tout les 100 octets


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

lire un fichier et envoyer tout les 100 octets

jeudi 30 novembre 2006 à 14:13:43 | lire un fichier et envoyer tout les 100 octets

sebastienmz

bonjour j'ai fait un programme d'administration a distance et j'ai fait une fonction pour lire un fichier et je doit envoyer tout les 100 octet lu mais cela marche pas ! POUVEZ VOUS M'AIDER ?!? voila ma source :
void consult (char nf[81]) { //menu de choix de la consultation
  int p = 0;
  int nb = 0;
  FILE * entree;
  char mot[100];
  entree = fopen (nf, "r"); 
  while (1) {
    fscanf (entree , "%c", &mot[p]);
    if (feof (entree)){ //si on arrive la la fin SPOUTCH
      printf("%s", mot);
      strcpy(socketbuff.snd,mot);    
      envoi(&socketbuff);             
      strcpy(socketbuff.snd,"\r\nEND\r\n");    
      envoi(&socketbuff);
      break; 
    } p++;
    if (p>=98){
      p=0;
      printf("%s", mot);
      strcpy(socketbuff.snd,mot);    
      envoi(&socketbuff);             
      memset(mot,'\x00',99);  
  }  }
  fclose(entree);
}

_____________
Sébastien Metthez
www.sebastien-metthez.com
jeudi 30 novembre 2006 à 15:10:30 | Re : lire un fichier et envoyer tout les 100 octets

Ombitious_Developper

Salut:

Utilises fgets (buffer, 100, stream);
jeudi 30 novembre 2006 à 15:14:56 | Re : lire un fichier et envoyer tout les 100 octets

sebastienmz

dois-je faire un feof?
___________
Sébastien Metthez
www.sebastien-metthez.com
jeudi 30 novembre 2006 à 15:15:52 | Re : lire un fichier et envoyer tout les 100 octets

Ombitious_Developper

Salut:

Une petite rectification:

Si tu veux lire au plus 100 caractères tu dois donc lire 101 caractères (un de plus pour '\0')

#define SIZE 101

FILE * stream = fopen ("fichier", "r");
if (stream != NULL) {
    while (fgets (buffer, SIZE, stream) != NULL) {
       // tu travailles maintenant avec ton buffer
    }
    fclose (stream);
}

jeudi 30 novembre 2006 à 15:16:12 | Re : lire un fichier et envoyer tout les 100 octets

Ombitious_Developper

Salut:

Une petite rectification:

Si tu veux lire au plus 100 caractères tu dois donc lire 101 caractères (un de plus pour '\0')

#define SIZE 101
char buffer [SIZE];
FILE * stream = fopen ("fichier", "r");
if (stream != NULL) {
    while (fgets (buffer, SIZE, stream) != NULL) {
       // tu travailles maintenant avec ton buffer
    }
    fclose (stream);
}

jeudi 30 novembre 2006 à 15:23:44 | Re : lire un fichier et envoyer tout les 100 octets

Ombitious_Developper

Salut:

fgets retourne NULL quand elle détecte la fin du fichier EOF.
vendredi 1 décembre 2006 à 22:43:02 | Re : lire un fichier et envoyer tout les 100 octets

yoyo269

Membre Club
Salut à tous les deux,

je me pose une question à propos de fgets.
Ne vaudrait-il pas mieux utiliser fread à la place ?
Désolé si je me trompe.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

vendredi 1 décembre 2006 à 23:57:21 | Re : lire un fichier et envoyer tout les 100 octets

SAKingdom

Membre Club
Ombitious_Developper >> Quel '\0'. C'est un fichier. Il n'est pas garantie qu'il soit dedans. En plus, si je me souvien bien, fgets ne récupère qu'une ligne. Si tu veux récupérer 100 char mais que la ligne dans le fichier n'en fais que 10, il n'en récupéra que 10.

Yoyo >> Oui. Voici un exemple simple:

#define SIZE 100
char buf[SIZE+1];
FILE *file = fopen("fichier.txt", "r");
int byte;

while(1)
{
    byte = fread(buf, 1, SIZE, file);
    if(byte != SIZE) break;

    buf[byte] = 0;

    // Manipulation dans le buffer

}

fclose(file);

Ou mieu encore, on récupère tout le fichier dans un buffer pour on navigue dedans avec un pointeur.

C++ (@++)

samedi 2 décembre 2006 à 00:03:12 | Re : lire un fichier et envoyer tout les 100 octets

SAKingdom

Membre Club
Oups pardon, mauvaise boucle. Voici la bonne:

do
{
    byte = fread(buf, 1, SIZE, file);
    if(!byte) break;
    buf[byte] = 0;

    //Manipulation dans buffer

} while(byte == SIZE);

C++ (@++)

samedi 2 décembre 2006 à 00:55:43 | Re : lire un fichier et envoyer tout les 100 octets

Ombitious_Developper

Salut:

J'ai lu dans MSDN que la fonction fgets ajoute un '\0' au buffer d'entrée quand :
1- elle rencontre un '\n'.
2- lorsque le nombre maximal de caractères est atteind.

La preuve :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_fgets.2c_.fgetws.asp

Remarks

The fgets function reads a string from the input stream argument and stores it in string. fgets reads characters from the current stream position to and including the first newline character, to the end of the stream, or until the number of characters read is equal to n - 1, whichever comes first. The result stored in string is appended with a null character. The newline character, if read, is included in the string.





1 2

Cette discussion est classée dans : fichier, lire, mot, entree, socketbuff


Répondre à ce message

Sujets en rapport avec ce message

Lire un fichier et l'afficher [ par sebastienmz ] bonjour j'ai un problème comme d'habitude mais la c'est bizzard je veux juste afficher le contenu d'un fichier .txt mais cela maffiche que les 8 premi lecture d'un mot dans un fichier [ par paulina82 ] bonjour tout le monde. en faite j'ai un gros pb.je suis an train de faire un projet en langage C.et mon pb est que j'arive pas a lire un mot dans un f lire un fichier en C [ par thebadskull ] donc voilà j'ai un petit probleme...j'ai un fichier qui possede ces lignes...192.168.0.5ok 1210/09/04192.168.0.9null 0pbm11/09/04etc...en fait j'aimer utilisation fichier en c++ [ par walidhas ] slt;je cherche des codes de manipulation des fichier en c++:lire fichier mot par mot;lire fichier suivant un vecteur de mot que je fixe... aussi je ve vfw decompression vidéo. [ par loezic ] Bonjour a tous. Je travail sur un projet multimedia, et je dois pouvoir lire un fichier avi à l'aide de vfw (demande du client), je sais qu'il ne per rechercher un mot dans un fichier txt [ par tanguy704 ] Bonjour Je suis entrain de réaliser un jeu genre scrabble. Les mots valides proposés par les joueurs sont stockés dans un fichier txt un mot par lign Lire fichier audio [ par lucas0102 ] Bonjour, je cherche a lire un fichier audio (mp3 ou wav ...) mais sans ouvrir un logiciel tel que Itunes, Lecteur Windows media... Mais que le prog Lire un fichier .smil [ par scrodofus ] Bonjour, je ne sais pas si je suis dans la bonne section, mes voila j'aimerai savoir comment je peut lire la video qui ce trouve dans un fichier .smil lire fichier excel [ par titi_66 ] Bonjour à tous, Est-ce que quelqu'un sait comment lire un fichier .xls ou alors créer un fichier .csv a la volé puis le supprimer à la fin avec excel


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales