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

Web & réseau Delphi Discussion :

Vérifier l'existence d'image


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    379
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 379
    Par défaut Vérifier l'existence d'image
    Bonjour,
    Je récupère l'administration d'un vieux site qui référençaient des images sur le net. Je voudrais balayer cette liste pour vérifier l'existence des images référencées afin de supprimer les liens morts.

    Comme la programmation web et réseau, ce n'est pas trop mon fort, je viens demander quelques conseils sur la marche à suivre.
    J'ai un vieux Delphi 7 à disposition.

    De prime abord, je pensais balayer la liste et utiliser un WebBrowser pour tester chaque URL, puis vérifier la présence du '<IMG SRC' qui va bien dans le HTML récupéré afin de valider ou pas chaque lien. D'un côté, je me dis que c'est un peu usine à gaz et que cela risque d'être long (il y a des dizaines de milliers d'url à tester), mais au moins ce n'est pas compliqué.

    Quelqu'un préconiserait-il une autre méthode et si oui, laquelle ?

    Serait-ce suffisant d'isoler les erreurs 403 et 404 ? (dans ce cas, je fais comment ?)

    La complexité ne me dérange pas du moment que cela fait gagner du temps
    Merci d'avance pour vos suggestions

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 096
    Par défaut
    Comment télécharger un fichier en Http sans utiliser Indy ?

    InternetOpenURL devrait te fournir les codes d'erreur comme FILE_NOT_FOUND en cas de result NULL
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    379
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 379
    Par défaut
    Merci pour la réponse, j'ai essayé déjà deux méthodes : celle que j'avais émise dans le premier post...et une seconde basée sur tes infos (hormis que je ne veux pas télécharger les fichiers)...j'ai donc ajouté un test de page avec HttpQueryInfo et cela semble bien marcher...La seconde solution est bien plus rapide. Je laisse encore le sujet ouvert au cas où il y aurait meilleure proposition, mais il est d'ores et déjà résolu pour ma part. J'attends jusqu'à ce soir, et à défaut de mieux, j'ajoute le flag "Résolu".

    Merci encore.

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 096
    Par défaut
    Citation Envoyé par Unusual Voir le message
    hormis que je ne veux pas télécharger les fichiers)...j'ai donc ajouté un test de page avec HttpQueryInfo
    Pour ne pas télécharger, il suffit de ne pas utiliser InternetReadFile

    Avant même d'utiliser HttpQueryInfo
    Vérifie le retour de InternetOpenURL, si nil, utilise GetLastError
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    379
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 379
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Pour ne pas télécharger, il suffit de ne pas utiliser InternetReadFile

    Avant même d'utiliser HttpQueryInfo
    Vérifie le retour de InternetOpenURL, si nil, utilise GetLastError
    C'est ce que j'avais fait ! mais merci de la précision

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/04/2014, 11h50
  2. Comment vérifier l'existence d'un répertoire ?
    Par Sydaze dans le forum Débuter
    Réponses: 2
    Dernier message: 30/06/2005, 11h34
  3. Réponses: 3
    Dernier message: 05/04/2005, 14h36
  4. Réponses: 3
    Dernier message: 24/06/2004, 11h23
  5. Vérifier l'existence d'un répertoire
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 4
    Dernier message: 24/06/2004, 11h13

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