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 :

Test Fichier Vide


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 31
    Par défaut Test Fichier Vide
    Bonjour tout le monde

    Voilà ça deux jour que je cherche une façon simple 1 à 2 ligne maximum
    pour tester si un fichier, est vide ( pas NULL, existe mais ne contient aucun caractère ) ou non.

    j'ai reussi à le faire mais il me coute en lignes, et il est spécifique à mon problème
    j'aimerai beaucoup faire mieux, et surtout qu'il soit faisable avec
    n'importe qu'elle type de fichier. si un test simple existe,
    je serai heureux de le connaître.
    Merci.

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Le plus simple faisable est à mon avis :
    1. Ouvrir le fichier (fopen)
    2. Se déplacer à la fin d-dit fichier (fseek)
    3. Regarder la position du curseur (ftell)
    4. fermer le fichier (fclose)


    Après, les différents systèmes qui existent peuvent avoir des fonctions toutes faites qui font ce que tu demandes, mais on sort du standard. Ex : GetFileSize de Win32.

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 495
    Par défaut
    Citation Envoyé par mabu Voir le message
    Après, les différents systèmes qui existent peuvent avoir des fonctions toutes faites qui font ce que tu demandes, mais on sort du standard. Ex : GetFileSize de Win32.
    Et stat() (et dérivés) sous UNIX et systèmes conformes POSIX-2001. À elles deux, ces fonctions devraient déjà couvrir la majorité des cas.

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    +1 pour stat()
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    Tu peux aussi ouvrir ton fichier, tenter de lire et vérifier si cela échoue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    /*
     * IN  : Nom du fichier
     * OUT : 1 - Fichier Vide
     *       0 - Fichier Non Vide ou Erreur 
     */
    int fempty(char const *fname) 
    {
    	FILE *fdesc = fopen(fname,"r");
    	int ret = 0;
     
    	if( fdesc )
    	{
    		(void)fgetc(fdesc);
    		if( feof(fdesc) )
    		{
    			ret = 1;
    		}
    		fclose(fdesc);
    	}
    	return ret;
    }
    Ce n'est pas en deux lignes mais c'est simple

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 495
    Par défaut
    Citation Envoyé par ssmario2 Voir le message
    Tu peux aussi ouvrir ton fichier, tenter de lire et vérifier si cela échoue
    À ce compte-là, je préfère encore la méthode de mabu ... :-)

    Ce n'est pas en deux lignes mais c'est simple
    Mais s'il lui prend l'envie d'ouvrir un fichier non régulier (le port série, par exemple), le programme n'échouera pas mais attendra indéfiniment.

Discussions similaires

  1. test fichier vide
    Par vince2005 dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 06/05/2016, 15h17
  2. [VBA]Test cellule vide base access
    Par ALAMARQU dans le forum VBA Access
    Réponses: 4
    Dernier message: 17/03/2006, 16h14
  3. fichier vide ou non
    Par mrtatou dans le forum C
    Réponses: 6
    Dernier message: 07/02/2006, 04h04
  4. [XSL -PHP] Test si vide... et première valeur inférieure
    Par mamat- dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 06/08/2005, 18h57
  5. Mysqldump donnant un fichier vide
    Par simoryl dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 15/02/2005, 16h42

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