Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1460 connectés 

  FORUM HardWare.fr
  Programmation

  pb avec ma fonction trier et ma fonction chargement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb avec ma fonction trier et ma fonction chargement

n°122401
zed255
Posté le 05-04-2002 à 23:06:10  profilanswer
 

bonjour a tous
 
je suis assez novice en c, je rencontre 2 problemes :
 
[g]1--dans ma fonction trie ci jointe quand je rentre des elements du tableau
en majuscule et en minuscule, la fonction ne trie pas- elle trie uniquement
si ce sont que des majuscules uniquement ou des minuscules

//les fonctions trier[/g]
void permute(disc *tableau,int i,int j);
void trier(disc *tableau,int nbdisc)
 {
        int i,j,min=0,tmp=0;
 
  for(i=0;i<nbdisc;i=i+1)
  // if(islower(tableau[i].auteur) !=0)
    //toupper(tableau[i].auteur);
  {
   min=i;
 
   for(j=i;j<nbdisc;j=j+1)
   {
    if(strcmp(tableau[min].auteur,tableau[j].auteur)>0)
 
     min=j;
   }
     if(min !=i)
     permute(tableau,i,min);
 
  }
}
 
 
void permute(disc* tableau,int i,int min)
{
 char temp[NBRE];
  int tmp;
 
  strcpy (temp,tableau[min].auteur);
  strcpy(tableau[min].auteur,tableau[i].auteur);
  strcpy(tableau[i].auteur,temp);
 
  tmp=tableau[min].annee_album;
  tableau[min].annee_album=tableau[i].annee_album;
  tableau[i].annee_album=tmp;
 
  tmp=tableau[min].reference;
  tableau[min].reference=tableau[i].reference;
  tableau[i].reference=tmp;
 
 
}
 
2--dans ma fonction chargement et sauvegarde lorsque je ferme mon programme
mon fichier est vide , mon programme efface tout lors de la fermeture.......

 
#include "discotheque.h"
 
 
/*prototype fonction sauvegarde BD*/
int sauvegarde_fichier(disc *tableau,int nbdisc)
{
 int i;
 FILE *fp;
 
 
  fp=fopen("discotheque.dat","w" );
   if(fp==NULL)
 
 { printf("erreur lors de la sauvegarde %s",fp);
   return -1;}
 
 for(i=0;i<nbdisc;i++)
 {
  fprintf(fp,"%s\t %d\t %d\t",tableau[i].auteur,&tableau[i].annee_album
  ,&tableau[i].reference);
 }
 printf("La sauvegarde est faites \n" );
 fclose(fp);
 return 0;
}
 
//prototype chargement
int chargement_fichier(disc* tableau, int *pt_nbdisc)
{
 int i;
 //char buffer;
 FILE *fp;
 
 fp=fopen("discotheque.dat","r" );
  if(fp==NULL)
 {
 printf("erreur lors du chargement %s",fp);
 return -1;
 }
 
 for(i=0;i<(*pt_nbdisc);i++)
 // while((fgets(buffer,*pt_nbdisc,fp)!=NULL) && (i<NBRE_DISC))
 {
  fscanf(fp,"%s\t %d\t %d\t",tableau[i].auteur,&tableau[i].annee_album
  ,&tableau[i].reference);
 
 }
 
 printf("Le chargement est fait \n" );
 fclose(fp);
 return 0;
}
merci pour votre aide

mood
Publicité
Posté le 05-04-2002 à 23:06:10  profilanswer
 

n°123271
Carbon_14
Posté le 08-04-2002 à 16:20:58  profilanswer
 

Ce n'est qu'un extrait ? Le tableau (structure disc), il est bien dimensionné qq part, j'espère. Les champs "auteur", ils sont de longueur fixe ou variable selon la longueur de la chaîne (+1 pr le \0 terminal)?
 
Vu leur code ASCII, les noms en MAJUSCULE précèdent TOUS les noms en Minuscules, sait pas si ça peut aider...
Si on veut que "toto1" précède "TOTO2", faut comparer la version "majuscule" de chaque chaîne.
 
Pour éviter toutes ces recopies, un moyen plus "léger" serait (c'est ce que je fais pour des bases de données (chimie/formules/) de structure perso), c'est d'avoir un tableau d'int qui donne le rang de l'enregistrement. On manipule que ce tableau et non chaque enregistrement.  :)  
En en ayant un autre qui donne le numéro d'objet par rapport à sa place, on a accès dans tous les sens (quelle place a le disque x dans la base, quel est le y-ième disque de la base).
 
Si c'est un exercice, faut pas changer la méthode.. :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  pb avec ma fonction trier et ma fonction chargement

 

Sujets relatifs
[PHP Hard] Fonction définition : l'ameliorer...[PHP] : Fonction ImageTTFText
[VB] Trier un array ?[C/C++] Importer une fonction de kernel32.dll
[html] peut on définir l'ordre de chargement des frames?[Visual C++ ] Comment implenter une fonction utilisant des boutons...
[SECURITE] c'est quoi le probleme de sécurité de la fonction bcopy ?[C]Une fonction qui retourne un tab de char (urgent)
[URGENT] comment trier des JTable[Delphi] Cette fonction existe t elle?
Plus de sujets relatifs à : pb avec ma fonction trier et ma fonction chargement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR