PROC DE RECHERCHE

cobra84 Messages postés 42 Date d'inscription dimanche 26 août 2001 Statut Membre Dernière intervention 13 août 2007 - 5 août 2002 à 14:38
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 - 7 janv. 2005 à 15:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/4220-proc-de-recherche

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
7 janv. 2005 à 15:22
Rebonjour !
Bon en fait pas besoin de la Mise A Jour par contre je voudrais bien un commentaire de tes 2 fonctions pour que je puisse comprendre comment la source marche
(je suis un etudiant ;O) )
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
6 janv. 2005 à 10:51
Salut !
J ai trouvé ta source sympa et je voudrais l' incorporer dans la mienne qui sera en fait un client serveur via winsock .Je voudrais savoir si il serait possible que tu rajoutes la MAJ afin de creer un .mdb avec les resultats de la recherche
Merci
cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010
5 août 2002 à 17:05
Tu as tout à fait raison en ce qui concerne le type de donnée Variant et cette grossièreté est totalement volontaire d'ailleurs tu remarqueras que je ne déclare aucune variable malgré la possibilité de forcer cette déclaration avec Option Explicit mais ce code est fait pour faire réagir. En ce qui concerne FreeFile je ne suis pas d'accord pour cet exemple car le fichier ouvert est immédiatement fermé après traitement et donc libère l'ID par contre dans le cadre d'une ouverture multiple de fichier sans synchronisation il est vrai qu'il faut attribuer les ID suivant leurs disponibilités.
Je te remercie pour ces précisions qui feront avancer des débutants dans la philosophie de programmation. C'est exactement les réaction que j'attendais sur ce code.
Encore merci et bonne prog
A+ ;-)#
cobra84 Messages postés 42 Date d'inscription dimanche 26 août 2001 Statut Membre Dernière intervention 13 août 2007
5 août 2002 à 14:38
Voici quelques améliorations que tu pourrais apporter:

=> Utilise la fonction FreeFile, elle permet de renvoyer un Id libre, cela permet d'eviter les conflits d'ID.
Voici la fonction corrigée:

Function NbrLigne(Fichier As String)

On Error Resume Next
Dim FileID as Long
FileID=FreeFile
NbrLigne = -1

Open Fichier For Input As #FileID
If Err = 0 Then
While Not EOF(FileID)
Line Input #FileID, a
NbrLigne = NbrLigne + 1
Wend
End If
Close #FileID
End Function



=> N'utilise pas les type Variant, ils sont codés sur 32 bits et ralentissent le traitement. Bien entendu, tu n'as pas besoin d'une "super optimisation" pour ce code, mais prend l'habitude d'optimiser ton code dés le début ;-). Utilise plutot le type String.


=>Remplace "On Error Resume Next" par "On Error Goto Error_Handle" où Error_Hande est une étiquette. Ainsi, tu pourra créer une gestion d'erreurs plus fiable, en analysant tous les cas d'erreurs possible.


Voila, je pense avoir tout dit ;-)
Aller @+ et bonne prog!
Rejoignez-nous