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

Langage Delphi Discussion :

Questions sur la navigation dans les répertoires


Sujet :

Langage Delphi

  1. #41
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 11
    Points
    11
    Par défaut
    Ca fonctionne!

    Mais alors pourquoi cela fonctionne comme ceci? C'est quoi la difference entre déclarer une varable pour l'ensemble du code, ou pour chaque procedure?

    Bon, le point positif dans tout ça, c'est que j'étais un peu sur la voie avant de venir poster ce soucis.
    Seulement, je comprends pas pour les variables là...

  2. #42
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Lorsque tu déclares une variable dans une procédure, tu définis une variable locale, c'est à dire qu'elle n'est visible que depuis cette procédure.
    Sa durée de vie est également liée au temps d'exécution de la procédure.

    En déclarant la variable juste avant le mot clé implémentation, tu rends la variable publique (ou globale ? j'ai un doute sur le terme) et donc visible depuis toute l'unité.

    @+

  3. #43
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 11
    Points
    11
    Par défaut
    Ha oki..

    Donc, quand on veut déclarer une varaible, pour un seule procedure, ou le mets juste apres, et vice-versa!

    Cool!

  4. #44
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par belle5656 Voir le message
    Merci d'intervenir a ton tour..J'suis un rien gaté là avec vous
    Là j'ai pas fait grand chose
    A part te demander de cliquer sur si ton problème l'est
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  5. #45
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut

    Citation Envoyé par Cl@udius Voir le message
    En déclarant la variable juste avant le mot clé implémentation, tu rends la variable publique (ou globale ? j'ai un doute sur le terme) et donc visible depuis toute l'unité.
    Lorqu'une variable est déclarée autre qu'en locale, on parle de variable globale ... Donc, comme l'a dit Cl@udius, une variable locale n'est valable que dans la procédure ou fonction qui l'appelle alors qu'une variable globale est accessible depuis n'importe quelle procédure ou fonction.

    Donc lorsque tu veux utiliser une variable que dans par exemple Button1.Click, il est plus normal de la déclarer en locale qu'en globale puisque ta variable ne sera pas utilisée autre part que dans cette procédure

    J'espère que mon complément d'informations t'aidera à mieux comprendre
    A+

  6. #46
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 11
    Points
    11
    Par défaut

    Salut salut à tous!

    ero-sennin


    Je veux bien noter ce sujet, comme résolu, mais j'ai encore des questions alors..
    Je fais quoi j'en ouvre un autre? Vu que celui-là est bien aprti..et puis, on est pas bien dans ce sujet entre nous?

  7. #47
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut belle5656,

    Ouvrir un autre topic, pourquoi! Tout dépend si le problème traite encore du sujet principal de ce topic ou non.

    Si ce n'est pas le cas, il vaudrait mieux créer un nouveau topic afin de cerner un seul problème particulier par topic créé.

    En général, c'est un topic par problème ciblé ...

  8. #48
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 11
    Points
    11
    Par défaut
    Bonjour à tous!

    Je fais remonter ce sujet, car j'ai un petit soucis avec le temps de recherche..
    J'ai essayer de supprimer certains éléments du code, mais cela prends pas mal de temps, 5 minutes a peu près, pour une trentaine de fichier + une trentaine de dossier.. c'est bien sur très long.

    Pour plus de précision, quand apr exemple, je cherche le Dossier A, il est accompagné, le plus souvent, apr le Fichier B.
    J'ai donc essayer de faire ce qui suit (je grossis le code pour une idée de la chose que j'ai faite)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If FileExists(Dossier B) then
     begin
    DeleteFile(Fichier A)
    //Ecriture
    end
    else
    If FileExists(Dossier C) then begin
    DeleteFile(Fichier D)
    //Ecriture
    end (......)



    Ceci fonctionne pas, pas de soucis. Mais c'est toujours, trop long au niveau de la recherche.

    Y a t'il une autre solution pour accélérer les recherches?

    Merci a tous ceux qui me liront et..Répondront..

  9. #49
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut belle5656,

    Tout d'abord, pour tester l'existence d'un dossier, il faut utiliser DirectoryExists() (Pour plus d'info, F1 ).

    Pour ce qui est de ton code, si tu veux gagner en temps, ca se base sur des critères tel que l'endroit où le fichier risque de se trouver.

    Par exemple, si tu es sur que le fichier sera dans le Dossier A et seulement dans celui ci, il te suffit te tester la présence du fichier directement dans ce dossier en prenant soin avant, de tester que ce dernier existe. Et encore, on n'est pas obligé de tester l'existence du dossier avant car si DeleteFile renvoie false, c'est que le fichier n'existe pas ...

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if DirectoryExists('C:\Temp') then
      DeleteFile('C:\Temp\toto.txt');
    Ceci suppose t-il que tu ne scannera plus le disque dur en son intégralité mais juste en sélectionnant des dossiers particuliers ?

  10. #50
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 11
    Points
    11
    Par défaut
    salut Ero-sennin,

    Désolé pour l"erreur de copiage du code, j'utilise bien DirectoryExists

    Si tu veux:

    Si, par exemple, le Fichier A est présent, le Dossier B peut être ailleurs, et vice-versa.
    Donc, il faudra quand même que je scrute tout le disque dur pour cela.

  11. #51
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Ok

    Donc, si je te suis, tu sais déjà les dossiers qui contiendra les fameux fichiers à supprimer...

    Si c'est le cas, il faudrait modifier le code de Cl@udius pour que l'on ne scanne que les dossiers et non les fichiers...
    Une fois le dossier localisé, on fait un DeleteFile(MonFichier) et selon ce que la fonction renvoie, on sera en mesure de dire si le fichier étant présent ou non.

    Faudrait que je trouve un peu de temps pour regarder, or, je ne suis pas sur qu'aujourd'hui je pourrai jetter un oeil!

    Si j'y parviens, je posterai le code

  12. #52
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    J'ai vite fait regardé pour le test, mais je ne sais pas si ca fonctionne correctement ... (logiquement oui).

    C'est une reprise de code de Cl@udius modifié de façon à ce que l'on ne scrute que les dossiers qui sont sensé contenir le fichier à supprimer.

    Je met le code ci dessus en ne garantissant pas que celà soit plus performant et fonctionnel à 100%. Je laisserai quelqu'un (Cl@udius par exemple) valider la chose.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
      const
      // Fichiers à rechercher
      Files: array[0..2] of string = ('tata.txt', 'toto.pas', 'titi.zps');
     
    implementation
     
    uses StrUtils;
     
    {$R *.dfm}
     
    procedure ScruterDossiers(Folder: string);
     
      // Chercher si les fichers (Tableau Files) existe dans le dossier
      procedure SearchInFolder;
      var
        I: Integer;
      begin
        for I := Low(Files) to High(Files) do
          if FileExists(Folder + Files[i]) then
            Form1.Memo1.Lines.Add(Folder + Files[i] + ': trouvé !');
      end;
     
    var
      S: TSearchRec;
      MesDossiers:array[0..2] of string;
    begin
      MesDossiers[0]:='temp';
      MesDossiers[1]:='dossierA';
      MesDossiers[2]:='DossierC';
      Folder := IncludeTrailingPathDelimiter(Folder);
     
      // Rechercher dans le dossier
     
     
      // Isoler et traiter les sous-dossiers
      if FindFirst(Folder + '*.*', faDirectory, S) = 0 then
      begin
        repeat
          // Ignorer les . et ..
          if (S.Name <> '.') and (s.Name <> '..') then
          begin
            if ((S.Attr and faDirectory) = faDirectory)  then
              // Test si on est dans un dossier que l'on veut scruté
              if AnsiMatchText(S.Name,['toto','temp']) then
              begin
                Folder:=IncludeTrailingPathDelimiter(Folder+S.FindData.cFileName);
                SearchInFolder;
              end;
              // Si sous-dossier: appel récursif
              ScruterDossiers(Folder + S.FindData.cFileName);
          end;
        // Recherche fichier du suivant
        until FindNext(S) <> 0;
        FindClose(S);
      end;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ScruterDossiers('C:\');
    end;
    En espérant que ça soit bon
    A+

  13. #53
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 11
    Points
    11
    Par défaut
    Re,

    C'est vrai que là, je tourne en rond, car j'ai essayé une autre méthose, et cela reveint au même.

    C'est à dire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    If FileExists('fichierA') then 
    Begin
    Writeln(F, Folder + 'Fichier A' + ': trouvé !');
    Form1.Memo1.Lines.Add(Folder + 'Fichier A' + ': trouvé !')
    end
    else 
    begin
    If FileExists('fichierB') then 
    Begin
    Writeln(F, Folder + 'Fichier B' + ': trouvé !');
    Form1.Memo1.Lines.Add(Folder + 'Fichier B' + ': trouvé !')
    end
    (....)
    Mais dans mon cas, on se retrouve avec la même procédure qu'avec les noms prédefinis dans le tableau de début de code.

  14. #54
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 11
    Points
    11
    Par défaut
    Re à tous,

    Bon, j'y suis arrivé, en enlevant les suppressions de Dossiers + fichiers.

    Alors forcement c'est plus rapide comme ceci.

    Ero-Sennin, je garde ta procédure sous le coude, pour la tester, Merci à toi.

    Maintenant, il va falloir que je fasse un bouton, pour qu'il supprime ce que le programme aura trouvé précédemment..

    J'ai donc rajouter, ce bouton et ceci ressemble à:

    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
    31
    32
    procedure TForm1.Button5Click(Sender: TObject);
    var
    I: Integer;
    E: Integer;
    folder : String;
    begin
    Deletefiles(Folder + files[i]);
    If Deletefiles(Folder + Files[i]) then
    begin
    Form1.Memo1.Lines.Add(Folder + Files[i] + ': supprimé!');
           WriteLn(F, Folder + Files[i] + ': supprimé!')
           end
    else 
    begin
    Form1.Memo1.Lines.Add(Folder + Files[i] + ': non supprimé!');
           WriteLn(F, Folder + Files[i] + ': non supprimé!')
    end;
     
    begin 
    EffaceDossier(Folder + Folders[e] );
    if EffaceDossier(Folder + Folders[e]) then
    begin
    Form1.Memo1.Lines.Add(Folder + Folders[e] + ': supprimé!');
           WriteLn(F, Folder + Folders[e] + ': supprimé!')
           end
    else
    begin
    Form1.Memo1.Lines.Add(Folder + Folders[e] + ': non supprimé!');
           WriteLn(F, Folder + Folders[e] + ': non  supprimé!')
           end;
     
    (...)
    Mais cela bloque il n'efface rien du tout.
    J'ai du faire une mauvaise manip, mais laquelle...
    Pour nfo, quand je fais ce code ci-dessus, j'ai toujours Violation d'erreur a l'accés...

  15. #55
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 11
    Points
    11
    Par défaut
    Re,

    J'ai tenté ceci pour la suppression, en me basant sur les méthodes se recherche:

    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
    31
    32
    33
    34
    35
    36
    procedure Suppression(Folder: string);
    var
    I: Integer;
    E: Integer;
    begin
    Deletefile(Folder + files[i]);
    If Deletefile(Folder + Files[i]) then
    begin
    Form1.Memo1.Lines.Add(Folder + Files[i] + ': supprimé!');
           WriteLn(F, Folder + Files[i] + ': supprimé!')
           end
    else
    begin
    Form1.Memo1.Lines.Add(Folder + Files[i] + ': non supprimé!');
           WriteLn(F, Folder + Files[i] + ': non supprimé!')
    end;
     
    EffaceDossier(Folder + Folders[e] );
    if EffaceDossier(Folder + Folders[e]) then
    begin
    Form1.Memo1.Lines.Add(Folder + Folders[e] + ': supprimé!');
           WriteLn(F, Folder + Folders[e] + ': supprimé!')
           end
    else
    begin
    Form1.Memo1.Lines.Add(Folder + Folders[e] + ': non supprimé!');
           WriteLn(F, Folder + Folders[e] + ': non  supprimé!')
           end;
    end;
     
     
     
    procedure TForm1.Button5Click(Sender: TObject);
    begin
    Suppression(GetEnvironmentVariable('HOMEDRIVE'));
    end;

    Mais c'est toujours le même soucis...

  16. #56
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      Deletefile(Folder + files[i]);
      If Deletefile(Folder + Files[i]) then
      begin
        Form1.Memo1.Lines.Add(Folder + Files[i] + ': supprimé!');
        WriteLn(F, Folder + Files[i] + ': supprimé!')
      end
      else
        // ...
    Pourquoi un double DeleteFile ????

    @+

  17. #57
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 11
    Points
    11
    Par défaut
    Salut Cl@udius,

    Heu..Oui, c'est pas nécessaire, c'est vrai..

    Je l'ai enlevé, mais cela ne fonctionne pas...

  18. #58
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    C'est valable pour EffaceDossier aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    EffaceDossier(Folder + Folders[e] ); //<-A enlever
    if EffaceDossier(Folder + Folders[e]) then
    begin
    Form1.Memo1.Lines.Add(Folder + Folders[e] + ': supprimé!');
           WriteLn(F, Folder + Folders[e] + ': supprimé!')
           end
    else
    ...
    Si tu laisses en l'état, le if ne sera jamais vérifié puisque tu supprimes le répertoire juste avant!
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  19. #59
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Points : 11
    Points
    11
    Par défaut
    Salut Pedro,

    Oui, je l'avais aussi enlever suite au post de Cl@udius, mais j'ai toujours les mêmes erreurs de violation d'acces a l'adresse..

    Pourtant, c'est la mê procédure que pour la recherche alors je comprends rien..

  20. #60
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Rebonsoir belle5656,

    Peux tu poster le code pour la suppression dans son intégralité ? Ca sera mieux pour nous pour te guider

    Merci

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

Discussions similaires

  1. Question sur la recherche dans les chaînes de caractères
    Par Garamante dans le forum VBScript
    Réponses: 5
    Dernier message: 15/12/2008, 17h33
  2. question idiote sur terme utilisé dans les offres
    Par coyott dans le forum Emploi
    Réponses: 4
    Dernier message: 24/08/2005, 17h16
  3. Association navigables dans les deux sens
    Par DarkNagash dans le forum Diagrammes de Classes
    Réponses: 4
    Dernier message: 13/07/2005, 15h11
  4. Navigation dans les objets
    Par hunter dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/05/2005, 11h31
  5. Informations sur un exe (dans les propriétés windows)
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 06/07/2004, 18h20

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