none
Récupérer une ligne de code particulière d'un site RRS feed

  • Question

  • Bonjour tout le monde, j'ai commencé le développement d'un fichier qui est presque fini mais j'ai un problème au niveau de mes connaissances... J'ai crée un logiciel qui permet de télécharger des packs de cartes mais le lien change pour chaque personne, donc j'aimerais récupérer le lien de téléchargement et prendre que le code qui change pour chaque utilisateurs, si vous n'avez pas compris j'essaye de récupérer cette ligne https://osu.yas-online.net/fetch/567cba3e8591e54dc4bef577b23fb0302724b4cc-p-1-360.rar (seul la partie entre le /fetch/ et le -p-1-p, c'est à dire le long code et il change pour chaque utilisateur) qui se trouve sur ce lien https://osu.yas-online.net/p#360.

    Merci d'avance, cordialement Syze.

    mercredi 25 juin 2014 17:55

Réponses

  • Bonjour,

    J'ai déjà voté pour la réponse de Kévin qui est la plus propre en terme de recherche dans une chaîne, notamment lorsqu'on considère que  les Regex peuvent être compilées et offrent des fonctionnalités très poussées de recherche. C'est donc un domaine indispensable à creuser^^.

    Maintenant je vous indique en guise d'information les instructions suivantes, généralement plus compréhensible pour un débutant puisqu'elles effectuent un travail directement sur les chaines. Elles sont par ailleurs légèrement plus rapide (à un niveau infime, en deçà de la milliseconde) .

    string str = "https://osu.yas-online.net/fetch/567cba3e8591e54dc4bef577b23fb0302724b4cc-p-1-360.rar";
    string prefix = str.Substring("https://osu.yas-online.net/fetch/".Length) ;
    string  result = prefix.Substring(0, prefix.Length - "-p-1-360.rar".Length);

    Le principe est très simple. Dans prefix, on récupère le contenu de la chaine après "fetch/".

    Puis dans result, on récupère le contenu de prefix... sans "-p-1-360.rar" :-)

    Bien cordialement,

    Fabrice JEAN-FRANCOIS

    • Proposé comme réponse BEAUGRAND Kevin jeudi 26 juin 2014 15:40
    • Marqué comme réponse Aurel Bera lundi 7 juillet 2014 11:40
    jeudi 26 juin 2014 15:21

Toutes les réponses

  • Bonjour,

    Pour extraire une chaine de caractères depuis cette url, je vous conseil d'utiliser des expressions régulières.

    Ex :

    var regex = new Regex(@"(https:\/\/osu.yas-online.net\/fetch\/)|(-p-1-360.rar)");
    var result = regex.Replace(@"https://osu.yas-online.net/fetch/567cba3e8591e54dc4bef577b23fb0302724b4cc-p-1-360.rar", "");

    Cordialement,


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    • Proposé comme réponse PhGr_ jeudi 26 juin 2014 15:25
    jeudi 26 juin 2014 07:39
  • Bonjour,

    J'ai déjà voté pour la réponse de Kévin qui est la plus propre en terme de recherche dans une chaîne, notamment lorsqu'on considère que  les Regex peuvent être compilées et offrent des fonctionnalités très poussées de recherche. C'est donc un domaine indispensable à creuser^^.

    Maintenant je vous indique en guise d'information les instructions suivantes, généralement plus compréhensible pour un débutant puisqu'elles effectuent un travail directement sur les chaines. Elles sont par ailleurs légèrement plus rapide (à un niveau infime, en deçà de la milliseconde) .

    string str = "https://osu.yas-online.net/fetch/567cba3e8591e54dc4bef577b23fb0302724b4cc-p-1-360.rar";
    string prefix = str.Substring("https://osu.yas-online.net/fetch/".Length) ;
    string  result = prefix.Substring(0, prefix.Length - "-p-1-360.rar".Length);

    Le principe est très simple. Dans prefix, on récupère le contenu de la chaine après "fetch/".

    Puis dans result, on récupère le contenu de prefix... sans "-p-1-360.rar" :-)

    Bien cordialement,

    Fabrice JEAN-FRANCOIS

    • Proposé comme réponse BEAUGRAND Kevin jeudi 26 juin 2014 15:40
    • Marqué comme réponse Aurel Bera lundi 7 juillet 2014 11:40
    jeudi 26 juin 2014 15:21
  • Je confirme,

    La solution de Fabrice fonctionne tout aussi bien et est très performante. Effectivement, parfois il n'y a pas vraiment besoins de faires les choses compliquées quand on peut les faire simples :).

    Cordialement,


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    jeudi 26 juin 2014 15:39
  • Bonjour

     

    Est-ce que vous avez testé la solution proposée ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 30 juin 2014 11:39