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

VB 6 et antérieur Discussion :

Message d'erreur avec la procédure InStr


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de Subkill
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 174
    Points : 124
    Points
    124
    Par défaut Message d'erreur avec la procédure InStr
    Bonjour,

    J'ai un message d'erreur avec la procédure InStr, chose que je n'avais pas avant. Le programme a été modifié, mais pas à cette endroit.

    Voiçi mon code: (chainef = <p><font size="3" face="Arial"><b>REGLEMENT #95</b></font></p>)
    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
    'Vérifier l'existence d'un tableau champ (voir si balise <FIN> existe)
       PosFin = InStr(1, chainef, "<FIN>")
       If PosFin > 0 Then
          PosDeb = PosFin + 5
       Else
          PosDeb = InStr(1, chainef, "<Body")        ' Trouver la position de la balise <Body
          If PosDeb = 0 Then
            PosDeb = InStr(1, chainef, "<body")      ' ou <body
          End If
          If PosDeb = 0 Then
            PosDeb = InStr(1, chainef, "<BODY")      ' ou <BODY
          End If
          PosDeb = InStr(PosDeb, chainef, ">") + 1   ' Trouver la position juste après la fin de la balise <Body ...>
     
       End If
    Là où ça "bug" c'est à la dernière utilisation du InStr:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PosDeb = InStr(PosDeb, chainef, ">") + 1   ' Trouver la position juste après la fin de la balise <Body ...>
    Quand je met mon curseur au-dessus de InStr, j'ai le message suivant:
    "Argument ou appel de la procédure incorrect"

    Pourtant
    PosDeb est un long = 0
    chainef est un string = <p><font size="3" face="Arial"><b>REGLEMENT #95</b></font></p>
    Alors InStr devrait me retourner 3, mais ce n'est pas le cas...je ne comprends pas pourquoi

    Quelqu'un connait se problème?

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 096
    Points : 16 606
    Points
    16 606
    Par défaut
    Peux tu nous donner le texte entier ou tu fais cette recherche, (perso je ne connaisais pas encore la balise <FIN>), mais je connais pas trop mal la façon d'utiler la fonction InStr
    La preuve,
    subkill, Inscrit le mardi 24 octobre 2006, Total message: 96, discussions ouvertes: 23, Nbr.de TAGs utilisés: 18, moyenne: 78/100, ma partitipation jusqua ce post: 18
    J'aime bien les forumeurs qui utilise les tags,
    Extrait des pages de DVPs(forum VB6) a l'instant

  3. #3
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 096
    Points : 16 606
    Points
    16 606
    Par défaut
    si aucun des Bodys n'a été trouvée, PosDeb = 0, ta derniere recherche commence donc par zero, alors que le Start de la fonction InStr doit commencer au moins par 1.

  4. #4
    Membre régulier Avatar de Subkill
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 174
    Points : 124
    Points
    124
    Par défaut
    Je vais te donner le texte au complet. Mais avant j'aimerais mieux te dire qu'il ne contient pas la balise <FIN> ou <body> ou <Body>. (La balise <FIN> n'est pas une balise reconnu par le html, mais utilisée à des fins pratiques pour l'application).

    Voiçi le texte complet:
    <div align="center">
    <p><font size="3" face="Arial"><b>REGLEMENT #95</b></font></p>
    <p><font size="3" face="Arial"><b>abrogeant le r&egrave;glement #91 et modifiant le r&egrave;glement #86</b></font></p>
    </div>
    <p align="Justify"><font size="3" face="Arial">ATTENDU que la MRC de B&eacute;cancour a adopt&eacute; le r&egrave;glement #91 modifiant r&egrave;glement 486 modifiant le sch&eacute;ma d'am&eacute;nagement;</font></p>
    <p align="Justify"><font size="3" face="Arial">ATTENDU que le r&egrave;glement #91 d&eacute;coule de l'avis du ministre en vertu l'article 27 de la L.A.U.;</font></p>
    <p align="Justify"><font size="3" face="Arial">ATTENDU que&nbsp;le ministre de l'Agriculture, des&nbsp;P&ecirc;cheries et l'Alimentation du Qu&eacute;bec consid&egrave;re non conforme la d&eacute;limitation de certains p&eacute;rim&egrave;tres d'urbanisation;</font></p>
    <p align="Justify"><font size="3" face="Arial">ATTENDU que la MAPAQ interpr&egrave;te de fa&ccedil;on stricte l'article 69,4 de la Loi sur la protection du territoire agricole;</font></p>
    <p align="Justify"><font size="3" face="Arial">ATTENDU que la MRC de B&eacute;cancour ne partage pas l'opinion du MAPAQ;</font></p>
    <p align="Justify"><font size="3" face="Arial">ATTENDU que l'interpr&eacute;tation stricte de l'article 69,4 de la Lois sur la protection du territoire agricole va &agrave; l'encontre d'un am&eacute;nagement rationnel territoire;</font></p>
    <p align="Justify"><font size="3" face="Arial">ATTENDU qu'il s'av&egrave;re toutefois n&eacute;cessaire que certaines modifications apport&eacute;es au sch&eacute;ma d'am&eacute;nagement entrent en vigueur;</font></p>
    <p align="Justify"><font size="3" face="Arial">ATTENDU que cette entr&eacute;e en vigueur permettra &agrave; certaines municipalit&eacute;s de finaliser leur plan et r&eacute;glementation d'urbanisme;</font></p>
    <p align="Justify"><font size="3" face="Arial">ATTENDU qu'avis de motion a &eacute;t&eacute; l&eacute;galement donn&eacute; par courrier recommand&eacute; en vertu de l'article 445 du Code municipal;</font></p>
    <p align="Justify"><font size="3" face="Arial">EN CONS&Eacute;QUENCE,</font></p>
    <p align="Justify"><font size="3" face="Arial">UR PROPOSITION DE Monsieur Emilien Caron<br>
    APPUYEE PAR Monsieur Jean-Louis Th&eacute;or&euml;t</font></p>
    <p align="Justify"><font size="3" face="Arial">IL EST RESOLU UNANIMEMENT que soit adopt&eacute; le pr&eacute;sent r&egrave;glement, qu'il porte le num&eacute;ro 95 sous le titre de &quot;R&egrave;glement abrogeant le r&egrave;glement #91 et modifiant le r&egrave;glement #86 et qu'il soit statu&eacute; ce qui suit:</font></p>
    <p align="Justify"><font size="3" face="Arial"><u>Article 1&nbsp;R&egrave;glement</u></font></p>
    <p align="Justify"><font size="3" face="Arial">Le pr&eacute;sent r&egrave;glement abroge &agrave; toutes fins que de droit le r&egrave;glement #91 modifiant le r&egrave;glement #86 modifiant le sch&eacute;ma d'am&eacute;nagement.</font></p>
    <p align="Justify"><font size="3" face="Arial"><u><a name="95a.2"></a><a href="/Sigat/Html/Sad/Sad/A_jour/r380_1saj_sad.htm#95a.2">Article 2</a>&nbsp;R&egrave;glement #86 - article 4</u></font></p>
    <p align="Justify"><font size="3" face="Arial">L'article 5 du r&egrave;glement #86 est modifi&eacute; et remplac&eacute; par ce qui suit:</font></p>
    <p align="Justify"><font size="3" face="Arial">Le sch&eacute;ma d'am&eacute;nagement est<sup> </sup>modifi&eacute; par l'ajout d'un article 27.2.10.</font></p>
    <p align="Justify"><font size="3" face="Arial">27.2.10 Consid&eacute;rer conforme au sch&eacute;ma, l'extension du milieu urbain, &agrave; l'ext&eacute;rieur du p&eacute;rim&egrave;tre d'urbanisation, sur des terrains ou lot directement adjacents au p&eacute;rim&egrave;tre d'urbanisation et qui ont fait l'objet d'Une exclusion ou d'une autorisation de la part de la Commission de protection du territoire agricole.</font></p>
    <p align="Justify"><font size="3" face="Arial"><u>Article 3&nbsp;R&egrave;glement #86 - article 14</u></font></p>
    <p align="Justify"><font size="3" face="Arial">L'article 14 (p&eacute;rim&egrave;tres d'urbanisation) du r&egrave;glement #86 est abrog&eacute;.</font></p>
    <p align="Justify"><font size="3" face="Arial"><u>Article 4&nbsp;R&egrave;glement #86 - plans</u></font></p>
    <p align="Justify"><font size="3" face="Arial">Les p&eacute;rim&egrave;tres d'urbanisation des municipalit&eacute;s de Deschaillons sur St-Laurent, Fortierville, </font><font size="3" face="Arial">Lemieux, Manseau, Parisville, Ste-C&eacute;cile de L&eacute;vrard, Ste-Fran&ccedil;oise, Ste-Marie de Blandford, St-Pierre les Becquets, Ste-Sophie de L&eacute;vrard, St-Sylv&egrave;re et ville de B&eacute;cancour (secteur B&eacute;cancour, secteur Gentilly, secteur Pr&eacute;cieux-Sang, secteur Ste-Ang&egrave;le de Laval, secteur Ste-Gertrude, secteur St-Gr&eacute;goire, Plateau Laval et Seigneurie Godefroy) apparaissant en annexe du r&egrave;glement #86 sont abrog&eacute;s.</font></p>
    <p align="Justify"><font size="3" face="Arial"><u>Article 5&nbsp;Entr&eacute;e en vigueur</u></font></p>
    <p align="Justify"><font size="3" face="Arial">Le pr&eacute;sent r&egrave;glement entrera en vigueur conform&eacute;ment &agrave; la loi.</font></p>
    <p align="Justify"><font size="3" face="Arial">ADOPTE CE 27 FEVRIER 1991.</font></p>
    <p align="Justify"><font size="3" face="Arial">COPIE CERTIFIEE CONFORME AU LIVRE DES REGLEMENTS</font></p>
    <p align="Justify"><font size="3" face="Arial">Donn&eacute;e &agrave; Gentilly, ce 20</font><font size="2" face="Arial"><sup>i&egrave;me</sup></font><font size="3" face="Arial"> jour de f&eacute;vrier 1991.</font></p>
    <p align="Justify"><font size="3" face="Arial">Laval Dubois<br>
    Secr&eacute;taire-tr&eacute;sorier<br>
    </font><font size="3" face="Arial">MRC de B&eacute;cancour</font></p>

  5. #5
    Membre régulier Avatar de Subkill
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 174
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par ProgElecT
    si aucun des Bodys n'a été trouvée, PosDeb = 0, ta derniere recherche commence donc par zero, alors que le Start de la fonction InStr doit commencer au moins par 1.

    Ah voilà le problème surement!

    Merci

  6. #6
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Pour eviter de chercher toute les combinaisons de "Body" possible, tu peux faire ta recherche en mettant tout en majuscule par exemple :

    PosDeb = InStr(1, Ucase(chainef), "<BODY")

  7. #7
    Membre régulier Avatar de Subkill
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 174
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par OhMonBato
    Pour eviter de chercher toute les combinaisons de "Body" possible, tu peux faire ta recherche en mettant tout en majuscule par exemple :

    PosDeb = InStr(1, Ucase(chainef), "<BODY")

    Effectivement, moi je travaille sur la résolution de problème, pis je peux vous dire que le programme au complet est codé en broche à foin! Faudrait que je retappe le code au complet, alors merci de l'idée, mais je ne fais que règler les problèmes, je ne suis pas là pour optimiser le code!


    Merci encore

    Subkill qui est tanné de travailler sur des projets mals foutus!

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

Discussions similaires

  1. [PEAR][MDB2] Erreur avec une procédure stockée
    Par mikedavem dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 04/01/2007, 16h49
  2. les messages d'erreurs avec "yacc/bison"
    Par minirop dans le forum C
    Réponses: 6
    Dernier message: 20/12/2006, 18h17
  3. message d'erreur avec le Run Time Access 2003
    Par barbu44 dans le forum Runtime
    Réponses: 3
    Dernier message: 10/12/2006, 14h03
  4. message d'erreur avec borland c++
    Par sally042 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 06/12/2006, 15h41
  5. Message d'erreur avec Bulk Insert
    Par Shivas dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 18/07/2005, 12h03

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