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

MATLAB Discussion :

Deduire la taille maximale d'un fichier texte


Sujet :

MATLAB

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut Deduire la taille maximale d'un fichier texte
    Bonjour, j'ai un ensemble de fichiers textes que je les sauvegarde après le traitement dans un nouveau dossier. Je veux déduire parmi ces fichiers, la taille du fichier maximale [nligmax, ncolmax]. Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [nligmax, ncolmax]=max(size(fich1), size(fich2)...etc)

  2. #2
    Membre confirmé
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Points : 639
    Points
    639
    Par défaut
    Bonjour

    Pour retrouver la taille des fichiers contenu dans un dossier, tu peux utiliser dir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    listing = dir(name)
    listing(i).bytes % te rend la taille du i-ème fichier

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    d = dir(fullfile(PathName));
    d = d([d.isdir] & ~ismember({d.name},{'.','..'}));
    for i=1:numel(d)
    d(i).bytes 
    end
    .bytes affiche le poids du fichier et non pas sa taille [nli, ncol]. Je vais éclairer un peu les choses: j'ai un dossier contenant soit disant 3 fichier textes: 01.txt (200x180), 02.txt (209x190), 03.txt (204x178). Comment à partir de ces 3 fichiers, je déduis que la taille maximal est 209x190?

  4. #4
    Membre confirmé
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Points : 639
    Points
    639
    Par défaut
    Excuse moi, j'ai lu trop vite. Dans le cas où tu veux lire un fichier texte, j'utiliserais importdata et ensuite je comparerais la taille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    max_size=[0 0]
    list_files=dir(folder);
    delimiterIn = ' ';
    headerlinesIn = 1; % si jamais tu as un header
    for i=1:length(list_files)
         A = importdata(list_files(i).name,delimiterIn,headerlinesIn);
         disp(size(A.data)) % rend nombre de colonnes et de lignes
         if max_size < ....
             ....
             ....
         end
    end

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut
    Bonsoir, merci pour la réponse mais j'ai un petit souci avec le max :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    PathName = uigetdir;
    d = dir(fullfile(PathName,'*.txt'));
    max_size=[0 0];
    
    for i = 1:numel(d)
        
        A(i) = importdata(fullfile(PathName, d(i).name),'\t');
        disp(size(A(i).data)) 
        if max_size < ....
             ....
             ....
        end
        
    end
    J'ai pas compris la ligne qui calcule le max, j'ai eu ce message d'erreur:Error: Illegal use of reserved keyword "end".

    Peut on faire ça pour déduire le max:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for i = 1:numel(d)
     
        A(i) = importdata(fullfile(PathName, d(i).name),'\t');
     
        if max_size <= size(A(i).data)
             max_size = size(A(i).data);
        else
             disp(max_size)
        end
     
    end
    ou tout court:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for i = 1:numel(d)
     
        A(i) = importdata(fullfile(PathName, d(i).name),'\t');
        maxsize1 = max(size(A(i).data),maxsize);
        maxsize = size(A(i).data);
     
    end
    disp(maxsize1)

  6. #6
    Membre confirmé
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Points : 639
    Points
    639
    Par défaut
    J'ai pas compris la ligne qui calcule le max, j'ai eu ce message d'erreur
    C'est normal que ça ne fonctionne pas ! C'était 4 points pour te dire que c'est à toi de compléter cette partie qui me semblait plus simple à écrire.

    Je ne voulais pas écrire cette partie parce qu'on ne sait pas si le nombre de lignes est proportionnel au nombre de colonne dans ton cas. Si jamais un fichier possède plus de lignes qu'un autre mais moins de colonnes, quel fichier on choisi ?

    Je vois que tu as ajouté un indice pour stocker tout les données que tu importe (et tu ne les écrase plus comme dans mon exemple). Si tu fais des tableaux de A, ce n'est pas nécessaire de vérifier ta condition de max à chaque itération. Une limitation peut survenir dans la mesure où tu as beaucoup de fichiers volumineux, A risque de devenir très lourd et ton code risque de ralentir.

    Petit commentaire pour lever une possible ambiguïté. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    maxsize1 = max(size(A(i).data),maxsize);
    maxsize = size(A(i).data);
    Avec ça, dans le cas où le nombre de colonnes et le nombre de lignes ne sont pas proportionnelles, alors tu récupérera possiblement le max de colonne d'un fichier, et le max de ligne d'un autre fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >> a=[2 6];
    >> b=[3 2];
    >> max(a,b)
    ans =
         3     6
    (+ il te manque une condition if)

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut
    Bonjour, en fait pour votre remarque les lignes sont proportionnel avec les colonnes, à mon avis ce bout de mon code suffit pour afficher le taille max du fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i = 1:numel(d)
        A(i) = importdata(fullfile(PathName, d(i).name),'\t');
        maxsize = max(size(A(i).data),maxsize); % inisialisation maxsize=[0 0]
    end
    disp(maxsize)

Discussions similaires

  1. Taille maximale d'un fichier à importer
    Par leslie17 dans le forum R
    Réponses: 1
    Dernier message: 24/04/2009, 10h12
  2. Réponses: 6
    Dernier message: 23/03/2007, 12h26
  3. Réponses: 2
    Dernier message: 22/12/2006, 11h25
  4. [CKEditor] taille maximale des fichiers uploadés
    Par Invité dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 03/12/2006, 11h38
  5. quelle est la taille maximale en nbre de caract d'un chp text
    Par harlock59 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 08/07/2006, 18h43

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