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 :

Vérifier la présence de fichiers sur un disque dur


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Points : 61
    Points
    61
    Par défaut Vérifier la présence de fichiers sur un disque dur
    Bonsoir,

    J'ai des fichiers txt comprenant des informations précises.

    Je souhaite lors de l'ouverture d'une fenêtre que mon programme vérifie que ces fichiers soient bien sur le disque dur (à un endroit précis et fixe dans le temps).

    Si les fichiers sont présents, mon programme devra ouvrir chaque fichiers txt et copier le contenu dans des memos distincts.

    La fonction de vérification de présence fichier est-elle l'instruction FindFirts? Si oui comment s'articule-t-elle? Et si les fichier ne sont pas présents, quelle issue?

    Merci

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Tu peux tout simplement utiliser FileExists qui prend en paramètre le nom + chemin du fichier et renvois un booléen.

    Sinon pour la petite histoire ça peut marcher aussi avec FindFirst : si le fichier est présent alors la fonction retourne 0 et sinon un code d'erreur différent de 0.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Points : 61
    Points
    61
    Par défaut
    Merci Aka Guylemef,

    Donc si je te comprends bien une simple ligne de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if fileExist('c:\zigouigoui\scregnegne.txt') = true then ...
    ??

    C'est après le then que je patauge pour coller le contenu du fichier texte dans le memo.

    Je fais F1, mais....

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    FileExists ne fait rien de plus que de te dire si le fichier existe ou pas. Il ne se charge pas de te l'ouvrir et de te le conserver en mémoire quelque part pour que tu l'utilise après. Une fois dans le Then tu fais comme d'habitude, une variable de type TextFile, Open, Rewrite (ou Reset ou Append suivant tes besoins), ReadLn, WriteLn, etc...

    Tu as même de la chance puisque c'est un TMemo, en effet si tu veux juste bêtement recopier tout le contenu tu as une méthode SaveToFile au niveau de la propriété Lines du TMemo qui te facilitera très certainement bien la vie.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Points : 61
    Points
    61
    Par défaut
    pourquoi ceci ne marche pas ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if fileexists('c:\dethermine\users\agence.txt') = true then combobox1.Text := FileOpen('c:\dethermine\users\agence.txt',(fmOpenReadWrite));

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Oulah, oulah, oulah ne mélangeons pas tout là

    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
    var
      F: TextFile;
    // si le fichier existe
    if FileExists( 'c:\dethermine\users\agence.txt' ) then
    begin
      // assigner le fichier à la variable F
      AssignFile( F, 'c:\dethermine\users\agence.txt' );
      // ouvrir le fichier
      Reset( F )
      // récupérer la première ligne du fichier (séparée par un retour chariot)
      // et l'affecter au TComboBox si le fichier n'est pas vide
      if not Eof( F ) then
        combobox1.Text := ReadLn( F );
     
      // fermer le fichier
      CloseFile( F );
    end;
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 011
    Points : 2 078
    Points
    2 078
    Par défaut Charger un fichier dans un mémo.
    Bonjour.
    Pour charger le contenu d'un fichier texte dans un mémo
    memo1.Lines.LoadFromFile(...);
    C'est mieux que SaveToFile

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    En effet c'est moi qui avait mal lu l'intitulé de départ "ouvrir chaque fichiers txt et copier le contenu dans des memos distincts" et non pas "copier le contenu des memos distincts dans chaque fichiers txt" comme mon cerveau avait voulu lire. Merci de m'avoir repris
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Points : 61
    Points
    61
    Par défaut
    Merci pour la réponse Aka Guymelef,

    J'ai lu ton code. Il me semble l'avoir compris, mais ce que je ne comprends pas c'est que quand je lance le débogueur, celui-ci s'arrête sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if not Eof( F ) then combobox1.Text := ReadLn( F );
    En me précisant : [Pascal Erreur] users.pas(67): E2010 Types incompatibles : 'string' et 'procedure, untyped pointer or untyped parameter'

    D'autre part, je ne comprends pas la position de ton "begin" dans ton code.

    Merci.

  10. #10
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Comme déja indiqué le plus simple est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if fileExists('c:\toto.txt') then memo1.Lines.LoadFromFile('c:\toto.txt');

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Points : 61
    Points
    61
    Par défaut
    oui mais comment affecter le contenu d'un fichier txt au text d'une combobox?

  12. #12
    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 849
    Points
    24 849
    Par défaut
    Avec un minimum d'effort, tu auras pu consulter l'aide de la fonction ReadLn et lire comment on l'utilise

    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
     
    var
      F: TextFile;
      S: string;
     
    if FileExists( 'c:\dethermine\users\agence.txt' ) then
    begin
      AssignFile( F, 'c:\dethermine\users\agence.txt' );
      Reset( F )
      if not Eof( F ) then
        ReadLn( F, S )
      else
        S := '';
      combobox1.Text := S ;
      CloseFile( F );
    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

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Points : 61
    Points
    61
    Par défaut
    Merci Shai Le Troll mais je débute vraiment en delphi, et je ne manque jamais de faire F1.

    Quand je prends ton code, j'ai plein d'erreurs qui s'affichent.

    Comme je l'ai dit plus haut, ça commence à bugger dès le begin.

    Tout ce qui suit n'est pas déclaré.

    N'y a-t-il pas un ";" après Reset?

    Merci pour l'indulgence et pour l'investissement!

  14. #14
    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,

    En effet, il manque un ';' après le Reset ... et il faut bien comprendre que ShaiLeTroll t'as mis sur la voie ... Un peu d'adaptation est nécessaire

    Voici ce que je propose (modification du code de Shai ...) pour te montrer comment adapter ce code:

    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
    procedure TForm1.Button1Click(Sender: TObject);
    var
      F: TextFile;
      S: string;
    begin
      if FileExists( 'c:\dethermine\users\agence.txt' ) then
      begin
        AssignFile( F, 'c:\dethermine\users\agence.txt' );
        Reset( F );
        if not Eof( F ) then
          ReadLn( F, S )
        else
          S := '';
        combobox1.Text := S ;
        CloseFile( F );
      end;
    end;
    J'espère que tu comprendras!
    A+

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Points : 61
    Points
    61
    Par défaut
    Mille Mercis à tous! C'est avec des gens comme vous que l'on tient le coup pour continuer la programmation et évoluer petit à petit!

    Merci Merci Merci!

    Et je clique sur "Résolu" !

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

Discussions similaires

  1. [Débutant] vérifier la présence du fichier sur le FTP
    Par migau dans le forum VB.NET
    Réponses: 2
    Dernier message: 13/05/2014, 10h49
  2. Réponses: 2
    Dernier message: 24/04/2007, 08h03
  3. Problème de déplacement de fichier sur le Disque Dur
    Par DeFCrew dans le forum Sécurité
    Réponses: 8
    Dernier message: 11/09/2006, 11h44
  4. Condition sur existence de fichier sur le disque dur
    Par manshoon dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2006, 09h58
  5. commande pour trouver un fichier sur le disque dur...
    Par angelevil dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 11/11/2005, 00h10

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