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

 Delphi Discussion :

Comprendre ce code


Sujet :

Delphi

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut Comprendre ce code
    Bonjour !

    Je suis en terminale S et en option ISN (Informatique et Sciences du Numérique), nous apprenons à manipuler Delphi. Je faisait donc des recherches sur les flux RSS et sur tombé sur cet article ma foi très intéressant ! J'ai téléchargé le code qu'ils proposent, le test et miracle : il marche ! Il affiche bien les derniers articles des blogs, sites... Mais maintenant que j'ai vu qu'il fonctionne, j'aimerais bien le comprendre, savoir comment il marche, quel est le rôle de chaque instruction. Malheureusement, il y a certaines choses que je ne comprend pas et je voulais donc vous demander votre aide pour, s'il vous plaît, commenter le code (vous pouvez directement commenter le code en ligne).

    Merci d'avance pour ceux qui voudront bien m'aider !

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    tu apprends quoi exactement sur Delphi ? car dans ces 80 lignes de code, il n'y a rien de particulier si ce n'est l'usage de deux quelques objets spécifiques.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    tu apprends quoi exactement sur Delphi ?
    Bah, rien de tellement poussé ; en 3 mois (de 2h/semaine) on a vu les bases : variables, les principaux objets, les boucles, les conditions....ce genre de choses ^^
    C'est pour ça que je voulais savoir si on pouvait me commenter quelques lignes, les plus importantes au moins (du genre // cette fonction fait telle chose avec telle variable ou //si telle condition n'est pas remplie, telle variable prend telle valeur)

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 694
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Ce code est... très mauvais !

    • Il fonctionnera sans doute sous XP mais a toutes les chances de planter sous Vista+ si l'application se trouve dans un répertoire protégé. Il faudrait s'assurer de télécharger ce fichier temporaire... dans le répertoire temporaire (et cela n'a rien à voir avec Delphi).
    • Dans DownloadURLFile, le bloc finally est inutile puisque l'éventuelle exception est gérée avant.
    • IncludeTrailingPathDelimiter est inutile, ExtractFilePath conserve le dernier "\".
    • ExecuteTarget semble générer une exception qui est interceptée pour renvoyer un booléen. Ce booléen est alors utilisé pour générer... une exception ! Totalement illogique. Autant renvoyer le message original plutôt qu'en inventer un (l'erreur pouvant aussi être un manque de ressource ou de droits en écriture sur le répertoire local).
    • Les deux Screen.Cursor:=crDefault sont inutiles puisque le curseur est de toute façon réinitialisé à la fin de la procédure.
    • Un Exit après un Raise ne sera jamais exécuté.
    • Sans parler de toutes ces variables inutiles (ex. StartItemNode) qui ne font qu'alourdir le code sans autre intérêt.


    Bref, il y a encore certainement des notions que tu n'as pas vu (gestion des exceptions) mais commenter ce code en l'état n'a pas grand intérêt

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Ah...je vois
    Penses-tu qu'il serait possible de commenter une amélioration de ce code, enfin je veux dire, que je puisse comprendre un version dans laquelle seraient virés tous les trucs inutiles, de manière à ce qu'il soit propre et apte aux méthodes actuelles ? C'est vraiment dommage, je me faisait une joie de comprendre avec Delphi comment fonctionnaient les lecteurs RSS

  6. #6
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par Kamel38 Voir le message
    Ah...je vois
    Penses-tu qu'il serait possible de commenter une amélioration de ce code, enfin je veux dire, que je puisse comprendre un version dans laquelle seraient virés tous les trucs inutiles, de manière à ce qu'il soit propre et apte aux méthodes actuelles ? C'est vraiment dommage, je me faisait une joie de comprendre avec Delphi comment fonctionnaient les lecteurs RSS
    un lecteur RSS se contente de lire un fichier XML, ça n'a pas grand chose à voir avec Delphi en particulier.

    le code exemple utilise un composant pour télécharger un fichier et un autre pour lire le XML, il n'y a rien à comprendre là dedans.

    la seule chose réellement en rapport avec Dephi c'est l'usage d'un TreeView, mais ce qui n'est qu'une façon de présenter un flux RSS

    XML en Delphi
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Oui, mais en réalité je voulais comprendre comment cela marchais avec Delphi, avec un outil que j'utilise en cours. Je voulais connaître un algorithme qui permette de lire ces fichiers XML

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par Kamel38 Voir le message
    Oui, mais en réalité je voulais comprendre comment cela marchais avec Delphi, avec un outil que j'utilise en cours. Je voulais connaître un algorithme qui permette de lire ces fichiers XML
    le code que tu donnes utilise un composant tout fait, il n'y a donc aucun algorithme à étudier là dedans

    Chaîne de caractères
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  9. #9
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Est-il possible, à partir de ce code, de créer un lecteur RSS pour Android avec FireMonkey ?

  10. #10
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Est-il possible, à partir de ce code, de créer un lecteur RSS pour Android avec FireMonkey ?
    Avec ce code non car tu a des fonctions qui sont propres à MS-Windows et d'autre part l'unité ExtActns est développé pour la VCL donc pour MS-Windows

    Tu peux t'en inspirer mais à mon avis tu devra avoir déjà un bon niveau en Delphi pour attaquer ce sujet.

    Cordialement

  11. #11
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    le TXMLDocument est cross Platform

    Conseil : Pour utiliser TXMLDocument dans les applications Mac OS X ou mobiles, définissez la propriété DOMVendor de l'inspecteur d'objets sur ADOM XML v4 juste après avoir déposé ce composant sur le concepteur de fiches. Sinon, le composant TXMLDocument ne peut plus être utilisé pour les applications iOS/Android/OSX.
    Pour le fichier, voir si un composant Indy tel que TIdHTTP permet de télécharger un fichier depuis une URL
    Normalement, oui, tu obtiendras un Stream et le TXMLDocument peut directer utiliser un TMemoryStream
    l'avantage du TMemoryStream c'est que tu n'utilises pas de fichier donc pas de soucis avec cela !
    l'inconvénient, c'est que cela consomme de la RAM sur un mobile, j'ai aucune idée de combien on dispose de RAM utilisable

    Supprimes toutes unités qui commence par VCL. et compile, tu auras un tas d'erreur de compilation
    Comme il a été dit "ExtActns" c'est en réalité "Vcl.ExtActns"
    Quand on reprend du vieux code, il faut faire attention aux nouveaux namespaces System, VCL, FMX, Data, ...
    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

Discussions similaires

  1. Besoin d aide pour comprendre un code
    Par litlebasic dans le forum Delphi
    Réponses: 4
    Dernier message: 22/06/2006, 13h00
  2. Réponses: 6
    Dernier message: 18/06/2006, 00h22
  3. Aide pour comprendre un code
    Par Spacy_green dans le forum Assembleur
    Réponses: 2
    Dernier message: 13/02/2006, 13h22
  4. Aide pour comprendre le code
    Par jfreuff dans le forum Assembleur
    Réponses: 2
    Dernier message: 31/01/2006, 17h54
  5. Comprendre un code asm relatif aux bitmaps
    Par sorry60 dans le forum Assembleur
    Réponses: 8
    Dernier message: 20/04/2005, 21h31

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