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

C++Builder Discussion :

NMHTTP prob de rapidité


Sujet :

C++Builder

  1. #1
    Membre régulier Avatar de Goldocrack
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 126
    Points : 112
    Points
    112
    Par défaut NMHTTP prob de rapidité
    Salut et merci pour cette entre-aide mutuelle.

    J'ai fait un petit prog pour tester si une page existe à l'adresse indiqué.
    La page à chercher est un chiffre / nombre + .html
    Je récupère donc le header de la page est si le header est vide la page n'existe pas.

    Jusqu'à la aucun problème, mais là où ça se corse c'est que quand je teste le programme (hors compilateur ou en compilateur ne change rien) le moindre mouvement de l'ordi (faut comprendre dès qu'on bouge la souris ou que l'écran de veille apparaît) le programme plante.

    Bien sur on pourra ne rien toucher et tout désactiver mais le problème apparaît de lui même un peu plus tard dans le temps.

    Le problème vient du module "NMFAST50.bpl".

    Merci de m'aider. Je donne le code pour une meilleure compréhension.
    Il faut juste ajouter un BitButton, un NMHTTP et un Memo en laissant les noms par défaut.


    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    void __fastcall TForm1::BitBtn1Click(TObject *Sender)
    {
    test = 1000;
    NMHTTP1->Disconnect();
     
    go();
    }
    //---------------------------------------------------------------------------
     
     
     
    void __fastcall TForm1::NMHTTP1Success(CmdType Cmd)
    {
    if (NMHTTP1->Header == "")
    {
      NMHTTP1->Disconnect();
      Memo1->Lines->Add(AnsiString(test));
      go();
    }
    else
    {
      ShowMessage("Youpi le code est : "+AnsiString(test));
      NMHTTP1->Disconnect();
    }
     
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::NMHTTP1Failure(CmdType Cmd)
    {
    NMHTTP1->Disconnect();
    go();
    }
    //---------------------------------------------------------------------------
     
    void TForm1::go()
    {
    test--;
     
    NMHTTP1->Get("http://membres.lycos.fr/jeanpaulpot/jorkenpeteurfou/0"+AnsiString(test)+".htm");
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
    {
    NMHTTP1->Disconnect();
    }
    //---------------------------------------------------------------------------
    Merci de votre aide !!!



    EDITION LE MEME JOUR :
    Je sais que ce programme peut servir comme prog de hackage mais ce n'est pas du tout dans ce but. Je m'explique : mon pote m'a mis au défi de trouver son code contenu dans la page dont l'adresse est marqué dans la source ci-dessus.
    Mailez-le si vous ne me croyez pas ! (adresse sur le site www.jorkenpeteurfou.fr.st)

    Re-Merci !
    • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
    • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
    • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.


    et ne sont pas des options...

  2. #2
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    Salut,

    je viens de tester ton code et j'ai remarqué que ca me renvoit par défaut le header de lycos dès qu'il commence à faire ses recherches !!
    chais pas si j'ai oublié kelke chose mais c'est ce que j'ai. Et donc du coup il s'arrete dans ses recherches à la premiere valeur de ta variable <B>test</B> et me dit tout de suite "Youpi le code est xx" !!!
    "Don't think you are, know you are..." (Morpheus)

  3. #3
    Membre habitué
    Avatar de Freeze
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 131
    Points : 162
    Points
    162
    Par défaut
    j'ai jamais essayé... mais regarde dans l'aide de la méthode de ton objet Get()... elle est pas mal faite... et ca a pas l'air aussi simple que le code que tu fournis !!!!!!!!!!!!!! Bonne chance et tiens nous au courant !!!!

  4. #4
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    Je sais maintenant pkoi le header n'est pas null même si la page choisie n'existe pas. Eh bien tout simplement parce que lycos redirige la requete vers une dite page "http://www.multimania.lycos.fr/error/404.phtml\r\n" et donc du coup le header n'est jamais null.

    Je pense qu'il faudrait tester autre chose. Chui en train de chercher...
    "Don't think you are, know you are..." (Morpheus)

  5. #5
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    j'ai trouvé le code !! essayes 25
    "Don't think you are, know you are..." (Morpheus)

  6. #6
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    En fait le 25 était un piège !! le vrai code est 709 !!!
    "Don't think you are, know you are..." (Morpheus)

  7. #7
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    Ce que j'ai oublié de dire c'est comment j'ai fais. en fait il suffit de rajouter un booléen dans l'evenement OnRedirect pour tester à chaque fois si on est été redirigé ou non, et le tour est joué !!
    ainsi le code sera le suivant !
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    //---------------------------------------------------------------------------
    void __fastcall TForm1::NMHTTP1Redirect(bool &Handled)
    {
    	redirect = true;
    }
    //---------------------------------------------------------------------------
     
    //---------------------------------------------------------------------------
    void __fastcall TForm1::NMHTTP1Success(CmdType Cmd)
    {
    if (NMHTTP1->Header == "" || redirect == true)
    {
      NMHTTP1->Disconnect();
      Memo1->Lines->Add(AnsiString(test));
      go();
    }
    else
    {
      ShowMessage("Youpi le code est : "+AnsiString(test));
      NMHTTP1->Disconnect();
    }
     
    }
    //---------------------------------------------------------------------------
     
    void TForm1::go()
    {
    test++;
    redirect = false;
     
    etc.
    //---------------------------------------------------------------------------
    Voilà voilà
    "Don't think you are, know you are..." (Morpheus)

  8. #8
    Membre régulier Avatar de Goldocrack
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 126
    Points : 112
    Points
    112
    Par défaut Merci
    Merci à tous pour avoir cherché une réponse.
    Bonne continuation à tous dans ce forum et VIVE L'ENTRAIDE !!!
    • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
    • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
    • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.


    et ne sont pas des options...

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

Discussions similaires

  1. De la rapidité du code
    Par jfloviou dans le forum Contribuez
    Réponses: 233
    Dernier message: 29/05/2009, 02h17
  2. Prob, images, Panels, et form.
    Par CaptainChoc dans le forum Composants VCL
    Réponses: 2
    Dernier message: 10/05/2003, 10h08
  3. Rapidite enregistrement
    Par mika dans le forum Débuter
    Réponses: 9
    Dernier message: 25/04/2003, 15h15
  4. Thread probs avec WaitFor()
    Par pixelrock dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/11/2002, 09h40
  5. [Kylix] prob listview
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 22/10/2002, 21h37

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