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 :

Saisir plusieurs fichiers en même temps dans un répertoire


Sujet :

Langage Delphi

  1. #21
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    Autre chose que j'oubliais de préciser: j'ai tout recommencé du début entre temps, reprendre une application commencé par quelqu'un d'autre n'ayant pas la même logique que moi est pour moi quelque chose de trop difficille pour moi, de ce fait j'ai préféré tout recommencer du début donc le dernier code que j'ai affiché, vous pouvez en tenir compte, tout le reste vous pouvez l'oublier donc plus de fonction getvalue et autre.

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    une autre erreur de corrigée : pour le Z:\cpaj_rec.Text non déclaré en fait il manquait juste des ' '.

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    bon, je n'ai plus de message d'erreur maintenant, seulement des avertissements:

    le symbole finddata est propre à une plate forme.

    Maintenant j'arrive à compiler mais je n'ai aucun affichage.

  4. #24
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    Pour FindData, dans la FAQ de Developpez, il y a la consigne à suivre ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #25
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    Oui effectivement j'ai réussi à me débarasser du warning en revanche, l'application ne marche toujours pas.

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    Et puis aussi, je n'ai pas trop compris la signification de cette ligne là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not((Info.Attr And faDirectory)=0)

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    bon en fait l'application marche, j''avais spécifié un répertoire sur un autre disque dur par contre je n'ai toujours pas compris la ligne plus haut.

  8. #28
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    Bon peu importe, j'ai viré la condition de toute façon, récupérer les sous répertoires ne m'intéresse pas.

    Bon, le plus dur est fait, il ne me reste plus qu'à faire l'enregistrement dans la base maintenant.

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    Bon, voilà où j'en suis maintenant:

    J'ai créé une variable Donnees

    voilà mon code actuel:

    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
    procedure TForm1.Button1Click(Sender: TObject);
    {$WARN SYMBOL_PLATFORM OFF}
    Var Chemin : String;
        Donnees: String;
        Info   : TSearchRec;
    begin
      ListBox1.Items.Clear;                //lignes que je
      ListBox2.Items.Clear;               //compte virer
     
      { Pour être sur que la barre oblique finisse le nom du chemin }
      Chemin := IncludeTrailingPathDelimiter('C:\a_test');
     
      { Recherche de la première entrée du répertoire }
      If FindFirst(Chemin+'*.*',faAnyFile,Info)=0 Then
      Begin
        Repeat
     
            ListBox1.Items.Add(Info.FindData.cFileName); //ligne que je compte virer
            sauvegarde.insert;
            Donnees := Info.FindData.cFileName;
            sauvegarde.FieldByName('nom').AsString:=Donnees.Text; *
     
          { Il faut ensuite rechercher l'entrée suivante }
        Until FindNext(Info)<>0;
     
        { Dans le cas ou une entrée au moins est trouvée il faut }
        { appeler FindClose pour libérer les ressources de la recherche }
        FindClose(Info);
      End;
    bon en fait là je reçois le message d'erreur suivant là où j'ai mis l'*:

    type record object ou class requis.

    De plus je ne suis pas sur avoir attribué la bonne valeur à Donnees

  10. #30
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    En fait ce que je n'arrive pas à comprendre dans le code c'est quelle partie du code correspond au non du fichier appelé.

  11. #31
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    Avant posé des questions, tu regardes un peu l'aide ? as-tu consulté la documentation du WIN32_FIND_DATA (Info.FindData), as-tu remarqué que cFileName est un array[0..MAX_PATH] of Char que tu as recopiés dans Donnees qui est une string (c'est génial, Delphi le fait tout seul, pourtant derrière il y a une multitude d'opération), et donc qu'il n'y a pas de propriété Text dans une string, ... reprend donc les bases de la programmation Delphi, après on ira plus loin ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  12. #32
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    oui effectivement j'ai viré entre temps le .text pour qu'à la place lorsque le clique sur le bouton une fenêtre s'ouvre avec de marqué dedans:
    "sauvegarde: impossible d'effectuer cette opération sur un ensemble de données fermées."
    [hors sujet]Sinon désolé, ça fait un peu plus d'une semaine que je programme sur Delphi, j'aurais peut être du poster ça dans la partie débutant enfin bref de toute façon, je lis quand même l'aide, et oui j'ai vu la documentation sur le finddata (ce qui m'a permis de corriger le warning), après, je ne peux pas forcément tout débloquer d'un seul coup. [/hors sujet]

  13. #33
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    Mais bon, je sais que le soucis est au niveau de l'affectation de la variable donnees.

  14. #34
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    Une semaine, débutant effectivement, j'étais loin de faire du XML !
    A mes débuts, j'ai du commencé par le ReadLn pour lire un fichier de carte sésam vitale (un pauvre fichier récupére en ligne de commande), cela a été très formateur pour les boucles While et For, j'avais déjà des notions de programmation en Ti80 et HP48, donc certains concepts était déjà entré dans ma tête ... j'ai du faire mon premier FindFirst au bout de 3 mois de stage ...

    Je comprends mieux ton désarroi, ... laisse tomber Delphi, pose tous tes problèmes sur papier, oui, oui, fait des schémas, isole les fonctionnalités (on ne mélange pas l'affichage genre Caption, et la lecture de fichier, en fait pour ça l'aide de Delphi est un peu dégueux car il mélange tout et ne donne pas les conseils pour faire des fonctions, d'ailleurs, c'est le mot, apprend à faire de petite fonction, qui ont un thème précis, et un seul thème, ...)

    Donc, soit tu reprends certaines bases, faut commencer par là, moi, j'ai fait les exemples du bouquin de Delphi 4, je les ai suivi un par un, ensuite, mon tuteur (j'ai eu de chance d'en avoir un), ... commence par un truc plus simple

    Maintenant, as tu réussi à utiliser la fonction GetListFile ? Ensuite, explique avec des phrases courtes ce que tu dois faire, ... je vais essayer de te guider si j'en ai le temps ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  15. #35
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    Oui c'était ce que j'avais fait au début, j'avais testé plein de fonctions simples (cf post dans la partie débutant) après pour la fonction que tu m'avais passé, ça ne marchait pas correctement du coup j'ai préféré utiliser celle que j'ai montré qui apparemment fait un peu la même chose.

  16. #36
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    Bon en fait c'était tout bête, comme le message d'erreur me l'indiquait, l'ensemble était fermé.

    J'ai donc rajouté un sauvegarde.open avant le findfirst et là ça m'enregistre dans la base de donné.

    le problème maintenant, c'est que ça m'enregistre :"Info.FindData.cFileName"
    et non le nom du fichier comme je cherche à le faire.

    J'en déduis que la variable données est mal affectée.

  17. #37
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    Encore une fois tu mélanges plusieurs choses à la fois, par une fonction qui remplit une TStrings avec la liste des fichiers, puis une autre fonction qui prendra cette liste et l'écrira en base de données, ... et te limitant à des actions bien précises à chaque fois, tu arriveras plus vite à tout but que de vouloir tout faire en même temps, ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  18. #38
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    Citation Envoyé par Pov type Voir le message
    ... après pour la fonction que tu m'avais passé, ça ne marchiait pas correctement ...
    Ah bon, pas correctement, chez moi, elle donne tous les fichiers présents dans un dossier, il manque juste l'option pour filter sur les extensions


    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
    procedure TfImportKc.Button1Click(Sender: TObject);
    begin
      GetListFile('C:\', ListBox1.Items, '*.xml');
    end;
     
    function GetListFile(const Directory: string; ResultList: TStrings; const Mask: string = '*'): Boolean;
    var
      sr: TSearchRec;
      Path: string;
    begin
      Result := False;
      if DirectoryExists(Directory) then
      begin
        ResultList.BeginUpdate();
        try
          ResultList.Clear();
     
          Path := IncludeTrailingPathDelimiter(Directory);
          if SysUtils.FindFirst(Path + Mask, faAnyFile and not faDirectory, sr) = 0 then
          begin
            try
              repeat
                ResultList.Add(sr.Name);
              until SysUtils.FindNext(sr) <> 0;
            finally
              SysUtils.FindClose(sr);
            end;
          end;
       finally
          ResultList.EndUpdate();
          Result := ResultList.Count > 0;
       end;
      end;
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  19. #39
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Points : 62
    Points
    62
    Par défaut
    à mon avis je n'ai pas du tout comprendre dans le code du coup j'ai du faire quelques erreurs c'est pour ça que j'ai préféré prendre l'exemple que je comprenais le mieux.

    bon en attendant, je continue à chercher la fonction qui peut me permettre l'enregistrement.

Discussions similaires

  1. Réponses: 15
    Dernier message: 24/11/2008, 16h16
  2. Ouverture de plusieurs fichiers en même temps ?
    Par nicolas.sitbon dans le forum POSIX
    Réponses: 42
    Dernier message: 07/08/2008, 23h35
  3. Réponses: 0
    Dernier message: 09/10/2007, 23h19
  4. Réponses: 0
    Dernier message: 09/10/2007, 17h51
  5. ouvrir plusieurs fichiers en même temps
    Par diiity dans le forum Windows
    Réponses: 0
    Dernier message: 03/08/2007, 18h26

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