1711626855 Visual Basic - Je demande l' avis du public - Visual Basic 6

Je demande l' avis du public

Fermé
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 - 15 juil. 2006 à 21:26
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 18 juil. 2006 à 09:08
Salut,


Pour savoir si un fichier existe

J'ai proposé le snippet de code suivant:

if dir(fichier) <> "" then MsgBox "existe"


Or, ça ne marche que pour les fichiers normaux. Pour les fichiers
cachés, et système, ça ne marche pas. D'ou la prise en compte de ces
éléments avec:

if dir(fichier,vbNormal+vbHidden+vbSystem)<>"" then msgbox fichier & " existe."



PCPT dit que c'est faux et a supprimé le snippet.

Est-ce que ça ne fonctionne que chez moi ou...?

15 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 juil. 2006 à 22:14
"Je demande l'avis du public", c'est 'qui veut Gagner des Millions' ??

Bon, je viens de faire le test et effectivement si le fichier a l'attribut "caché", PAS DE MSGBOX !

++
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 juil. 2006 à 22:16
if dir(fichier,vbNormal+vbHidden)<>"" then msgbox fichier & " existe."

Hop, j'avais pas mis vbNormal + vbHidden.

CA MARCHE, j'ai bien le message !
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
15 juil. 2006 à 22:48
re!!!

voici la réponse en code

Private Sub Form_Load() 
    Const Fichier As String =  "C:\katsankat_commence_a_me_gaver_apres_tous_nos_MPs.txt" 
    On Error Resume Next 
    Kill Fichier 

'   création du fichier
    Open Fichier For Output As #1 
        Print #1, "Quel intérêt de discuter si c'est pour déformer mes propos!!!!" 
        Print #1, "Attitude puérile, pas grand chose à ajouter...." 
    Close #1 
    Call  SetAttr (Fichier, vbSystem) ' voilà pourquoi (par exemple...)

'   ici TON code que j'avais supprimé
    If Dir(Fichier) <> "" Then 
        MsgBox "Le fichier existe", , "sans d'attribut" 
    Else 
        MsgBox "Le fichier n'est pas trouvé", , "sans d'attribut" 
    End If 

'   ici ma proposition
    If Dir(Fichier, vbHidden Or vbSystem) <> "" Then 
        MsgBox "Le fichier existe", , "avec attributs" 
    Else 
        MsgBox "Le fichier n'est pas trouvé", , "avec attributs" 
    End If 
    Unload Me 
End Sub

<small> Coloration
syntaxique automatique [AFCK]</small>
       

ps : DIR n'est pas reconnu en VBS. même la catégorie est fausse.
enfin bref, si tu te formalises pour çà, y'a vraiment rien à ajouter.

espérons qu'un jour tu postes un snippet qui mérite un remerciement pour ta participation et qui ne se finisse pas en un viel étalage de linge sale...

PCPT   [AFCK]
<hr size ="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 juil. 2006 à 22:56
Ah, VBScript,

C'est pas précisé dans son Topic !
Moi j'ai fait les test en VB6 !

PCPT, j'aime le nom du chemin & commentaires ;-))

Sinon, je confirme ce que dit PCPT :

' ici TON code que j'avais supprimé
If Dir(Fichier) <> "" Then
MsgBox "Le fichier existe", , "sans d'attribut"
Else
MsgBox "Le fichier n'est pas trouvé", , "sans d'attribut"
End If

C'est clair que ce code là ne FONCTIONNE PAS.

katsankat, revoi ta fiche perso :

Langages connus A FOND: C,C++,VB6,Gambas,Javascript,HTML,CSS,AssembleurIntel(FASM,MASM32).

Tu peux supprimer "VB6" !!!!!!!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
15 juil. 2006 à 23:14
Y en a au moins un qui le métrise VB6  (PCPT)
^^
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juil. 2006 à 02:45
Juste pour en remettre une couche (le titre de ton Topic me démange...)
Le public à mal voté, tu as épuisé tes 4 jokers et pour PCPT, je pense que c'est son dernier mot.
Manquerai plus que tu t'appelles Jean-Pierre.

Concernant ton avant dernire phrase, je pense que
   Un Admin dit que c'est faux et a supprimé le snippet.
aurait été plus approprié (même si PCPT n'a rien à se reprocher car il a raison) : c'est plus correct.

Moi, je ne t'en veux pas, je t'explique pour éviter que tu te fasses des énemis.
En tout cas, enterrons la Hache de Guerre et passez tous un bon dimanche !
@ ++<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??> 

      Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
17 juil. 2006 à 11:19
Ahhhh Mortalino le sage... mdr. Juste une question, c'est quoi un 'snippet'?

(Si la réponse vous convient, appuyez sur réponse acceptée...)

Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire<>
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
17 juil. 2006 à 12:33
Salut Tof,

Bah en fait un Snippet c'est ce qu'a fait "PCPT".
C'est ce p'tit bout  de codequ'il a fourni & qui fonctionne !
@ ++<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??> 

      Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 juil. 2006 à 13:42
salut tof008,
en effet "Snippet" c'est "morceau de code". çà correspond à une fonction complète en général.
ces snippets sont fait par la communauté CS et postés sur Codyx.Org (c'est le nom de la mascotte CS )

regarde la page d'accueil, les 5 derniers y sont affichés.
et regarde dans les sources, tu as souvent les snippets qui peuvent être en rapport (sur la droite)

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
17 juil. 2006 à 15:03
C'est malhonnète. Aucun propos n'a été déformé.

Son dernier message finit par "Libre à toi de demander à qui tu veux".

C'est ce que je fais, sans en rajouter, et ça il ne peut pas le nier parce que


les admins qui ont accès aux messages privés savent ce qui s'est dit.


En fait cette histoire de dir() n'était qu'un prétexte pour exprimer sa haine.


Revenons à la ligne de code qui énerve.

Le noter avec Or rend le code plus lisible, mais après compilation le résultat est le même. Ce n'est pas "la" solution ultime.

En effet les constantes sont construites de telle façon que le résultat


de leur addition donne toujours un résultat unique donc clairement
identifiable, c'est pourquoi les constantes sont représentées par les
chiffres


0, 2, 4, et 8. Comme pour le Chmod, c'est un procédé standard et connu. Aussi simple que cohérent et efficace.


Le snippet que je propose pour savoir si un fichier existe avec dir() peut


se noter de plusieurs façons:

If Dir(fichier, vbNormal+vbHidden+vbSystem ) <> "" Then ...

If Dir(fichier, 0 + 2 + 4) <> "" Then ...

If Dir(fichier, 0 Or 2 Or 4) <> "" Then ...

Celui qui a une conscience vérifie ces 3 exe avec un éditeur hexa mais

commence par admettre que la fonction fait son job correctement.


Mais sans pinailler sur les détails,

if dir(fichier) <> "" ...

suffit. C'était ma proposition initiale parce que le titre ne laisse

pas présupposer la prise en compte des autres types que normal. A ce
titre j'espère que les snippets des autres langages ne vont pas remuer
trop de craintes.


Il existe plusieurs façons d'obtenir le même résultat. Accepter les
snippets sur 2 méthodes mais supprimer une troisième pour des raisons
qui n'ont rien à voir avec la technique entre dans le subjectif (un
nouveau racisme).

Hasard, le tout survenant quand tous les admins sont en vacances. Ceux qui

ont ce qui nous manque, l' humilité et la rectitude. Refuser sous
prétexte que, je cite "il y a déjà assez de VB comme ça" alors que
cette troisième méthode ne prend qu'une ligne, c'est injuste.


Reconnaitre ce qui fonctionne est une chose, admettre ses erreurs en
est une autre, et refuser des propositions qui marchent est encore
moins fair-play. Ensuite écrire que les propos ont été déformés là ça
devient carrément malsain. Vu comme c'est parti ce thread aussi sera
supprimé?


Self-control l'ami. Rester courtois pendant les échanges, ça aussi c'est dans le règlement.

Pourrait y figurer aussi, ne pas se laisser guider par sa rancune.


Bonne ambiance et entraide, disait Nix.
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
17 juil. 2006 à 15:05
Merci pour vos réponses mortalino et PCPT! Vous me permettez de me coucher un peu moins bête ce soir! Ca peut toujours servir...!
Thanks you very much!

(Si la réponse vous convient, appuyez sur réponse acceptée...)

Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire<>
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
17 juil. 2006 à 15:10
Ouh la, je vais décocher la case pour suivre la conversation, parce que la c'est la guerre des developpeurs lol!
On se calme ou je vais modérer tout le monde MOI!!!!
MDR!

(Si la réponse vous convient, appuyez sur réponse acceptée...)

Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire<>
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 juil. 2006 à 16:36
nan mais faut vraiment arrêter le délire là!!!



C'est malhonnète. Aucun propos n'a été déformé.

propos déformés :
*tu cries à l'injustice pour un snippet supprimé à tord car fonctionnel :
<hr size= "2" width="100%" />SNIPPET : Savoir si un fichier existe


Modifier - Activer -
SNIPPET REJETE ! ::
Réintéger
=0&cs= 575&type=snip&redircs=%2fsnippet_savoir-si-fichier-existe_65.aspx[javascript:alert('todo'); Ajouter aux favoris][javascript:jnu('' + '/' + 'snippet_vsi_65_575_VB.cs.vsi'); Snippet VS 2005 (VB)]


Langage :


VB6

,
VBA

,
VBScript

Date ajout :
13/07/2006


Posté par katsankat[Liste]

if dir(fichier) <> "" then msgbox "existe"

<hr size="2" width="100%" />
*je dis avoir supprimé un snippet qui était faux! qui plus est j'ai le fairplay tant de t'avertir de cette suppression que de t'indiquer la raison (ré-évoquée sur ce topic)!
(le code traite de savoir si un fichier existe ou non, pas si on peut le savoir dans certain cas. la prog ce n'est pas des lignes de code qui ne sont valable QUE dans certains cas de figures à ne pas prendre à compte...)

propos déformés :
*tu dis ensuite avoir pris en compte les paramètres. tourné de manière à faire penser que j'ai supprimé le Snippet re-réfléchi et modifié  (voir réponse révélatrice de Mortalino).

*voici mon message (le 15/17 à 19h03) :
Message :
salut,
j'ai désactivé ton snippet :
"savoir-si-fichier-existe"
un fichier caché ne sera pas trouvé alors qu'il
existe, donc snippet faux...
remarque il y en a déjà pas mal en VB6
donc....
++ ;)

*ta réponse (19h14) :
Message :
Oui il y en a déjà pas mal mais ils vont chercher compliqué
les snippets. Bonne remarque cependant. Il suffit de modifier en
if
dir(fichier, vbnormal+vbhidden) <> "" then msgbox existe
Salut

*ma suite (19h24) :
Message :
salut,
non il faut mettre tous les enum (ou presque). là
il y aurait le même prob avec archive ou system.
ceux ne sont pas des
codes compliqués, ils sont fonctionnels dans tous les cas de figure.
(... ici une suite faisant référence à un autre snippet, plus ou moins éronné mais laissé intact, expliqué pourquoi..)

*ta suite (20h) :
Message :
(... ici la suite en rapport à l'autre snippet pour dire "mon code est bon" <- tu n'as apparemment survolé ma réponse! rien d'étonnant..)

Enfin la fonction
dir(), pour faire complet:
if dir(fichier,0+2+4+8)<>"" then msgbox
fichier & " existe."
Mais je n' insiste pas, c'est toi le
boss.
Je suis probablement dans le faux en pensant que ces deux lignes de
code sont absolument inutiles et inefficaces. Microsoft n'aurait pas du les
implémenter, puisqu'elles ne parviennent pas à faire ce qu'on leur
demande.
L' intérêt des snippets est de partager la richesse du langage.
Si tu tiens vraiment à supprimer ces snippets je demanderai leur avis aux autres
admins qui ont tous décidé de les valider et de les conserver.

NB : un snippet visible est un snippet qui n'a pas été désactivé, en aucun cas c'est un snippet validé. il en est de même pour les sources, le  forum, etc.... non?!!!
en aucun cas tu as eu la validation de quiconque...
on a bien assez de choses à gérer pour ne pas bondir dur les snippets, sans compter que la philosophie est normalement de poster un code fonctionnel, pas d'afficher son pseudo sur la page d'accueil

*ma suite et fin (20h30) :
Message :
je n'ai supprimé que le permier qui était faux.
le 2e
(app.path) par lui même est vrai, ce que je reproche à çà c'est que si ne
l'utilise pas tel-quel (donc concaténation) sans vérifier le dernier "" (donc
racine ou pas)  alors il y aura une erreur.
le app.path retourné par MS
est bon en soit. c'est l'utilisation derrière qui me gène....
ce n'est pas
pour autant que j'ai touché à ton code.
libre à toi de contacter qui tu
veux....
bonne soirée

ET TU CONTINUES A DéFORMER ET A INVENTER POUR JE NE SAIS QUELLE RAISON!!!

les admins qui ont accès aux messages privés savent ce qui s'est dit
nan mais faut encore arrêter le délire.
d'une si je suis admin c'est qu'il y a déjà la confiance pour ne pas avoir à être chaperonné, surtou pour ce genre d'enfantillage de bas étage.
(nb : je me rend bien compte cependant du ridicule du copier/coller des messages, unique raison pour laquelle ce topic sera supprimé)
de deux : les admins n'ont aucun accès aux messages privés! çà serait une violation de la vie privée des membres, peine répréhensible !!!!
(çà laisse à penser que si tu as un site interactif, je donne peu cher de son fonctionnement....)

En fait cette histoire de dir() n'était qu'un prétexte pour exprimer sa haine

ma haine de quoi? mon café refroidi pendant que je saisie ce message?

If Dir(fichier, vbNormal+vbHidden+vbSystem ) <> "" Then ...
If Dir(fichier, 0 + 2 + 4) <> "" Then ...
If Dir(fichier, 0 Or 2 Or 4) <> "" Then ...

un peu d'explication pour donner une ombre d'intérêt à ce topic

<hr size ="2" width= "100%" />
0+2+4 = 6
2+4 = 6
on ne teste donc pas 0
<hr size="2" width="100%" />on utilise les constantes!!!
effectivement elles sont compilées en valeur, et alors?
msgbox vbnormal çà fait 0, pas "vbnormal"
tu écris en compilé toi? chapeau....
<hr size="2" width="100%" />+ = or ?

oui... binaire :

| 8 | 4 | 2 | 1 |      table
-----------------
| 0 | 0 | 1 | 0 |     < = 2
| 0 | 1 | 0 | 0 |     < = 4

à lire de droite à gauche
+

              0+0=0   < 1=false
          1+0=1       < 2=true
       0+1=1          < 4=true
   0+0=0              < 8=false
on ajoute les true 2+4 6

OR

             0or0=0   < 1 est-ce que une des 2 valeur = true > non = false
          1or0=1      < 2 est-ce que...               = true
       0or1=1         < 4                             = true
    0or0=0            < 8 false
2+4 2 or 4 6
<hr size="2" width="100%" />

A ce titre j'espère que les snippets des autres langages ne vont pas remuer trop de craintes
         
non t'en fais pas, les autres posteurs sont plus civilisés et ont besoin de moins de 42heures de réflexion pour pondre un message ou un code...

Accepter les snippets sur 2 méthodes mais supprimer une troisième pour
des raisons qui n'ont rien à voir avec la technique entre dans le
subjectif (un nouveau racisme)

en règle générale j'accepte les doublons même si certains n'apportent rien. par contre un code faux, sans façon...
"racisme" ? tu compares le bien du mal (bon/mauvais code) avec le mot race? attitude très étrange...
c'est vrai que dans ce monde,  une connection et une simple adresse mail suffisent à laisser une trace sur la toile... je me demande bien ce que tu verras quand tu te retourneras.

Hasard, le tout survenant quand tous les admins sont en vacances

t'en a pas marre d'inventer ta vie? tu es inscrit aux news-letters? si tu les reçois, c'est que quelqu'un les envoi.
le seul en vacances ici, c'est le bocal qui est posé entre tes oreilles

Refuser sous prétexte que, je cite "il y a déjà assez de VB comme ça"
alors que cette troisième méthode ne prend qu'une ligne, c'est injuste.

là voilà encore la déformation de propos . (voir mp au dessus)
code présent plusieurs fois donc il n'y aurait même pas eu de mal si le code était bon. alors là, encore moins de raisons de se plaindre pour cette suppression justifiée. voilà ce que voulait dire cette phrase, suivie de "donc... ++ ;)"

Reconnaitre ce qui fonctionne est une chose, admettre ses erreurs en
est une autre, et refuser des propositions qui marchent est encore
moins fair-play. Ensuite écrire que les propos ont été déformés là ça
devient carrément malsain.
beh tu as reconnu que ton code ne fonctionne pas et j'ai reconnu qu'il méritais une suppression!

Vu comme c'est parti ce thread aussi sera
supprimé?
oui, "VU COMME C'EST PARTI".
une bonne poignée de main, un peu de maturité et c'était réglé...
preuve en est, le topic existe encore!

Self-control l'ami. Rester courtois pendant les échanges, ça aussi c'est dans le règlement.
Pourrait y figurer aussi, ne pas se laisser guider par sa rancune.

justement, relis un peu...
je suis bien le seul a être calme est courtois.
mais rien ne t'oblige de rester si les règles établies ne te conviennent pas.

tu peux même me le demander personnellement, çà sera sans doute avec une larme à l'oeil que je cliquerai sur le bouton Bannir.

pour info, avant la suppression de ce topic, je sauve et transmet aux.. collègues admins.
enfin, à ceux qui ne sont pas en vacances s'ils existent....

ps : désolé pour les fautes, j'ai perdu assez de temps à répondre pour ne pas en perdre encore autant...

<hr size ="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
18 juil. 2006 à 07:50
Plutot exhaustif comme défense... Au moins une demi heure pour écrire le message lol! Il va bientot vous falloir un juge!!!

(Si la réponse vous convient, appuyez sur réponse acceptée...)

Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire<>
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 juil. 2006 à 09:08
JE CLOS CE TOPIC, IL N'A QUE TROP DURE.

La fonction 'dir' est une antiquité contre productive qu'il conviendrait d'oublier. Elle provoque une alloc mémoire (retourne un BSTR encapsulant une chaine VB)  totalement inutile pour ce qui est de vérifier la pésence ou non d'un fichier.
La manière correcte et efficace a été mise par Renfield:
Public Declare Function GetFileAttributes Lib "kernel32.dll" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
If GetFileAttributes(fichier) < 0 Then ABSENT
Marche à tout coup pour fichiers et dossiers quels que soient leurs attributs.

RAPPEL: un snippet doit être un morceau de code fonctionnant toujours.
katsankat > Ta fonction ne satisfait pas au "toujours", PCPT a donc bien fait de désactiver.

Veuillez cesser toute polémique stérile, l'affaire est entendue et ne sera pas débattue.

Fin des hostilités qui n'auraient jamais du commencer.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous
$strftime($(reftime), '%a, %d %b %Y %H:%M:%S %Z') $set_response_code(304,'') $add_header('X-Cache-Esi-Debug', 'Not modified') $add_header('X-Cache-Esi-Debug', 'Forwarded') $add_header('Last-Modified', $(lmt))