Linux

Résolu/Fermé
mimi_lindy - 20 févr. 2008 à 18:57
mimi_lynda Messages postés 30 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 15 novembre 2008 - 5 mai 2008 à 22:39
Bonjour,voulez vous maider ds cet exo svp
exo:
on desire traiter des fichiers linux ayant la structure suivante:
-une zone d'entete qui consiste en un entier de votre choix
-une suite d'objets ayant la structure suivante:-nom
-prenom
-age
les operations a realiser sur de tels fichiers sont:

*ouverture d'un fichier existant et affichage des enregistrement.
*une fonction qui donne le nombre d'enregistrements.
*une fonction qui donne la valeur du i=eme enregistrement.
*une fonction qui ajoute un nouvel enregistrement en fin de fichier .
*une fonction qui modifie le i=eme enregistrement .
*une fonction qui affiche en cas d'erreue dans un appel systeme le numéro et le message correspondant à l'erreur .
merci d'avance de mavoir aidé!
A voir également:

35 réponses

[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 1 099
20 févr. 2008 à 19:03
De rien !

Mais quel est exactement ton problème technique ?


Dal
0
re,
je veux le code'les commandes linux'qui me permettent de creer ce fichier ayant la structure demandée,
et les fonctions linux aussi (demandées) pour pouvoir manipuler ce fichier.
si vous metrisez linux vous pouvez comprendre de quoi il s'agit.
si vous pouvez m'aidez n'hesiter pas car j'en ai besoin.
merci une 2eme fois
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
20 févr. 2008 à 19:21
Salut,

Commence par nous exposer ce que tu as déjà fait, ensuite on verra ce que l'on peut pour toi ;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 févr. 2008 à 19:26
Salut,

ce n'est pas un exo en langage C par hasard?
0

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

Posez votre question
mimi_lynda Messages postés 30 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 15 novembre 2008
20 févr. 2008 à 19:28
non,jai rien fait car,
j'ai peu de connaissance sur linux ,je sais juste crrer des fichier simples a travers le c++
mais ca c'est du pur linux et moi je connais pas l'environement linux,mais je dois faire ce travail .
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 févr. 2008 à 19:30
et le nombre entier qui est au début de fichier ce n'est pas par hasard le nombre d'enregistrements ?!
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
20 févr. 2008 à 19:30
je dois faire ce travail .
Dans quel but ?
0
mimi_lynda Messages postés 30 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 15 novembre 2008
20 févr. 2008 à 19:31
oui, exactement cest un exo en langage c,et vu que je ne metrise pas linux et c ou c++ jai besoin d'aide!!
merci lami20j
0
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 473
20 févr. 2008 à 19:42
bonjour,

j'ai du mal à comprendre la logique :

une zone d'entete
à quoi sert-elle dans l'exercice ???


affichage des enregistrement.

enregistrements de quoi ?



-une suite d'objets ayant la structure suivante:
-nom
-prenom
-age </ital>

on peut supposer y mettre ce qu'on veut d'autre .... :-)


une fonction qui affiche en cas d'erreue dans un appel systeme le numéro et le message correspondant à l'erreur .

pourquoi faire ?


décidemment je comprend rien à rien ...trop dur pour moi l'informatique !
0
mimi_lynda Messages postés 30 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 15 novembre 2008
20 févr. 2008 à 20:43
bsr,je veux qlq'un qui metrise le c (c++) sous linux pour m'aider a faire un exo
merci davance !
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 févr. 2008 à 20:46
Salut,

voici un début
Le code permet de créer des enregistrements et ensuite d'afficher le contenu du fichier

tu crées d'abord un fichier vide avec la commande
touch personne.dat


ensuite tu compile ce p'tit code et tu l'exécute
#include<stdio.h>
#include<stdlib.h>

typedef struct Personne_{
	char nom[100];
	char prenom[100];
	int age;
}Personne;

void AjouterEnregistrement(int *nb);
void Afficher(int *nb);

int main()
{
  int nb;
  char choix = 'o';
  while(choix == 'o'){
    AjouterEnregistrement(&nb);
    getchar();
    printf("Voulez vous continuer o/n ? ");
    choix = getchar();
  }
  Afficher(&nb);
  return 0;
}

void AjouterEnregistrement(int *nb){
  FILE *fb;
  Personne nouveau;

  if(NULL ==(fb=fopen("personne.dat","r+b")))
    exit(EXIT_FAILURE);
  if(fread(nb,sizeof(int),1,fb)==0)
    *nb = 0;
  printf("--- Ajouter une nouvelle personne ---\n");
  printf("Nom : ");
  scanf("%s",nouveau.nom);
  getchar();
  printf("Prenom : ");
  scanf("%s",nouveau.prenom);
  getchar();
  printf("Age : ");
  scanf("%d",&nouveau.age);
  *nb = *nb +1;
  fseek(fb,0,SEEK_SET);
  fwrite(nb,sizeof(int),1,fb);
  fseek(fb,0,SEEK_END);
  fwrite(nouveau.nom,100,1,fb);
  fwrite(nouveau.prenom,100,1,fb);
  fwrite(&nouveau.age,sizeof(int),1,fb);
  fclose(fb);
}

void Afficher(int *nb){
  FILE *fb;
  int i;
  Personne nouveau;

  if(NULL ==(fb=fopen("personne.dat","rb")))
    exit(EXIT_FAILURE);
  fread(nb,sizeof(int),1,fb);
  printf("Il y a %d enregistrements\n",*nb);
  for(i=0;i<*nb;++i){
    fread(nouveau.nom,100,1,fb);
    fread(nouveau.prenom,100,1,fb);
    fread(&nouveau.age,sizeof(int),1,fb);
    
    printf("%d. Nom : %s, Prénom : %s , Age : %d\n",
		  i+1,nouveau.nom,nouveau.prenom, nouveau.age);
  }
  fclose(fb);
}
0
mimi_lynda Messages postés 30 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 15 novembre 2008
21 févr. 2008 à 22:14
bsr lami20,
je pourrais avoir des réponses a mes dèrnieres questions stp? car j'en ai vraiment besoin
merci
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 févr. 2008 à 20:53
voici l'exécution
lami20j@debserv:~/trash/c_exercices$ ./a.out
--- Ajouter une nouvelle personne ---
Nom : AAA
Prenom : aaa
Age : 10
Voulez vous continuer o/n ? o
--- Ajouter une nouvelle personne ---
Nom : BBB
Prenom : bbb
Age : 20
Voulez vous continuer o/n ? o
--- Ajouter une nouvelle personne ---
Nom : CCC
Prenom : ccc
Age : 30
Voulez vous continuer o/n ? n
Il y a 3 enregistrements
1. Nom : AAA, Prénom : aaa , Age : 10
2. Nom : BBB, Prénom : bbb , Age : 20
3. Nom : CCC, Prénom : ccc , Age : 30
lami20j@debserv:~/trash/c_exercices$
0
mimi_lynda Messages postés 30 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 15 novembre 2008
20 févr. 2008 à 20:55
merci pour ce code,
le nom du fichier c'est 'personne'?et ce code repond a quellle partie de l'exo?

si je px avoir votre msn pour discuter de la solution ca serait bien
merci
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 févr. 2008 à 21:00
le nom de fichier est personne.dat

le code traite
*ouverture d'un fichier existant et affichage des enregistrement.
*une fonction qui donne le nombre d'enregistrements.
*une fonction qui ajoute un nouvel enregistrement en fin de fichier .


le nombre d'enregistrement je l'affiche avec la fonction d'affichage
0
mimi_lynda Messages postés 30 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 15 novembre 2008
20 févr. 2008 à 21:08
ya -t-il la commande pour le nombre entier a lentete? qui n'est pas bien sur le nombre d'enregistrements,c'est un nombre entier quelquonque .
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 févr. 2008 à 21:11
un nombre entier quelconque ne sers à rien

donc le nombre entier sera le nombre des enregistrements
à chaque nouveau enregistrement le numéro sera incrément, ce que je trouve assez logique
comme ça tu ne sera pas obliger de compter à chaque fois que tu veux le nombre d'enregistrements

et voici une fonction pour le nombre d'enregistrements qui en fait lit le nombre entier en entête de fichier

int NombreEnregistrements(){
  FILE *fb;
  int nb;
  if(NULL == (fb = fopen("personne.dat","rb")))
    return -1;
  fread(&nb,sizeof(int),1,fb);
  fclose(fb);
  return nb;
}

0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 févr. 2008 à 21:14
pour
*une fonction qui affiche en cas d'erreue dans un appel systeme le numéro et le message correspondant à l'erreur .


tu dois utiliser perror
0
Grunt Messages postés 2773 Date d'inscription jeudi 17 janvier 2008 Statut Contributeur Dernière intervention 3 avril 2009 301
20 févr. 2008 à 21:40
Normalement, si ton code ne fait pas appel à des librairies disponibles que sous Windows, que tu sois sous Linux ou sous Windows ne change strictement rien : le C, c'est du C !
0
mimi_lynda Messages postés 30 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 15 novembre 2008
20 févr. 2008 à 21:42
voici l'enoncé complet de l'exo:
Bonjour,voulez vous maider ds cet exo svp
exo:
on desire traiter des fichiers linux ayant la structure suivante:
-une zone d'entete qui consiste en un entier de votre choix
-une suite d'objets ayant la structure suivante:-nom
-prenom
-age
les operations a realiser sur de tels fichiers sont:

*ouverture d'un fichier existant et affichage des enregistrement.
*une fonction qui donne le nombre d'enregistrements.
*une fonction qui donne la valeur du i=eme enregistrement.
*une fonction qui ajoute un nouvel enregistrement en fin de fichier .
*une fonction qui modifie le i=eme enregistrement .
*une fonction qui affiche en cas d'erreue dans un appel systeme le numéro et le message correspondant à l'erreur .

-écrire en c++(c) les classes (les structures) nécessaires .
-ajouter une fonction Main ,cette fonction affiche un menu afin de permettre à l’utilisateur d’exécuter des opérations sur les fichiers précédants .

merci d'avance de m’avoir aidé!
0
mimi_lynda Messages postés 30 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 15 novembre 2008
20 févr. 2008 à 21:45
'et voici une fonction pour le nombre d'enregistrements qui en fait lit le nombre entier en entête de fichier '
explique moi cette phrase,est elle demandée ds l'exo?
0