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 :

Executable pour transfert de fichier automatique


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut Executable pour transfert de fichier automatique
    Pour une meilleure compréhension du problème veuillez ouvrir les pièces jointes, afin de bénéficier des exemples en couleur et des schémas très utiles à la compréhension de la demande.


    Bonjour,

    Je souhaiterai créer un programme de transfert automatique de fichier d’une clé usb à un serveur avec pour contrainte principal le respect d’une arborescence bien précise dans le serveur.

    A noter que le nom du fichier a été créé pour qu’il détermine à lui tout seul la destination finale de la copie de ce fichier dans l’arborescence du serveur.

    Le programme devra donc dans un premier temps « scanner » le nom du fichier, selon des règles bien précises, il va déterminer point par point le chemin d’accès et le copier au bon endroit dans le serveur.


    Voici un fichier avec les caractéristiques particulières qui permettront de déterminer son emplacement final.

    Exemple : HYA_20080911_140000.tc (cf pièces jointes)

    HYA = nom
    2008 = année
    09 = mois
    tc = extension correspondant à un fichier de type temps comtinu (tc)

    Il y a deux extensions posibles : tc et bc qui correspondent à des dossiers de l’arborescence du serveur présenté ci-dessous.

    Voici l’arborescence du serveur. (cf pièces jointes)

    (cf : voir le pdf en pièce jointe pour un chéma en couleur)


    Comme vous pouvez le constater l’extension du fichier déterminera si l’on emprunte le chemin C:\SERVEUR1\billet\continu pour l’extension « *.bc » ou C:\SERVEUR1\temps\continu pour l’extension « *.tc »

    Ensuite il faudra « scanner » l’année, ici c’est 2008. Donc le chemin d’accès devient pour un fichier « *.bc » C:\SERVEUR1\billet\continu\2008.

    Le mois, ici 09, donc : C:\SERVEUR1\billet\continu\2008\9\

    Enfin le nom, ici HYA donc : C:\SERVEUR1\billet\continu\2008\9\Hyaguères

    Le fichier devra donc être copié à cet endroit.


    Mes connaissances : j’ai suivi des cours d’introduction au langage C.


    Mes idées pour le programme : Utiliser la fonction scanf pour lire le fichier et recopier dans un tableau les différents éléments du nom de fichiers dans le but de parcourir correctement l'arborescence du serveur selon l'élément trouver dans le talbeau.

    exemple : je créé le tableau suivant (la première ligne de ce tableau sert de repère, seule la deuxième ligne du tableau sera créer par le programme)

    1ère lettre extension --- 2ème lettre extension --- Année --- Mois --- Nom

    t c 2008 09 HYA

    Et le programme n'aura plus qu'a parcourir le tableau. Dès qu'il rencontrera l'indice 0 du tableau il devra se diriger dans l'arborescence du serveur jusqu'au dossier portant le nom "temps" pour t. Le tout avec la fonction if.

    if ( t[0] == "t" )
    go to C:\serveur\temps (par exemple)

    Le problème c'est que je n'ai aucune connaissance de la manipulation des dossiers en C, j'ai lu certain post, et il me semble que c'est assez compliqué ...


    Je voulais savoir si un programme en C était capable de résoudre mon problème, ou s’il fallait plutôt utiliser un logiciel.

    Merci d’avance pour votre aide.

    J'espère avoir été clair si vous avez des questions ou si vous voulez plus de détails j'y répondrai avec plaisir.

    Cordilament.

    Nicolas
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Tout d'abord, c'est pour quel système ? (Windows ? Linux ? etc.).

    Le problème c'est que je n'ai aucune connaissance de la manipulation des dossiers en C, j'ai lu certain post, et il me semble que c'est assez compliqué ...
    Sous Windows on a les fonctions CreateDirectory, RemoveDirectory, etc. Sous Linux et c'est mkdir, rmdir, etc.

    Je voulais savoir si un programme en C était capable de résoudre mon problème, ou s’il fallait plutôt utiliser un logiciel.
    Un logiciel écrit en C ... .

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Merci pour cette réponse rapide.

    Le système c'est windows. Les fonctions CreateDirectory, RemoveDirectory ne me serviront pas puisque l'intérêt est de parcourir une arborescence existante dans le serveur pour y copier le fichier au bon endroit.

    Y a t'il des fonctions qui permettent de parcourir une arborescence ?

    Un logiciel écrit en C serait donc la solution ?

    Je n'ai appris qu'à créer des petits exécutables pour afficher des tableaux etc... Donc pour la création de logiciel en C je suis novice ...

    Ou pourrais je me renseigner pour avoir des infos ?

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 402
    Points : 23 785
    Points
    23 785
    Par défaut
    Citation Envoyé par Hayden5127 Voir le message
    Merci pour cette réponse rapide.

    Le système c'est windows.
    Et c'est dommage car c'est typiquement le genre de problème qui serait résolu en quelques lignes de Shellscript sous Unix ou Linux. Si tu tiens absolument à rester sous Windows pour faire cela, tu peux le faire en C, certes, mais tu t'embêterais largement moins avec un peu de Perl.

    Vois déjà du côté des expressions régulières, qui te simplifieront largement la vie sur le long terme.

    Bon courage.

  5. #5
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Et c'est dommage car c'est typiquement le genre de problème qui serait résolu en quelques lignes de Shellscript sous Unix ou Linux.
    Et encore en moins de lignes en VBScript ou en batch . Mais bon, retour au C maintenant .

    Y a t'il des fonctions qui permettent de parcourir une arborescence ?
    Bien sûr : Comment lister le contenu d'un dossier ?
    Tu devras l'améliorer un peu pour parcourir aussi les sous répertoires. Un bon exercice de récursivité .

    Un logiciel écrit en C serait donc la solution ?
    Oui, un logiciel que tu écriras .

    Je n'ai appris qu'à créer des petits exécutables pour afficher des tableaux etc... Donc pour la création de logiciel en C je suis novice ...
    Bah, des petits exécutables c'est déjà des petits logiciels ! Que t'es novice, pas de problème. Tout s'apprend !

    Pour extraire les différentes infos contenues dans le nom des fichiers, sscanf, si tu sais bien l'utiliser, devrait suffir. Sinon, regarde aussi du côté de strtok.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Merci pour ces réponses !

    Je commence à bien "voir" la structure de mon programme.

    J'ai installé dev c++ sur mon ordi portable, et j'ai créé un projet. Je suis prêt à tenter pleins de petits programmes mais j'ai encore besoin de quelques précisions avant de vous soumettre des lignes de code...

    voici l'idée du programme :

    Les premières lignes du programmes utiliseront la fonction strtok pour extraire , si j'ai bien compris les explications, la chaine de caractère qui composent le nom du fichier.

    Une fois ces chaînes extraites, je copie dans un tableau les éléments dont j'ai besoin, je créé une boucle for qui me permettra grace à la fonction movefile et copyfile de déplacer automatiquement le fichier à copier dans le répertoire final grâce aux éléments du tableau !

    Le seul problème c'est que la clé usb contient elle aussi une arborescence qui doit être parcourue pour ensuite s"scanner" les noms de chaque fichier et le copier aux bon endroits ... Comment faire ? Sachant que l'arborescence de cette clé est connu et sera toujorus la même.

    Existe t'il une fonction qui permet de se diriger directement dans une arborescence précise pour copier les fichiers ?

    Exemple : l'arborescence de la clé usb est :

    Cle usb :\ temps \ continu \ "listing des fichiers"

    Mon idée serait de poser la question à l'utilsateur pour savoir s'il veut aller dans ce dossier ou un autre. et ensuite lancer la procédure de transfert automatique avec les idées ci dessus.

    Merci de vos réponse, je continue encore un peu la prise d'information et je vais bientôt me lancer dans la programmation même !

  7. #7
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par Hayden5127
    Existe t'il une fonction qui permet de se diriger directement dans une arborescence précise pour copier les fichiers ?
    Je croyais t'avoir déjà répondu :
    Citation Envoyé par Melem
    Bien sûr : Comment lister le contenu d'un dossier ?
    Tu devras l'améliorer un peu pour parcourir aussi les sous répertoires.
    Sinon, si tu dis que l'arborescence dans la clé est déjà connue d'avance, tu peux la parcourir avec des SetCurrentDirectory ...

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    A propos de la fonction strtok, elle fonctionne niquel.

    J’ai modifié les séparateurs en me limitant qu’au point et à l’underscore car ce seront mes uniques séparateurs à l’avenir.

    Je rentre donc la chaîne de caractère suivante (qui sera en faite le nom du fichier) : HYA_20081109.140000.tc
    Et j’obtiens bien : HYA 200809 140000 et tc

    Seulement j’ai de nombreuses questions pour bien comprendre le petit programme :
    Dans ce programme les chaînes découpées sont stockées dans un tableau p ?

    Quand je souhaite afficher les cases de ce tableau à l’aide d’une boucle for pour pouvoir effectuer des modifications plus tard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (i = 0; i<100; i++)
        printf("%s", p[i]);
    Le programme plante, avec le message « windows a rencontré une erreur et doit fermer le programme… etc »

    A quoi est ce du ?

    Est il possible de manipuler ces chaînes découpées ou non ?

    Si oui, ce serait intéressant car l’idée serait de déterminer l’arborescence à l’aide du tableau avec des conditions.

    Voici le détail du programme :

    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
    23
    24
    25
    26
    #include <stdio.h>
    #include <string.h>
     
    int main(int argc, char *argv[])
    {
        int i, chiffre;
        char lpBuffer[100], separators[] = " _.\n", *p;
     
        printf("Entrez une chaine de caracteres : ");
        fgets(lpBuffer, sizeof(lpBuffer), stdin);
     
        printf("\n");
     
        p = strtok(lpBuffer, separators);
        while(p != NULL)
        {
            printf("%s\n", p);
            p = strtok(NULL, separators);
        }
     
        for (i=0; i < 100; i++)
        printf("%s", p[i]);
        scanf("%d", chiffre);
     
        return 0;
    }
    NB : j'ai rajouté un scanf inutile, pour mettre le programme en pause pour vérifier si la fonction marchait bien

    Autre question qui n’a rien à voir, dans ce programme on nous demande d’entrer une chaine de caractère.
    Je souhaiterai à l’avenir modifier ces instructions et les remplacer par d’autres qui devront extraire le nom de tous les fichiers rencontrés dans le dossier, pour ensuite diviser les chaînes de caractères, obtenir donc un tableau et recopier les fichiers à leurs bons emplacements.

    Y a-t-il une fonction qui fait cela ? une fonction... coment dire .... d'extraction de nom de fichier.

    Merci d'avance.

  9. #9
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Le for qui vient après le while dans ton programme, c'est vraiment une horreur. As-tu conscience que p est un pointeur vers un caractère et que donc p[i] est un caractère ? Alors pourquoi %s dans printf ? Et puis peux tu m'expliquer ce que tu voulais que fasse cette boucle au fait ? C'est difficile à deviner. Si tu veux récupérer les différentes sous-chaînes retournées par strtok dans un tableau de chaînes de caractères pour les exploiter ultérieurement, déclare tout d'abord ce tableau et modifie le code comme il faut. Un tableau de chaînes de caractères c'est quelque chose qui a été déclaré comme suit :
    Là, mon_tab est un tableau de 10 "chaînes de caractères", chaque "chaîne" pouvant comporter 200 caractères tout au plus. Donc pour chaque sous-chaîne retournée par strtok, tu la copie dans mon_tab[<je ne sais pas>].

    Autre question qui n’a rien à voir, dans ce programme on nous demande d’entrer une chaine de caractère.
    Je souhaiterai à l’avenir modifier ces instructions et les remplacer par d’autres qui devront extraire le nom de tous les fichiers rencontrés dans le dossier, pour ensuite diviser les chaînes de caractères, obtenir donc un tableau et recopier les fichiers à leurs bons emplacements.

    Y a-t-il une fonction qui fait cela ? une fonction... coment dire .... d'extraction de nom de fichier.
    C'est à toi de le faire. T'as déjà tout ce qu'il faut pour y arriver. Mais il manque encore la volonté ...

    IMPORTANT : Commence à faire ton programme et poste ton code chaque fois que tu rencontre un problème.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Je pensais que le p était un tableau de chaînes de caractères où était stoquée les sous chaînes obtenu après strtok...

    Je vais bien relire toute la doc que vous m'avez donné, (liens etc)

    Et je posterai mon programme, en commençant par le parcours de l'arborescence de la clé usb pour trouver les fichiers à copier.

    Merci pour la réponse rapide, et la volonté n'est pas au plus bas loin de la.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Voici le début de mon programme : l'objectif est d'allé chercher le premier fichier d'une arborescence précise mais connue. Le programme suivant liste tous les fichiers contenus dans l'arobrescence et me retrouve effectivement le premeir fichier. Ce que j'aimerai c'est qu'il m'affiche le premier fichier à partir uniquement d'une arborescence donnée dans le programme, sans pour autant rentré le nom du premier fichier à chaque fois...

    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
    23
     
    #include <stdio.h>
    #include <windows.h>
     
    int main()
    {
        int i;
        HANDLE hEnt;
        WIN32_FIND_DATA ent;
     
        if ((hEnt = FindFirstFile("E:\\CLE USB\\donnees\\goniometrie\\courts\\*HYA_20081109.140000.tc*", &ent)) != INVALID_HANDLE_VALUE)
        {
            do
                printf("%s\n", ent.cFileName);
            while (FindNextFile(hEnt, &ent));
     
            FindClose(hEnt);
        }
     
        printf("jouissif quand ca marche, mais quelle galere !!!");
        scanf("%d",i);
        return 0;
    }
    J'ai fait des recherches pour comprendre tous les éléments du programme, et je vais continuer mes recherches sur le fameux "ent.cFileName" qui à mon avis à un rapport avec tout le listing ou le fichier qui sera listé...

    Ce que j'aimerai au final c'est que cette fonction me trouve le premier fichier de la longue liste. Pour ensuite en extraire les sous chaînes avec strtok, recréer un tableau qui lui déterminera l'arborescence finale avec une autre fonction qui fonctionnera comme tel : " Si le premier élément du tableau est un "tc" (référence à l'extension du fichier) et si le deuxième élément du tableau est un "HYA" (référence au nom) ETC..... jusqu'à prendre en compte tous les paramètres... lafonction devrai alors parcourir telle ou telle arobrescence.

    Ma question est : est il possible d'avoir un coup de pouce pour retrouver directement et lister le premier fichier ? M'expliquer si possible dans quelle variable est stoquée ce "1er fichier listé" (je soupconne le "ent.cFileName")
    et puis après ben je me débrouillerai tout seul pour ajouter la fonction strtok à la suite de ce programme pour créer mon fameux tableaux comme vous l'aviez dit dans le post précédent.

    (char mon_tab[10][200]

    merci d'avance

  12. #12
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Faillait mettre FindFirstFile("E:\\CLE USB\\donnees\\goniometrie\\courts\\*.*", ...) pour énumérer toutes les entrées du répertoire E:\CLE\...\courts. La variable ent représente une entrée d'un répertoire (c'est-à-dire soit un dossier soit un fichier, t'en connais d'autres ? ). Le champ cFileName donne le nom de cette entrée.

    Ce que j'aimerai au final c'est que cette fonction me trouve le premier fichier de la longue liste.
    Bin il faut que tu expliques tout d'abord ce que tu entends par "premier fichier de la liste". Le premier dans l'ordre alphabétique ? Le fichier qui porte la date la plus ancienne ? ...

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    En faite dans ces dossiers j'aurai un listing de fichiers trié par date. Donc il faudrait juste que j'obtienne le fichier comportant la date la plus ancienne ( ce sera le premier de la liste obligatoirement )

    Ensuite j'utiliserai le "champ" ent.cFileName pour stocker le nom de fichier dans une chaîne de caractère.

    Et j'utiliserai la fonction strtok pour obtenir mes sous chaînes, à partir de ce nom de fichier.

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Hayden5127 Voir le message
    Et j'utiliserai la fonction strtok pour obtenir mes sous chaînes, à partir de ce nom de fichier.
    Attention à la fonction strtok , qui modifie la chaîne entrée (met un caractère '\0' (fin de chaîne) à chaque séprateur rencontré), et rend donc la chaîne inutilisable pour la suite...

    Si c'est une chaîne dont on ne sert qu'une fois, pas de problèmes.

    Si elle est réutilisée plus tard (par exemple le nom du fichier), il faut la dupliquer avant d'appeler strtok (par exemple avec strdup ou strcpy)

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    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
    23
    24
    25
    26
    27
    28
    29
    30
     
    #include <stdio.h>
    #include <string.h>
     
    int main(int argc, char *argv[])
    {
        int i=0,j=0,chiffre;
        char recup [10][200]; // Déclaration d'un tableau mutlidimensionnel pour récuperer les sous chaines 
     
        char lpBuffer[100], separators[] = " _.\n", *p;
     
        printf("Entrez une chaine de caracteres : ");
        fgets(lpBuffer, sizeof(lpBuffer), stdin);
     
        printf("\n");
     
        p = strtok(lpBuffer, separators);
        while(p != NULL)
        {
            strcpy(recup[i][0],p); // tentative de recuperation en vain :( 
            printf("%s\n", p);
            i++;
            p = strtok(NULL, separators);
        }
     
        printf("%s",recup);
        scanf("%d",&chiffre); // Met le programme en pause pour vérifier
     
      return 0;
    }
    J'aimerai récupérer toutes les sous chaînes dans un tableau multidimensionnel appelé ici "recup" cependant je n'ai jamais manipulé de tels tableaux.

    Le compilateur me dit qu'il y un problème sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strcpy(recup[i][0],p);
    je vois bien que p est un pointeur vers une chaîne de caractère et que mon recup est constitué de plusieurs chaînes... Mais je n'ai aucune idée de comment corriger le programme...

    Si quelqu'un pourrait m'aider ce serait bien gentil de sa part.

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    recup[i] devrait suffire, c'est un tableau de char, donc une chaîne...

    recup[i][0] est un char, donc impossible de copier une chaîne dedans, et il viole le prototype de strcpy...

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    J'aimerai aussi savoir s'il est possible de trouver le premier fichier d'une liste par rapport à son ancienneté (le plus vieux en clair) avec la fonction FindFirstFile...

    Merci d'avance !

  18. #18
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Hayden5127 Voir le message
    avec la fonction FindFirstFile...
    Sans doute Windows, connaît pas...

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Merci souviron je vais essayer avec le recup[i] et donc copier toutes les sous chaînes à la suite...

  20. #20
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    D'ailleurs si tu lisais mieux les réponses données tu n'aurais pas eu ce problème de strcpy :
    Citation Envoyé par Melem Voir le message
    Un tableau de chaînes de caractères c'est quelque chose qui a été déclaré comme suit :
    Là, mon_tab est un tableau de 10 "chaînes de caractères", chaque "chaîne" pouvant comporter 200 caractères tout au plus. Donc pour chaque sous-chaîne retournée par strtok, tu la copie dans mon_tab[<je ne sais pas>].
    Pas dans mon_tab[<je ne sais pas>][0] ...

    Citation Envoyé par Hayden5127
    J'aimerai aussi savoir s'il est possible de trouver le premier fichier d'une liste par rapport à son ancienneté (le plus vieux en clair) avec la fonction FindFirstFile...
    Tu dois énumérer tous les fichiers du répertoire et déterminer toi-même le plus ancien d'entre-eux. Pour déterminer le plus ancien seulement, c'est encore simple car ça se fait en une seule petite boucle seulement. Si tu veux trier les fichiers selon leur ancienneté, le mieux est peut-être d'utiliser la fonction qsort.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Caractères générique pour transfert de fichiers avec PSFTP
    Par yellowdog dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 05/05/2011, 14h21
  2. API pour transfert de fichier via port série
    Par Vanatou dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 27/05/2010, 15h38
  3. [Labview 2009] Aide pour transfert de fichier (ftp)
    Par loicdu30 dans le forum LabVIEW
    Réponses: 4
    Dernier message: 05/12/2009, 11h10
  4. renseignement pour lancéer un fichier automatiquement tous les jours en bash
    Par sinifer dans le forum Applications et environnements graphiques
    Réponses: 20
    Dernier message: 09/06/2009, 12h31
  5. Amsn incompatible avec msn messenger pour transfert de fichier
    Par tonelli dans le forum Mandriva / Mageia
    Réponses: 4
    Dernier message: 09/11/2006, 17h55

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