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 :

Utilisation de FindFirst


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Âge : 83
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 780
    Par défaut Utilisation de FindFirst
    Bonjour à toutes et à tous

    Envoyé par Linkin en février :
    FindFirst gère le \\ordi\dir\...
    J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    \\MAITRE\REPERTOIRE\BASE.FDB
    \\MAITRE\C:\REPERTOIRE\BASE.FDB
    \\192.168.1.xx\REPERTOIRE\BASE.FDB
    \\192.168.1.xx\C:\REPERTOIRE\BASE.FDB
    et aucun ne me permet de savoir si la base existe.


  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 944
    Par défaut
    Ca dépend peut-être de la version de Delphi

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Par défaut
    Salut,

    Heu, pardon, je n'ai peut être pas suivi depuis le début. Mais tu veux dire que tu n'arrives pas a trouver le fichier avec un chemin réseau en utilisant un FindFirst?

  4. #4
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Avec ce code sous Delphi 7, je n'ai pas de souci:

    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
      lSearchRecord : TSearchRec;
      lResultat : Integer;
      lFileName: String;
    begin
          lResultat := FindFirst('\\Serveur\Documents\test.jpg',faAnyFile,lSearchRecord);
     
          while lResultat = 0 do
          begin
            if (lSearchRecord.Attr and faDirectory) <= 0 then
            begin
                lFileName := lSearchRecord.Name;
            end;
            lResultat := FindNext(lSearchRecord);
          end;
          SysUtils.FindClose(lSearchRecord);
    Mais si c'est un fichier unique un FileExists devrait suffire, non?

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut

    Citation Envoyé par JP.NUAGE Voir le message
    J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    \\MAITRE\REPERTOIRE\BASE.FDB
    \\MAITRE\C:\REPERTOIRE\BASE.FDB
    \\192.168.1.xx\REPERTOIRE\BASE.FDB
    \\192.168.1.xx\C:\REPERTOIRE\BASE.FDB
    et aucun ne me permet de savoir si la base existe.

    il faut aussi s'assurer que le chemin soit partagé

  6. #6
    Expert confirmé
    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 : 62
    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
    Par défaut
    Salut

    Citation Envoyé par evarisnea Voir le message
    il faut aussi s'assurer que le chemin soit partagé
    A la lecture de ce thread c'est bien ce qui me dérange.
    Le dossier dans lequel sont placés tes bases de données n'est pas censé être partagé, surtout pas. Imagine qu'un utilisateur supprime accidentellement une BDD.

    Quelle est la finalité de ce FindFirst ? Si c'est uniquement pour s'assurer de la présence de la base, une simple tentative de connexion fera l'affaire.

    @+ Claudius

  7. #7
    Membre éclairé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Âge : 83
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 780
    Par défaut
    Et bien, j'ai du boulot pour répondre !

    1) A Jeankiki : exact, je n'arrive pas à trouver de fichier
    2) A Linkin : merci pour la réponse, je vais essayer ton code
    3) A Cl@udius : c'est pour savoir si le fichier existe, en effet, mais ce n'est pas vraiment une base, c'est un backup. Je ne pense donc pas qu'un essai de connexion fasse l'affaire
    4) A evarisnea : toujours pas de flamboyants ? ( C'est un petit clin d'oeil)
    Et enfin
    5) A qi130 : D7 est ma version !

    Merci à tous, je teste avant de clore

  8. #8
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut
    Citation Envoyé par JP.NUAGE Voir le message
    3) A Cl@udius : c'est pour savoir si le fichier existe, en effet, mais ce n'est pas vraiment une base, c'est un backup. Je ne pense donc pas qu'un essai de connexion fasse l'affaire
    ça pourrait faire l'affaire tu sais, car l'erreur remontée lorsque le fichier n'existe pas :
    Unsuccessful execution caused by a system error that precludes
    successful execution of subsequent statements.
    I/O error for file "C:\FichierQuiNExiste.Pas".
    Error while trying to open file.
    Le fichier spécifié est introuvable.
    est différente de celle remontée lorsque le fichier n'est pas une base de donnée valide :
    Connection authorization failure.File C:\FichierNonBDFirebird.XXX is not a valid database.
    ce qui prouve qu'on peut savoir si oui ou non un fichier existe en essayant de s'y connecter.


    Citation Envoyé par JP.NUAGE Voir le message
    4) A evarisnea : toujours pas de flamboyants ? ( C'est un petit clin d'oeil)
    toujours pas


    tu n'as pas répondu à la question de savoir si le chemin est partagé car je ne pense pas que FindFirst fonctionne sans partage ...

  9. #9
    Membre éclairé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Âge : 83
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 780
    Par défaut
    Voilà mon code (je vous ai épargné les déclarations) :

    PORTABLE est le nom du Poste SERVEUR, LABTOP est le nom qui apparaît entre parenthèses dans l'Explorateur windows

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       xDate1 := '\\LABTOP\DEDE\GERLOC.FDB'; 
       xDate2 := '\\PORTABLE\DEDE\GERLOC.FDB'; 
       xDate3 := '\\192.168.1.12\DEDE\GERLOC.FDB';
       xExiste1 := FindFirst(xDate1,faAnyFile,xInfo)=0;
       xExiste2 := FindFirst(xDate2,faAnyFile,xInfo)=0;
       xExiste3 := FindFirst(xDate3,faAnyFile,xInfo)=0;
       SysUtils.FindClose(xInfo);
    Dans ce test j'ai fait un essai avec une base Firebird

    Tous les xExiste sont à false.

    Je confirme que le chemin est partagé.

    Je pingue sur 192.168.1.12, et bien sûr par programme, je me connecte à la base



    Et sans vouloir vexer quiconque, tester l'existence par un test sur une erreur ne me satisfait pas beaucoup (mais celà est personnel)

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

Discussions similaires

  1. Utilisation de FindFirst dans la Base de Donnée
    Par vodiv dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/06/2008, 13h52
  2. Comment je peux utiliser Findnext FindFirst
    Par zizo89 dans le forum Delphi
    Réponses: 5
    Dernier message: 17/05/2007, 16h19
  3. comment utiliser Findfirst et FindNext
    Par oumarsaw dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 18/04/2006, 11h48
  4. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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