Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un problème étrange ...

Impossible de concaténé mes chaine ! :-O

    25 février 2006 à 3:01:03

    Salut a tous !

    C'est déséspéré que je m'adresse à vous !

    Voila.. J'ai un code quise connecte à un FTP. Dans une boucle While, il lis la reception de la liste des dossiers et fichiers de ce type la :


    drwxr-xr-x 6 0 0 4096 Feb 24 22:05 .
    drwxr-xr-x 6 0 0 4096 Feb 24 22:05 ..
    drwxrwxrwx 2 0 0 4096 Feb 24 20:48 TeSte
    drwxrwxrwx 2 0 0 4096 Feb 24 22:04 TeSte 2
    drwxrwxrwx 2 0 0 4096 Feb 20 04:46 upload
    drwxr-xr-x 8 0 0 4096 Feb 15 05:56 virtual
    -rwxrwxr-x 1 0 0 166 Sep 05 17:17 welcome.msg


    Et donc j'ai une fonction qui analise les permissions ( drwxrwxrwx ), et je suis sur une fonction qui récupère le nom du dossier ou fichier :


    char nomDoss[1024+1]="";

    char extraitDossier ( char ligneList[] )
    {
           
            int nbCaras = 0;
           
            char sauvNomDoss[1024+1];
           
            // On vide sauvNomDoss
            bzero(sauvNomDoss,sizeof(sauvNomDoss))

                    if ( strlen(nomDoss) != 0 )
                    {

                            sprintf(sauvNomDoss, "%s", nomDoss);

                    }

            // On vide nomDoss
            bzero(nomDoss,sizeof(nomDoss))

            // 57 correspond au nombre de caractères avant le nom du dossier
            // -1 pour le caractère de fin
            nbCaras = ( strlen(ligneList) - 56 );
           
            // On créé une char de taille 1 ( / ) plus le du nom du dossier,
            // plus 1 ( / ) plus le caractère de fin de ligne
            char tmp[(((1+nbCaras)+1)+1)];
           
            // On vide tmp
            bzero(tmp,sizeof(tmp));
           
            // On récupre les derniers caractères
            right(ligneList, nbCaras);
           
            // On place un slash au début de tmp puis le retour de la fonction right
            sprintf( tmp, "/%s", bufferRIGHT);

            // On place les dossiers sauvegardé (sauvNomDoss) et à la suite le nouveau dossier(tmp) dans nomDoss
            sprintf(nomDoss , "%s %s", sauvNomDoss, tmp);

            // On affiche
            printf("%s\n", nomDoss);
           
    }


    Pour ce qui est de récupéré le nom des dossiers ou fichiers, c'est ok, mais pour ce qui est de les incrémenter dans la variable nomDoss des dossiers .. impossible ! :(

    Le code marche trés bien jusque au sprintf(nomDoss , "%s %s", sauvNomDoss, tmp);. C'est la que ca marche pas ! Il me sort ca :


    drwxr-xr-x 6 0 0 4096 Feb 24 22:05 .
    drwxr-xr-x 6 0 0 4096 Feb 24 22:05 ..
    drwxrwxrwx 2 0 0 4096 Feb 24 20:48 TeSte
    /TeSte
    nomDossTaG =
    drwxrwxrwx 2 0 0 4096 Feb 24 22:04 TeSte 2
    /TeSte 2
    nomDossTaG =
    drwxrwxrwx 2 0 0 4096 Feb 20 04:46 upload
    /upload
    nomDossTaG =
    drwxr-xr-x 8 0 0 4096 Feb 15 05:56 virtual
    -rwxrwxr-x 1 0 0 166 Sep 05 17:17 welcome.msg


    Et à la fin ma variable ne contient pas mes dossiers


    Donc si vous pouviez m'aider :D Merci !!! ^^
    • Partager sur Facebook
    • Partager sur Twitter

    Un problème étrange ...

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown