OVH Cloud OVH Cloud

existance de fichier

8 réponses
Avatar
JCM
Bonjour

je voudrais dans une appli VB6 d=E9tecter l'existance d'un=20
fichier. Voici mon code :

Private Function FileExists(ByRef chemin As String) As=20
Boolean
On Error Resume Next
FileExists =3D ((GetAttr(chemin) And vbDirectory) =3D 0)
End Function

Que me faut-il ajouter dans le Form_Load pour tester la=20
fonction.=20
Si le fichier n'existe pas je voudrais afficher une=20
commonDialog

Merci de vos reponses
Cordialement
JCM

8 réponses

Avatar
François Picalausa
Bonjour/soir,

Déjà, c'est pas vbDirectory ;-)(je te laisse cherchez dans les
archives de se ng :p)



Bien sûr que si!
Il teste si ce n'est pas un dossier.. pas si c'est un dossier!

?(GetAttr("c:Autoexec.bat") And vbDirectory)=0
Vrai
?(GetAttr("c:Windows") And vbDirectory)=0
Faux

Common.DialogTitle = "Nouveau fichier"
Common.FileName = "Mon fichier(*.xxx)|.xxx"
Common.FilterIndex = 1



Pourquoi passer par le contrôle qui alourdi pour rien?
Par APIs, il y a plusieurs sources permettant d'éviter le gros contrôle:
http://faq.vb.free.fr/index.php?question

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


Ledev wrote:
Salut,

Déjà, c'est pas vbDirectory ;-)(je te laisse cherchez dans les
archives de se ng :p)

Private Sub Form_Load()
If FileExist("dd") = False Then
Common.DialogTitle = "Nouveau fichier"
Common.FileName = "Mon fichier(*.xxx)|.xxx"
Common.FilterIndex = 1
Common.FileName = "*.xxx"
Common.ShowSave
If Common.CancelError = True Then Exit Sub
'Puis se qu'il doit faire du fichier
End If
End If

End Sub

a+



"JCM" a écrit dans le message de
news:000501c34fa2$8aa76bb0$
Bonjour

je voudrais dans une appli VB6 détecter l'existance d'un
fichier. Voici mon code :

Private Function FileExists(ByRef chemin As String) As
Boolean
On Error Resume Next
FileExists = ((GetAttr(chemin) And vbDirectory) = 0)
End Function

Que me faut-il ajouter dans le Form_Load pour tester la
fonction.
Si le fichier n'existe pas je voudrais afficher une
commonDialog

Merci de vos reponses
Cordialement
JCM


Avatar
Ledev
"François Picalausa" a écrit dans le message de
news:
Bonjour/soir,

> Déjà, c'est pas vbDirectory ;-)(je te laisse cherchez dans les
> archives de se ng :p)

Bien sûr que si!
Il teste si ce n'est pas un dossier.. pas si c'est un dossier!



Décidement, j'aligne les conneries moi, sur se ng :'(.

Bon, c'est décidez, j'arrête la moquette ;-)


?(GetAttr("c:Autoexec.bat") And vbDirectory)=0
Vrai
?(GetAttr("c:Windows") And vbDirectory)=0
Faux

> Common.DialogTitle = "Nouveau fichier"
> Common.FileName = "Mon fichier(*.xxx)|.xxx"
> Common.FilterIndex = 1

Pourquoi passer par le contrôle qui alourdi pour rien?
Par APIs, il y a plusieurs sources permettant d'éviter le gros contrôle:
http://faq.vb.free.fr/index.php?question



Ba VB n'est pas connue pour sa rapidité, si ont veus du extra light, ont
peut faire directement du c++(voir de l'assemb.), mais c'est vrai que sa
n'est pas plus compliquez que le contrôle a mettre en oeuvre et c'est plus
légée, donc c'est mieux ;-).

a+
Avatar
JCM
Bonjour

Merci François pour tes réponses

Cordialement
JCM

-----Message d'origine-----
Bonjour/soir,

Déjà, c'est pas vbDirectory ;-)(je te laisse cherchez




dans les
archives de se ng :p)



Bien sûr que si!
Il teste si ce n'est pas un dossier.. pas si c'est un


dossier!

?(GetAttr("c:Autoexec.bat") And vbDirectory)=0
Vrai
?(GetAttr("c:Windows") And vbDirectory)=0
Faux

Common.DialogTitle = "Nouveau fichier"
Common.FileName = "Mon fichier(*.xxx)|.xxx"
Common.FilterIndex = 1



Pourquoi passer par le contrôle qui alourdi pour rien?
Par APIs, il y a plusieurs sources permettant d'éviter le


gros contrôle:
http://faq.vb.free.fr/index.php?question

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


Ledev wrote:
Salut,

Déjà, c'est pas vbDirectory ;-)(je te laisse cherchez




dans les
archives de se ng :p)

Private Sub Form_Load()
If FileExist("dd") = False Then
Common.DialogTitle = "Nouveau fichier"
Common.FileName = "Mon fichier(*.xxx)|.xxx"
Common.FilterIndex = 1
Common.FileName = "*.xxx"
Common.ShowSave
If Common.CancelError = True Then Exit Sub
'Puis se qu'il doit faire du fichier
End If
End If

End Sub

a+



"JCM" a écrit dans le




message de
news:000501c34fa2$8aa76bb0$
Bonjour

je voudrais dans une appli VB6 détecter l'existance d'un
fichier. Voici mon code :

Private Function FileExists(ByRef chemin As String) As
Boolean
On Error Resume Next
FileExists = ((GetAttr(chemin) And vbDirectory) = 0)
End Function

Que me faut-il ajouter dans le Form_Load pour tester la
fonction.
Si le fichier n'existe pas je voudrais afficher une
commonDialog

Merci de vos reponses
Cordialement
JCM




.



Avatar
Guy Detienne
Salut ;O)

'Faut pas toujours comparer VB à C++. Ce sont deux
langages bien différents dont les objectifs sont tout
aussi différents. C++ sait 'tout faire' et est surtout
orienté système. Savoir tout faire signifie que ce
dernier doit avoir une structure rigoureuse et parfois
complexe, ce que n'est pas, dans l'immédiat, VB.

C'est certain que C++ produira un code vraiment plus
rapide. Mais je te lance le défi de concevoir une
application de gestion dans les mêmes limites de temps
avec C++ qu'avec VB. Et puis, d'un point de vue
apprentissage du langage, je crois qu'il n'y a pas photo.

Tu parles de rapidité, mais as-tu connu les versions
antérieures de VB (VB3-VB4-VB5) ? Crois-moi, de la
version 3 à la 6, l'amélioration en terme de compilation
est conséquante donc la rapidité à suivi aussi. Et tu
parles de l'assembleur. Vas-y toi développer un truc en
assembleur qui appelle les CommonDialog Box... ;O)

Bonne prog'

Guy DETIENNE

-----Original Message-----

"François Picalausa" a écrit dans


le message de
news:
Bonjour/soir,

> Déjà, c'est pas vbDirectory ;-)(je te laisse cherchez




dans les
> archives de se ng :p)

Bien sûr que si!
Il teste si ce n'est pas un dossier.. pas si c'est un




dossier!

Décidement, j'aligne les conneries moi, sur se ng :'(.

Bon, c'est décidez, j'arrête la moquette ;-)


?(GetAttr("c:Autoexec.bat") And vbDirectory)=0
Vrai
?(GetAttr("c:Windows") And vbDirectory)=0
Faux

> Common.DialogTitle = "Nouveau fichier"
> Common.FileName = "Mon fichier(*.xxx)|.xxx"
> Common.FilterIndex = 1

Pourquoi passer par le contrôle qui alourdi pour rien?
Par APIs, il y a plusieurs sources permettant d'éviter




le gros contrôle:
http://faq.vb.free.fr/index.php?question



Ba VB n'est pas connue pour sa rapidité, si ont veus du


extra light, ont
peut faire directement du c++(voir de l'assemb.), mais


c'est vrai que sa
n'est pas plus compliquez que le contrôle a mettre en


oeuvre et c'est plus
légée, donc c'est mieux ;-).

a+


.



Avatar
François Picalausa
Bonjour/soir,

C'est certain que C++ produira un code vraiment plus
rapide.



Bien que.. bien que...
Quand on regarde certains codes sur VBspeed (http://www.xbeat.net/vbspeed)
notamment le Shift Left n° 04 employant de l'assembleur en substituant une
fonction par une autre (ce que beaucoup de virus checherchent à faire) :o)
Quand à comprendre le code, c'est une autre histoire ;-)

Et tu
parles de l'assembleur. Vas-y toi développer un truc en
assembleur qui appelle les CommonDialog Box... ;O)



Et si en plus il nous le faisait en assembleur dans VB? non? :-P

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


Guy Detienne wrote:
Salut ;O)

'Faut pas toujours comparer VB à C++. Ce sont deux
langages bien différents dont les objectifs sont tout
aussi différents. C++ sait 'tout faire' et est surtout
orienté système. Savoir tout faire signifie que ce
dernier doit avoir une structure rigoureuse et parfois
complexe, ce que n'est pas, dans l'immédiat, VB.

C'est certain que C++ produira un code vraiment plus
rapide. Mais je te lance le défi de concevoir une
application de gestion dans les mêmes limites de temps
avec C++ qu'avec VB. Et puis, d'un point de vue
apprentissage du langage, je crois qu'il n'y a pas photo.

Tu parles de rapidité, mais as-tu connu les versions
antérieures de VB (VB3-VB4-VB5) ? Crois-moi, de la
version 3 à la 6, l'amélioration en terme de compilation
est conséquante donc la rapidité à suivi aussi. Et tu
parles de l'assembleur. Vas-y toi développer un truc en
assembleur qui appelle les CommonDialog Box... ;O)

Bonne prog'

Guy DETIENNE

-----Original Message-----

"François Picalausa" a écrit dans le message de
news:
Bonjour/soir,

Déjà, c'est pas vbDirectory ;-)(je te laisse cherchez dans les
archives de se ng :p)



Bien sûr que si!
Il teste si ce n'est pas un dossier.. pas si c'est un dossier!



Décidement, j'aligne les conneries moi, sur se ng :'(.

Bon, c'est décidez, j'arrête la moquette ;-)


?(GetAttr("c:Autoexec.bat") And vbDirectory)=0
Vrai
?(GetAttr("c:Windows") And vbDirectory)=0
Faux

Common.DialogTitle = "Nouveau fichier"
Common.FileName = "Mon fichier(*.xxx)|.xxx"
Common.FilterIndex = 1



Pourquoi passer par le contrôle qui alourdi pour rien?
Par APIs, il y a plusieurs sources permettant d'éviter le gros
contrôle: http://faq.vb.free.fr/index.php?question



Ba VB n'est pas connue pour sa rapidité, si ont veus du extra light,
ont peut faire directement du c++(voir de l'assemb.), mais c'est
vrai que sa n'est pas plus compliquez que le contrôle a mettre en
oeuvre et c'est plus légée, donc c'est mieux ;-).

a+


.




Avatar
Guy Detienne
Salut ;O)

Bien que.. bien que...
Quand on regarde certains codes sur VBspeed


(http://www.xbeat.net/vbspeed)
notamment le Shift Left n° 04 employant de l'assembleur
en substituant une
fonction par une autre (ce que beaucoup de virus
checherchent à faire) :o)
Quand à comprendre le code, c'est une autre histoire ;-)



Je vais jeter un oeil sur le site. Merci


Et si en plus il nous le faisait en assembleur dans VB?
non? :-P


Alors là, je me fais moine ! ;O)
___________________________________________
Tchao.net: L'informatique à votre dimension
www.tchao.net


-----Original Message-----
Bonjour/soir,

C'est certain que C++ produira un code vraiment plus
rapide.



Bien que.. bien que...
Quand on regarde certains codes sur VBspeed


(http://www.xbeat.net/vbspeed)
notamment le Shift Left n° 04 employant de l'assembleur


en substituant une
fonction par une autre (ce que beaucoup de virus


checherchent à faire) :o)
Quand à comprendre le code, c'est une autre histoire ;-)

Et tu
parles de l'assembleur. Vas-y toi développer un truc en
assembleur qui appelle les CommonDialog Box... ;O)



Et si en plus il nous le faisait en assembleur dans VB?


non? :-P

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


Guy Detienne wrote:
Salut ;O)

'Faut pas toujours comparer VB à C++. Ce sont deux
langages bien différents dont les objectifs sont tout
aussi différents. C++ sait 'tout faire' et est surtout
orienté système. Savoir tout faire signifie que ce
dernier doit avoir une structure rigoureuse et parfois
complexe, ce que n'est pas, dans l'immédiat, VB.

C'est certain que C++ produira un code vraiment plus
rapide. Mais je te lance le défi de concevoir une
application de gestion dans les mêmes limites de temps
avec C++ qu'avec VB. Et puis, d'un point de vue
apprentissage du langage, je crois qu'il n'y a pas




photo.

Tu parles de rapidité, mais as-tu connu les versions
antérieures de VB (VB3-VB4-VB5) ? Crois-moi, de la
version 3 à la 6, l'amélioration en terme de compilation
est conséquante donc la rapidité à suivi aussi. Et tu
parles de l'assembleur. Vas-y toi développer un truc en
assembleur qui appelle les CommonDialog Box... ;O)

Bonne prog'

Guy DETIENNE

-----Original Message-----

"François Picalausa" a écrit






dans le message de
news:
Bonjour/soir,

Déjà, c'est pas vbDirectory ;-)(je te laisse










cherchez dans les
archives de se ng :p)



Bien sûr que si!
Il teste si ce n'est pas un dossier.. pas si c'est un








dossier!

Décidement, j'aligne les conneries moi, sur se ng :'(.

Bon, c'est décidez, j'arrête la moquette ;-)


?(GetAttr("c:Autoexec.bat") And vbDirectory)=0
Vrai
?(GetAttr("c:Windows") And vbDirectory)=0
Faux

Common.DialogTitle = "Nouveau fichier"
Common.FileName = "Mon fichier(*.xxx)|.xxx"
Common.FilterIndex = 1



Pourquoi passer par le contrôle qui alourdi pour rien?
Par APIs, il y a plusieurs sources permettant








d'éviter le gros
contrôle: http://faq.vb.free.fr/index.php?question



Ba VB n'est pas connue pour sa rapidité, si ont veus






du extra light,
ont peut faire directement du c++(voir de l'assemb.),






mais c'est
vrai que sa n'est pas plus compliquez que le contrôle






a mettre en
oeuvre et c'est plus légée, donc c'est mieux ;-).

a+


.






.



Avatar
Ledev
Oui j'ai testez VB3, et c'est claire que VB6 est plus rapide. Mais ce que je
voulais dire, c'est que sa reste un langage qui ne bat pas des records de
vitesses à exécution, et que si ont veus vraiment une appli légée et
rapide-->C++.
Ainsi, passez par les APIs comme proposait François, peut dans certains cas
s'avérer plus complexe, or les contrôles sont la pour sa, en suivant la
ligné de VB(développement rapide d'application, quitte a ce qu'elle soit
lente a exécution). C'est pourquoi dans mon contrôle j'avais pris le
contrôle, mais il est vrai que en fournissant un exemple de api, elle est
pas si compliquer a mettre en oeuvre(au pire un copier collez en
l'adaptant), donc dans se cas effectivement mieux vaut prendre cette
direction.

a+

PS: Désoler si j'ai heurter a ta sensibilité :O)

"Guy Detienne" a écrit dans le message de
news:08a901c35020$9a2fdf30$
Salut ;O)

'Faut pas toujours comparer VB à C++. Ce sont deux
langages bien différents dont les objectifs sont tout
aussi différents. C++ sait 'tout faire' et est surtout
orienté système. Savoir tout faire signifie que ce
dernier doit avoir une structure rigoureuse et parfois
complexe, ce que n'est pas, dans l'immédiat, VB.

C'est certain que C++ produira un code vraiment plus
rapide. Mais je te lance le défi de concevoir une
application de gestion dans les mêmes limites de temps
avec C++ qu'avec VB. Et puis, d'un point de vue
apprentissage du langage, je crois qu'il n'y a pas photo.

Tu parles de rapidité, mais as-tu connu les versions
antérieures de VB (VB3-VB4-VB5) ? Crois-moi, de la
version 3 à la 6, l'amélioration en terme de compilation
est conséquante donc la rapidité à suivi aussi. Et tu
parles de l'assembleur. Vas-y toi développer un truc en
assembleur qui appelle les CommonDialog Box... ;O)

Bonne prog'

Guy DETIENNE

-----Original Message-----

"François Picalausa" a écrit dans


le message de
news:
Bonjour/soir,

> Déjà, c'est pas vbDirectory ;-)(je te laisse cherchez




dans les
> archives de se ng :p)

Bien sûr que si!
Il teste si ce n'est pas un dossier.. pas si c'est un




dossier!

Décidement, j'aligne les conneries moi, sur se ng :'(.

Bon, c'est décidez, j'arrête la moquette ;-)


?(GetAttr("c:Autoexec.bat") And vbDirectory)=0
Vrai
?(GetAttr("c:Windows") And vbDirectory)=0
Faux

> Common.DialogTitle = "Nouveau fichier"
> Common.FileName = "Mon fichier(*.xxx)|.xxx"
> Common.FilterIndex = 1

Pourquoi passer par le contrôle qui alourdi pour rien?
Par APIs, il y a plusieurs sources permettant d'éviter




le gros contrôle:
http://faq.vb.free.fr/index.php?question



Ba VB n'est pas connue pour sa rapidité, si ont veus du


extra light, ont
peut faire directement du c++(voir de l'assemb.), mais


c'est vrai que sa
n'est pas plus compliquez que le contrôle a mettre en


oeuvre et c'est plus
légée, donc c'est mieux ;-).

a+


.



Avatar
Ledev
"Guy Detienne" a écrit dans le message de
news:08a701c35030$e03f6850$
Et si en plus il nous le faisait en assembleur dans VB?
non? :-P


Alors là, je me fais moine ! ;O)



Si j'ai pas piquer une depression et finit au boût d'une corde avant d'avoir
réussis ;-)