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 :

[Débutant] Concepts : types + tas de questions


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 13
    Par défaut [Débutant] Concepts : types + tas de questions
    Je suis débutant et je suis en train d'écrire un programme en C/C++ pour windows avec l'API ; et je me pose un certain nombre de questions avant de poser mon algo sur le compilateur.

    Alors déjà je récupère 4 tableaux correspondant chacun au contenu d'un répertoire, avec des noms et attributs de fichiers : comment déclareriez-vous ce tableau sachant que j'ai des types différents (nom de fichier, date de création ou de modification, taille en octets etc...) ? Une structure, un type ? Pouvez-vous me montrer la/les déclarations ?

    Ensuite, le but de mon programme sera en fait de comparer les tableaux pour mettre à jour les bons fichiers et virer les plus vieux, et rajouter les nouveaux selon la taille du disque dur à remplir... Le programme n'étant là que pour vider et remplir un disque dur USB, en gros, mais intelligemment.

    Comment classer le tableau : en SQL j'aurais fait : "SELECT * from Tableau1 order by tableau1.DATE_FS desc ;" où DATE_FS est le champ de mon tableau qui contient la date du fichier.
    Dans mes cours de C, chaque fois qu'on faisait un tableau le prof nous demandait de le classer par nous-même avec une boucle : existe-t-il une fonction pour faire cette besogne ? Le but de cette ordination est de copier les fichiers par ordre d'importance CAD par date décroissante.

    Sinon comment stocker mes tables en dur sur un langage compatible SQL depuis mon code en C ? Est-ce judicieux ? Quel type de fichier est le plus simple à traiter sachant que selon mes calculs chaque tableau recevra environ 20 000 entrées de noms de fichiers. Ca pourrait apporter un plus à mon programme de montrer un menu des mises à jours même si ce n'est pas crucial et que ça deviendrait rapidement inexploitable à l'oeil nu avec 20 000 lignes.

    Sinon encore plus simple... Est-il possible de faire des requêtes SQL sur des objets C ou C++ qu'on a créé ? Doit-on utiliser des objets particuliers qui ressemblent à des structures ?

    Vaut-il mieux utiliser des tableaux sachant que je vais avoir des types différents dans les tableaux mais que chaque tableau aura la même structure ? D'après ce que j'ai lu sur le typage C, le plus rigoureux serait de créer un "type struct" qui porte le nom du type des futurs tableaux... est-ce judicieux ?

    Ensuite, un problème auquel mon programme va s'exposer c'est la différence entre taille de clustering et taille réelle des fichiers... Comment gérer cette différence avant ma copie de fichiers ? Comment un programme peut gérer ce genre de soucis lors de la copie ?

    Comment calculer (ou récupérer) la taille disponible d'un disque dur ou d'une partition NTFS ?

  2. #2
    Membre confirmé Avatar de BigNic
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 195
    Par défaut
    Pour la première question pk tu ne fais pas comme ça:

    C++

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     myFileClass
    {
        std::string m_name;
        unsigned m_size;
        time_t m_date;
        // etc...
    }
    et après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myFileClass v_myRep[nbFiles];
    si le nombre fichiers dans ton repertoire est variable soit tu le determine avant de créer to tableau, soit tu fais des alloc dynamic.

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 13
    Par défaut
    A vrai dire BigNic, je ne comprends pas cette déclaration 'std ::' ...

    et pour déclarer : MyFileClass, il faut pas un "struct" devant ?

  4. #4
    Membre émérite Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Par défaut
    Salut,

    'std::' signifie que string est déclaré dans l'espace de nom 'std'.

    Il y a tout sur les espaces de nom dans la FAQ:
    http://c.developpez.com/faq/cpp/

    Au vu de tes besoins, il te faut un vector sur un type:
    Soit une classe ou une structure.

    Personnellement, je pense qu'une structure serait suffisante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //Déclarer CDate:
    typedef CDate string;
     
    struct FileInfos {
      Name : string;
      CreatedDate  : CDate //La ça dépend, tu as plusieurs choix.
      ModifiedDate :
      Size:Unsigned long //Pour les très gros fichiers.
    };

  5. #5
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 13
    Par défaut
    Ca me parait très compliqué ! Je vais essayer de m'exercer à manipuler ce genre de variables !

    Et pour ce qui est des autres questions ? tables compatibles SQL ?

    comment faire pour allouer une longueur de tableau dynamique ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 94
    Par défaut
    Ca me parait très compliqué ! Je vais essayer de m'exercer à manipuler ce genre de variables !
    Je suis tout à fait d'accord Je programme en C++ depuis 1 an et demi autant dire que je ne suis pas tout à fait débutant, eh ben j'aurais pas osé essayer un truc pareil 8)

    L'histoire du SQL avec les objets C++, c'est impossible avec le standard. Je ne suis même pas sur que ça existe en bibliothèque, par contre tu peux utiliser SqLite pour construire tes tables, c'est un outil plutôt pratique.

    Les clusters et le NTFS, faut regarder du côté de l'API Windows je pense, étant donné que NTFS est un système de fichiers propriétaire de Micro$oft ...

    Bonne chance à toi
    Kwakanar[/quote]

  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Citation Envoyé par Epouvantail
    comment faire pour allouer une longueur de tableau dynamique ?
    Cherche std::vector<> dans la FAQ.
    Et std::sort pour les tris.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #8
    Membre émérite Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Par défaut
    C'est normal que ça te sembles compliqué, mais c'est comme ça que tu vas progresser


    Pour Kwakanar: Tu parles de ma déclaration? ou de celle d'avant?


    Citation Envoyé par Epouvantail
    Ca me parait très compliqué ! Je vais essayer de m'exercer à manipuler ce genre de variables !

    Et pour ce qui est des autres questions ? tables compatibles SQL ?

    comment faire pour allouer une longueur de tableau dynamique ?

Discussions similaires

  1. Question de débutant : conception de jeux
    Par zooffy dans le forum Moteurs 3D
    Réponses: 16
    Dernier message: 14/02/2008, 07h48
  2. Type void * ... petite question !
    Par Franck.H dans le forum C
    Réponses: 29
    Dernier message: 28/03/2005, 13h38
  3. [Débutante] Conception
    Par bolo dans le forum Assembleur
    Réponses: 14
    Dernier message: 25/11/2004, 03h40
  4. [débutante][Concept] Destruction d'objet, mode d'emploi?
    Par skea dans le forum Général Java
    Réponses: 4
    Dernier message: 12/06/2004, 21h48
  5. [Débutant][Conception] LIFO et Iterator
    Par Wisefool dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 05/05/2004, 13h50

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