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

 Delphi Discussion :

Question d'un gros paresseux


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Praticien hospitalier responsable DIM, retraité depuis 9/2019
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Praticien hospitalier responsable DIM, retraité depuis 9/2019
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Question d'un gros paresseux
    Bonjour,

    Je sais que ça ne se fait pas de demander aux autres de rédiger un code pour soi-même, mais je pose la question quand même, au cas où quelqu'un aurait quelque chose de proche..
    Je n'ai plus écrit en Pascal pratiquement depuis Turbo-Pascal, et mon dernier programme remonte à 96 avec Borland C++, si vous aviez pitié..
    Dans le passé j'avais bricolé un "MDEL" qui détruisait ce qui suivait sur la ligne de commande, dans le répertoire et tous les sous-répertoires; mais à cette époque, le nom d'un fichier faisait 8 caractères au maximum, sans espace ni accent, etc.. et le suffixe faisait 3 lettres au plus, donc un fichier avait un nom de 12 caractères maximum, et les répertoires je crois pouvaient aller jusqu'à 64 caractères (avec les mêmes restrictions sur les caractères interdits et insensibles à la casse)
    Je crois que Turbo-Pascal m'amenait à parcourir les répertoires avec des appels aux fonctions de MSDOS..

    Bref, mon problème est que j'ai quelque chose comme 8000 photos, qui sont soit en JPEG (suffixe JPG chez moi), soit en RAW (suffixe CR2 chez moi). Je voudrais, quand la même photo existe avec les 2 suffixes, détruire celle qui est en JPG (mais évidemment conserver le JPG si cette photo n'existe pas dans l'autre format). Les mélanges sont fréquents, comme je prenais souvent mes photos en enregistrant les 2 formats à la fois.

    Quelqu'un aurait-il l'ossature d'un tel programme ? A 66 ans et avec ce qu'est devenue ma souplesse d'esprit, je vais mettre des mois et des mois pour trouver les structures des fichiers ou des répertoires, trier les fichiers par ordre alphabétique de leurs noms, faute de taille prédéfinie devoir mettre leurs noms dans une liste chaînée pour ne pas créer un array inutilement grand qui pourrait être trop petit quand même; je ne sais pas si il est licite de détruire un fichier quand on parcourt un répertoire, ou si on ne peut le faire que tout à la fin, etc..

    Donc avec mes excuses de poser une question d'allure grossière (et de nature grossière aussi), si quelqu'un d'entre vous pouvait m'aider le plus possible.. J'ai RAD 10, mais je ne m'en servi que pour une seule application, un QCM dont les intitulés se trouvaient dans un fichier Excel, que je lisais avec un excellent add on TMS (Flexel). Je n'ai rien fait d'autre avec, quoique si je l'ai acheté vous imaginez bien que je voulais m'en servir pour tenter de retrouver ma jeunesse du début des années 80..

    En vous remerciant de votre attention, et de votre aide si vous le voulez bien, cordialement,

    Milos

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 670
    Points : 10 677
    Points
    10 677
    Par défaut
    Précise sur quel système d'exploitation tu travailles ? Parce qu'il a de grosses différences entre Linux, Mac et Windows.

    Et as-tu conscience que 2 fichiers ayant le même nom (mais pas la même extension) n'ont peut-être pas le même contenu ? En gros, est-tu sûr que manipuler les noms des fichiers suffit et qu'au contraire, il ne faudrait pas envisager des comparaisons entre 2 images ?

    Sinon, en langage C, tu peut utiliser l'entête dirent.h avec la structure struct dirent et les fonctions opendir, readdir, closedir ... qui ne semble pas standard mais multiplateforme.

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 175
    Points : 41 367
    Points
    41 367
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    66 ans ce n'est guère plus que moi ma retraite sera beaucoup plus proche à cet âge là (jalmoux)

    Depuis TurboPascal et/les premiers Borland c++ beaucoup d'eau a coulé sous les ponts et plein de fonctions sont venus nous aider (dans System.IOUtils pour ce qui est de la gestion des répertoires)

    RAD 10
    Hum il y a quand même des différences entre les versions et les "updates" 10 Seattle, 10.1 Berlin, 10.2 Tokyo,10.3 Rio et comme il y a eu améliorations entre chaque la précision peut s'imposer
    la version actuelle 10.3.3 Rio

    Je voudrais, quand la même photo existe avec les 2 suffixes, détruire celle qui est en JPG
    Si elles sont dans le même répertoire ou bien même si elles sont dans des répertoires différents ?

    Quelqu'un aurait-il l'ossature d'un tel programme ?
    À l'époque le programme "MDEL" devait être un programme console, l'objectif est-il de faire un nouveau programme console ou un interface graphique qui, tant qu'à faire, demanderait confirmation des destructions détectées ?

    J'avoue que je suis plus à l'aise avec le dernier (malgré mon age )

    Pour aller au squelettique, tout d'abord je poserai un TEdit pour saisir le nom du répertoire, un TButton et deux ListBox (* pour une vision plus structurée deux TreeView seraient pas mal non plus )

    Nom : Capture.PNG
Affichages : 373
Taille : 7,5 Ko
    note : je suis allé un tout petit peu plus loin en ajoutant une (mauvaise) sélection de répertoire donc un Tbouton supplémentaire et un TOpenDialo

    Pour obtenir les noms des fichiers il serait possible d'utiliser la FAQ mais, comme j'ai noté le paresseux (ce que j'encourage), obtenir la liste des fichiers d'un répertoire s'obtient en utilisant TDirectory.GetFiles, celles des sous répertoires par TDirectory.GetDirectories

    donc pour obtenir la liste (dans un tableau) des fichiers JPG d'un répertoire donné :

    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
    uses system.types, System.IOUtils;
     
    procedure TForm80.btnDialogClick(Sender: TObject);
    begin
    if Opendialog1.Execute then
      Edit1.Text:=TPath.GetDirectoryName(Opendialog1.FileName);
    end;
     
    procedure TForm80.btnOuvrirClick(Sender: TObject);
    var fichiers : TStringDynArray;
        fichier : String;
    begin
    fichiers:=TDirectory.GetFiles(Edit1.Text,'*.jpg');
    for fichier in fichiers do
      ListBox1.Items.Add(fichier);
     
    end;
    Voilà un premier squelette, à la prochaine pour de plus amples améliorations
    (ajout de la "navigation" dans les sous répertoires, utilisation de AddItem plutôt que Items.Add etc...)

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Praticien hospitalier responsable DIM, retraité depuis 9/2019
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Praticien hospitalier responsable DIM, retraité depuis 9/2019
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par foetus Voir le message
    Précise sur quel système d'exploitation tu travailles ? Parce qu'il a de grosses différences entre Linux, Mac et Windows.

    Et as-tu conscience que 2 fichiers ayant le même nom (mais pas la même extension) n'ont peut-être pas le même contenu ? En gros, est-tu sûr que manipuler les noms des fichiers suffit et qu'au contraire, il ne faudrait pas envisager des comparaisons entre 2 images ?

    Sinon, en langage C, tu peut utiliser l'entête dirent.h avec la structure struct dirent et les fonctions opendir, readdir, closedir ... qui ne semble pas standard mais multiplateforme.
    Merci pour ta réponse, et désolé, je vois que non seulement je suis paresseux mais qu'en plus j'oublie des choses importantes..

    J'utilise Windows 8.1; j'ai aussi une machine sous Windows 7.

    Des appareils comme des Canon, quand tu choisis de sauver à la fois en JPG et en RAW, attribuent le même nom-numéro au fichier. Je n'en suis pas sûr, mais il me semble que même en formatant la carte mémoire le numéro reste le même mais incrémenté à chaque photo.

    Ci-joint une copie d'écran montrant un de ces mélanges. Il existe sur cet exemple aussi un fichier *.xmp, qui a été créé en fait par Adobe photoshop première pour consitituer sin catalogue. Au passage je les détruirais bien dans tous les cas de figure puisqu'il faudra de toute façon reconstituer le catalogue (c'est fou la place que ces fichiers prennent : chacun fait quelques octets, mais évidemment le bloc alloué sur le disque a sa taille minimale, et là j'en ai pour quasiment 1 Téraoctet rien q'avec ça).

    Merci beaucoup pour tes indications, amicalement,

    MilosNom : Copie écran.jpg
Affichages : 529
Taille : 343,0 KoNom : Copie écran.jpg
Affichages : 529
Taille : 343,0 Ko

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Praticien hospitalier responsable DIM, retraité depuis 9/2019
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Praticien hospitalier responsable DIM, retraité depuis 9/2019
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    @SergioMaster Bonjour et merci beaucoup pour ta réponse,

    Malheureusement, je ne suis en retraite que depuis le 21 septembre, c'est à dire 66 ans et 2 mois. Dans la profession, on est "contractuel à titre permanent", c'est à dire que tout se passe comme si on était fonctionnaire quand ça arrange la fonction publique hospitalière, mais on ne l'est pas quand ça ne les arrange pas (pour le calcul du montant de la retraite, par exemple )

    Ma version est la 10.2 Tokyo. Tu as raison sur tous les plans, le programme écrit en Turbo Pascal l'était en mode console (mdel *.tmp par exemple), mais aussi j'aimerais bien puisque j'en ai la possibilité écrire cet autre programme avec une fenêtre.

    Les fichiers photo sont dans le même répertoire, ça résulte du fonctionnement de l'utilitaire d'importation, il importe les photos dans un sous répertoire nommé d'après la date de prise de vue : par exemple j'ai été me ballader à Alès le 7 matin, et le 8 en soirée pour le marché de Noël : même en important les fichiers le 8 ou le 9, le programme me crée deux sous-répertoires, nommés d'après la date de chaque cliché, donc 2019_12_7 et 2019_12_8.

    Ton écran tel qu'il est me plaît bien, merci beaucoup pour les fonctions aussi. Je verrai pour trier les fichiers selon leur nom et pas le suffixe (comme ça en une seule passe je verrai s'il y a un fichier JPG et aussi un CR2), et naturellement il faut que je trouve la propriété directory pour faire un appel récursif.

    J'ai vu qu'il existe un type TStringDynArray maintenant ? Tant mieux pour moi, le tri sera une formalité comparé à elui d'une liste chaînée.

    Tu utilises une syntaxe totalement inconnue pour moi : 'for fichier in fichiers'.
    On peut maintenant faire une liste qui contienne plus que des bytes mais des strings, ou alors c'est une extension du langage qui permet de trouver un élément dans un tableau de n'importe quel type ? Ca me fait bizarre de lire ça, j'ai l'impression que Pascal s'est transformé en une sorte e Python ?

    Merci beaucouo, vraiment, et infiniment,

    Milos

  6. #6
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    pour ce genre de chose je passe par un .CMD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    @echo off
    echo traitement des tous les cr2
    for %%f in (*.cr2) do call :del_jpg %%f
    goto end
    :del_jpg
    echo traitement de %1
    set file=%~n1
    if exist %file%.jpg (echo suppression de %file%.jpg) else (echo %file%.jpg n'existe pas)
    exit /B
    :end
    echo done
    reste plus qu'à remplacer "echo suppression de" par "del"

    1.cr2
    1.jpg
    2.jpg
    3.cr2

    traitement des tous les cr2
    traitement de 1.cr2
    suppression de 1.jpg
    traitement de 3.cr2
    3.jpg n'existe pas
    done

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 175
    Points : 41 367
    Points
    41 367
    Billets dans le blog
    63
    Par défaut
    Re,

    Oui, la syntaxe ou du moins les fonctionnalités de Delphi ont beaucoup évoluées (tout comme en freepascal d'ailleurs).

    Je verrai pour trier les fichiers selon leur nom et pas le suffixe (comme ça en une seule passe je verrai s'il y a un fichier JPG et aussi un CR2), et naturellement il faut que je trouve la propriété directory pour faire un appel récursif.
    Pour le tri il y a la possibilité de l'indiquer dans la fonction GetFiles : le paramètre Predicate reste que ce paramètre est un peu compliqué pour une reprise de Delphi, moi-même j'utilise peu

    Je me suis "amusé" à écrire rapidement une même version mais FMX (c'est fou que je sois plus à l'aise avec désormais) donc potentiellement multiplateforme
    le code change peu si ce n'est que j'en ai profité pour :
    faire une vraie sélection de répertoire (valable aussi en VCL)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var dir : String;
    begin
    if SelectDirectory('Choisir le répertoire',TPath.GetHomePath,dir) then
       Edit1.Text:=Dir;
    end;
    et utiliser à fond les possibilités des ListView de FMX (le mode édition qui permet d'avoir une checkbox, la possibilité d'avoir une présentation d'item, dit style, avec un texte et un détail)
    (pour ce qui concerne les listes FMX je l'explique dans mes tutoriels ou dans mes billets)

    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
     
    procedure TForm81.btnFindClick(Sender: TObject);
    var Fichiers : TStringDynArray;
        Fichier : String;
        aListViewItem : TlistViewItem;
    begin
    Fichiers:=TDirectory.GetFiles(Edit1.text,'*.jpg');
    for fichier in Fichiers do
      begin
        aListViewItem:=ListView1.Items.AddItem;
        aListViewItem.text:=TPath.GetFileName(fichier);
        aListViewItem.detail:=fichier;
        aListViewItem.Checked:=FileExists(TPath.ChangeExtension(fichier,'cr2'),false); // cochage si le fichier cr2 existe 
      end;
    end;
    ce qui donne ceci
    Nom : Capture.PNG
Affichages : 379
Taille : 16,2 Ko

    il faut que je trouve la propriété directory pour faire un appel récursif.
    Yapluka , aurais-je oublié de mettre le lien ?

    Bien sûr je suis prêt à fournir les sources mais c'est plus fun de l'écrire soi-même non ?

    P.S. c'est quoi un "ertraité" (dans ta signature) le nouveau nom pour les retraités récents ? Ils en font des choses dans cette réforme

  8. #8
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 504
    Points : 2 776
    Points
    2 776
    Billets dans le blog
    10
    Par défaut
    Voici de la matière première en pièce jointe.
    Tu listes tous les jpg dans une première liste TStringlist
    Ensuite tu listes les autres images et si tu trouves la même racine du nom tu supprimes le fichier par un deletefile

    Le reconstitution du nom du jpg et du chemin est faite dans "ListBox1DblClick"

    Nom : Annotation 2019-12-20 092944.png
Affichages : 371
Taille : 29,9 Ko
    Fichiers attachés Fichiers attachés

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Praticien hospitalier responsable DIM, retraité depuis 9/2019
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Praticien hospitalier responsable DIM, retraité depuis 9/2019
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Remerciements de tout coeur
    Bonjour,

    Je suis épaté par le nombre de réponses que je reçois alors que je posais une question d'une manière inappropriée !

    Toth, Sergiomaster, Alweber, je vous remercie de tout coeur de votre aide et de vos indications.

    Bien sûr, pour le "yapuka" je vais me débrouiller, il ne manquerait plus que ça.

    Pour les tris, je suis habitué à la méthode de Shell-Metzner, ça tient en quelques lignes et elle est rapide, et elle ne m'oblige pas à apprendre une méthode rapide de plus avec tous ses paramètres; le seul problème est qu'elle est "instable" (à clé identique, on ne peut prévoir quelle entrée sera la première des homonymes) mais là il me suffit de trier aussi avec le suffixe et CR2 viendra fatalement avant JPG (d'ailleurs dans ce cas, si en balayant le tableau je place un drapeau à true quand un nouveau fichier en CR2 apparaît, je peux détruire dans la foulée le JPG rencontré avec le drapeau à vrai, et de toute façon le drapeau est mis à false devant un fichier JPG, détruit ou pas et y reste tant que je ne vois pas de nouveau fichier en CR2).

    Il faut que je retourne voir mon profil; je suis retraité depuis le 21 septembre et je ne m'y suis pas encore fait, mais pas du tout comme le montre m faute d'orthographe..

    En tout cas, merci encore, vos indications qui me montrent ce qu'on trouve à présent dans RAD Tokyo et comparant à Turbo Pascal, j'en reste pantois..

    Donc je vais me débrouiller, et je vous remercie de votre gentillesse envers un ex-programmeur MSDOS ayant largement atteint sa date de péremption avant celle de la retraite .

    Bien amicalement à tous,

    Milos

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 175
    Points : 41 367
    Points
    41 367
    Billets dans le blog
    63
    Par défaut
    Bof, le tri, pas sûr que ce soit nécessaire c'était juste pour indiquer qu'il existe une méthode (simple) avec un paramètre (predicate) je crois même me souvenir que dans la doc il y a un exemple.

    Quant à la récursivité, voilà le même programme FMX
    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
     
      private
        { Déclarations privées }
        procedure AddFichiers(dir : String);
     
      public
        { Déclarations publiques }
      end;
     
    var
      Form81: TForm81;
     
    implementation
     
    {$R *.fmx}
    uses System.IOUtils;
     
    procedure TForm81.AddFichiers(dir: String);
    var Repertoires,Fichiers : TStringDynArray;
        Fichier, repertoire : String;
        aListViewItem : TlistViewItem;
        achkbox : TGlyphButtonObjectAppearance;
    begin
    Fichiers:=TDirectory.GetFiles(dir,'*.jpg');
    for fichier in Fichiers do
      begin
        aListViewItem:=ListView1.Items.AddItem;
        aListViewItem.text:=TPath.GetFileName(fichier);
        aListViewItem.detail:=fichier;
        aListViewItem.Checked:=FileExists(TPath.ChangeExtension(fichier,'cr2'),false);
      end;
    repertoires:=TDirectory.GetDirectories(dir);
    for repertoire in repertoires do
    begin
        aListViewItem:=ListView1.Items.AddItem;
        aListViewItem.text:=TPath.GetFileName(repertoire);
        // cacher checkbox pour les répertoires
        aListViewItem.Objects.GlyphButton.Visible:=false;
        aListViewItem.detail:=repertoire;
        addFichiers(repertoire);
    end;
    end;
     
    procedure TForm81.btnFindClick(Sender: TObject);
    begin
     ListView1.Items.Clear;
     AddFichiers(Edit1.Text);
    end;
     
    procedure TForm81.EllipsesEditButton1Click(Sender: TObject);
    var dir : String;
    begin
    if SelectDirectory('Choisir le répertoire',TPath.GetHomePath,dir) then
       Edit1.Text:=Dir;
    end;
    pour en ajouter une couche, le remplissage de la liste serait encore mieux dans un thread (pour faire travailler les méninges il y a un bon webinaire d'Olaf Monien il faut s'inscrire à Embarcadero Academy mais le BootCamp 2018 est gratuit, avec justement comme exemple une recherche de fichiers image)

Discussions similaires

  1. Quelque questions, suite à un gros problème rencontré.
    Par Invité dans le forum Ordinateurs
    Réponses: 8
    Dernier message: 25/02/2015, 11h17
  2. Questions générales pour tres gros debutant
    Par sp2308 dans le forum Android
    Réponses: 2
    Dernier message: 07/10/2013, 14h20
  3. Question compilation pour gros débutant
    Par neo18045 dans le forum C
    Réponses: 5
    Dernier message: 11/01/2010, 02h40
  4. petite question pour gros soucis
    Par bakman dans le forum SharePoint
    Réponses: 0
    Dernier message: 19/10/2007, 15h30
  5. MDI ? Question de Gros débutant
    Par turf_trader dans le forum Delphi
    Réponses: 5
    Dernier message: 20/07/2007, 22h59

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