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 :

Creer fichier taille fixe


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Par défaut Creer fichier taille fixe
    Bonjour.

    Suite à un précédent post concernant l'estimation du temps nécessaire à la copie des données d'une partition A vers une partition B, de nouvelles questions apparaissent.

    La méthode retenue pour cette estimation de temps, est de copier un fichier de X Mo de la partition A vers la partition B. De calculer le temps nécessaire a ces X Mo, et d'en déduire, via un produit en croix, le temps nécessaire a la copie des Y Mo, Y étant la taille de la totalité des données de la partition A.

    De cette manière, j'ai réussi a avoir une estimation du temps, de l'ordre de la seconde, ce qui me suffit largement. Le problème qui se pose, c'est la création de ce fichier de X Mo.

    Pour le moment, je créé un fichier texte, et je le rempli de char, jusqu'à atteindre les 20Mo, tout ceci au travers d'une boucle FOR. Mais tout ce temps de création de fichier (qui avoisine les 3 ou 4s), c'est du temps de perdu.

    J'en arrive enfin a ma question. Existe-il une methode plus intelligente, et surtout, plus rapide, afin de créer un fichier de taille fixe ? Sachant que la taille minimum est de l'ordre de la 20éne de Mo.

    A défaut, existe t'il une methode qui s'utilise de telle sorte qu'il soit possible d'indiquer : "Tu copie 20Mo, pas plus, même si ce fichier en fait 250" ?

    Merci

    Cordialement,
    PKO

  2. #2
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    Pourquoi ne pas créer une bonne fois pour toute le fichiers de 20 mo?


    (n'étant pas dans la précédente discussion je sais pas si y'a des contraintes spéciales)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Par défaut
    Bonjour.

    Ce fichier de 20Mo est en fait comparable a une sonde. Il n'est la que pour l'estimation, une fois cette estimation de temps calculée, on n'utilise plus de fichier de 20 Mo.

    La création ne me pose pas de problème, ce qui me pose problème, c'est que le temps de création de ce fichier est une pure perte de temps.

    - Je créé un fichier de 20Mo (4s)
    - Je copier ce fichier de A vers B (Le temps de copie, c'est ce que je cherche à avoir)
    - Je supprime de fichier de 20 Mo

    Les étapes 1 et 3 ne servent à rien.
    2 Solutions s'offrent à moi :

    - Avoir la possibilité de copier seulement 20Mo de quelque chose d'existant, quelque soit la taille de ce quelque chose.
    - Créer un fichier de 20Mo de manière quasi instantanée.

    Cordialement,
    PKO

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Coy,
    Citation Envoyé par Altess Voir le message
    Bonjour.

    Ce fichier de 20Mo est en fait comparable a une sonde. Il n'est la que pour l'estimation, une fois cette estimation de temps calculée, on n'utilise plus de fichier de 20 Mo.

    La création ne me pose pas de problème, ce qui me pose problème, c'est que le temps de création de ce fichier est une pure perte de temps.

    - Je créé un fichier de 20Mo (4s)
    - Je copier ce fichier de A vers B (Le temps de copie, c'est ce que je cherche à avoir)
    - Je supprime de fichier de 20 Mo

    Les étapes 1 et 3 ne servent à rien.
    2 Solutions s'offrent à moi :

    - Avoir la possibilité de copier seulement 20Mo de quelque chose d'existant, quelque soit la taille de ce quelque chose.
    - Créer un fichier de 20Mo de manière quasi instantanée.

    Cordialement,
    PKO
    Pas la peine de chercher, rien ne peut être instantané.

    Généralement, on ne fait pas comme ça : on mesure constamment le temps mis pour copier jusqu'au point où on en est, et on en déduit le temps restant.

    C'est aussi simple et plus précis, car ça tient compte de ce que la machine peut faire au moment où on le fait.

    Ça pose un tout petit problème transitoire au début de la copie, car bien évidemment la mesure n'est pas précise dans les premières secondes, mais ça s'ajuste assez rapidement (tu as bien dû voir ça quand tu fais des copies dans l'explorateur de ton système).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Par défaut
    Bonjour.

    Oui, effectivement, rien n'est instantané, mais certaines choses peuvent le paraitre .

    Le fait est que je ne souhaite pas lancer la copie de toutes les données de ma partition A vers ma partition B, en sachant que la copie de 20 Mo (50/60Mo semble être suffisant pour une estimation plus ou moins correcte) atteint déjà un temps beaucoup trop élevé.

    Pour résumer ce qui a ete dit dans le post précédent :
    - J'estime le temps de copie de la totalité de mes données de la partition A vers B
    - Si il est supérieur a 3min, je ne copie pas
    - Sinon, je copie.

    Je reste conscient que l'estimation est très imprécise. Si on bidouille la machine pendant la copie, on va atteindre une estimation totalement erronée.

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Un petit conseil : d'où vient ton besoin initial de ne pas faire de copie si le temps peut dépasser 3'. Je te pose cette question car j'ai l'impression que tu pars sur une usine à gaz pour un problème qui peut peut-être s'aborder autrement.

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Citation Envoyé par Altess Voir le message
    A défaut, existe t'il une methode qui s'utilise de telle sorte qu'il soit possible d'indiquer : "Tu copie 20Mo, pas plus, même si ce fichier en fait 250" ?
    En C++, facile:
    • Tu ouvres un fichier binaire en écriture
    • Tu copies 20 mo
    • Tu fermes le fichier binaire


    Sinon, créer un fichier directement avec 20Mo, avec les fonctions Win32:
    • CreateFile()
    • SetFilePointer()
    • SetEndOfFile().
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Par défaut
    Médinoc > Bonjour. Décidément, tu as réponse à toutes mes interrogations .
    Je vais de ce pas tester ces 2 méthodes. En espérant qu'elle me permettent d'économiser ces quelques secondes.

    Cordialement,
    PKO

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exporter en fichier txt avec taille fix
    Par ryaxx dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/12/2014, 15h50
  2. creer fichier excel
    Par nicoweb371 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/12/2005, 11h04
  3. Créer fichier texte
    Par wareq dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 29/09/2005, 22h36
  4. [Fichier] Taille d'un fichier
    Par Pedro dans le forum Langage
    Réponses: 14
    Dernier message: 08/07/2004, 13h26

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