Transformer liste en urls

3_mm Messages postés 4 Statut Membre -  
Nexii Messages postés 365 Statut Membre -
Bonjour

Et désolé de mettre ça dans "programmation" parce que ça va vous paraître ridicule à faire probablement, mais voilà :

J'ai une longue liste de références (ex d'une réf : 302 33 78 87) et chaque réf correspond à une url dont la structure est example.com/marque/produit/302-33-78-87

Je souhaiterais transformer ma liste de réfs (ds un txt doc ou autre) en une liste de ode html de type liens <a href="http://example.com/marque/produit/302-33-78-87>302 33 78 87</a>

avec un script

merci bcp pour l'aide ! :)

2 réponses

  1. Nexii Messages postés 365 Statut Membre 591
     
    Bonjour,

    Avec quel langage souhaite tu réaliser cela ? Dans quel langage as-tu des compétences plutôt ?
    1
    1. 3_mm Messages postés 4 Statut Membre
       
      Justement j'en ai aucune :)
      Je cherche la façon la plus simple de le faire, j'ai pas mal cherché mais je n'ai rien trouvé de semblable que j'aurai pu bricoler pour atteindre mes résultats...
      0
    2. Nexii Messages postés 365 Statut Membre 591
       
      Voilà en java :

      public class Reference {
       private String reference;
       
       public String getReference() {
        return reference;
       }
      
       public void setReference(String reference) {
        this.reference = reference;
       }
      
       public Reference(String reference) {
        this.reference = reference;
       }
      }
      
      import java.io.BufferedReader;
      import java.io.File;
      import java.io.FileNotFoundException;
      import java.io.FileReader;
      import java.io.IOException;
      import java.util.ArrayList;
      import java.util.List;
      
      public class Retread {
       public static final String TAG_START ="<a href=\"http://example.com/marque/produit/";
       public static final String TAG_END = "\"</a>";
      
      public static void main(String[] args) throws FileNotFoundException {
        List <Reference> refList = new ArrayList<Reference>();
        File references = new File("src/references.txt");
        if(references.exists()) {
         // Read in the file
         FileReader fr = new FileReader(references);
         BufferedReader br = new BufferedReader(fr);
         String data = null;
        try {
         // While a new line
         while((data = br.readLine()) != null) {
          // Replace spaces by hyphen
          data = data.replace(" ", "-");
          // Save the line in an array
          refList.add(new Reference(data));
         }
          
        } catch (IOException e) {
         e.printStackTrace();
        }
        for(Reference ref : refList) {
         // Create output
         System.out.println(TAG_START + ref.getReference() + TAG_END);
        }
        }
       }
      }
      


      Fichier references.txt :

      302 33 78 87
      405 45 54 98
      450 65 98 98
      015 32 45 78
      765 32 01 78
      652 54 87 25
      925 65 80 35


      Output is :


      <a href="http://example.com/marque/produit/302-33-78-87"</a>
      <a href="http://example.com/marque/produit/405-45-54-98"</a>
      <a href="http://example.com/marque/produit/450-65-98-98"</a>
      <a href="http://example.com/marque/produit/015-32-45-78"</a>
      <a href="http://example.com/marque/produit/765-32-01-78"</a>
      <a href="http://example.com/marque/produit/652-54-87-25"</a>
      <a href="http://example.com/marque/produit/925-65-80-35"</a>
      0
    3. 3_mm Messages postés 4 Statut Membre
       
      Merci beaucoup d'avoir pris le temps, je ne m'y attendais pas !! Des petites précisions :

      - pour les liens au final je voudrais obtenir l'ancre du lien sur la réf de type <a href="http://example.com/marque/produit/302-33-78-87">302-33-78-87</a>

      - donc j'ouvre un notpad je copie le code, ensuite je dois le compiler ou quelquechose comme ça ? (avoir un exécutable)

      - je comprends que je dois créer un fichier txt avec les ref ds le même dossier
      0
  2. Nexii Messages postés 365 Statut Membre 591
     
    Code corrigé :
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    public class Retread {
     public static final String TAG_START ="<a href=\"http://example.com/marque/produit/";
     public static final String TAG_LT = "\">";
     public static final String TAG_END = "</a>";
    
    public static void main(String[] args) throws FileNotFoundException {
      List <Reference> refList = new ArrayList<Reference>();
      File references = new File("src/references.txt");
      if(references.exists()) {
       // Read in the file
       FileReader fr = new FileReader(references);
       BufferedReader br = new BufferedReader(fr);
       String data = null;
      try {
       // While a new line
       while((data = br.readLine()) != null) {
        // Replace spaces by hyphen
        data = data.replace(" ", "-");
        // Save the line in an array
        refList.add(new Reference(data));
       }
        
      } catch (IOException e) {
       e.printStackTrace();
      }
      for(Reference ref : refList) {
       // Create output
       String cRef = ref.getReference();
       System.out.println(TAG_START + cRef + TAG_LT + cRef + TAG_END);
      }
      }
     }
    }
    


    Ouptput :
    <a href="http://example.com/marque/produit/302-33-78-87">302-33-78-87</a>
    <a href="http://example.com/marque/produit/405-45-54-98">405-45-54-98</a>
    <a href="http://example.com/marque/produit/450-65-98-98">450-65-98-98</a>
    <a href="http://example.com/marque/produit/015-32-45-78">015-32-45-78</a>
    <a href="http://example.com/marque/produit/765-32-01-78">765-32-01-78</a>
    <a href="http://example.com/marque/produit/652-54-87-25">652-54-87-25</a>
    <a href="http://example.com/marque/produit/925-65-80-35">925-65-80-35</a>


    Tu as plusieurs moyen d'exécuter cela, le plus simple est d'utiliser l'IDE Eclipse (tu peux le faire en ligne de commande mais cela t'évitera nombre de paramétrage) :
    https://www.eclipse.org/downloads/download.php?file=/oomph/epp/mars/R2/eclipse-inst-win64.exe

    Il te faut également installer l'environnement Java, à télécharger ici :
    https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
    Dans le premier bloc, ligne "Windows x86" tu as le lien sur la droite de cette ligne.

    Une fois Eclipse installé, tu va a gauche dans la fenêtre Package Explorer, clic droit > "New Project", tu lui donne le nom que tu souhaites.
    Clic droit sur le dossier "src" du projet, "New" > "Class" et tu la nomme "Reference", tu fais Ok et tu remplace le code par :
    public class Reference {
     private String reference;
     
     public String getReference() {
      return reference;
     }
    
     public void setReference(String reference) {
      this.reference = reference;
     }
    
     public Reference(String reference) {
      this.reference = reference;
     }
    }
    


    Tu refais la même manipulation, clic droit sur "src"> "New" > "Class" et tu la nomme "Retread". Tu remplace tous le code par celui que j'ai mis au début de ce message.

    Enfin, tu créer un fichier en faisant sur ton dossier "src" > Clic droit > "New" > "Others" tu cherche "File" puis tu fais "Next", tu met le nom du fichier "references.txt" et le remplir avec tes références.

    Ensuite tu as plus qu'à te placer sur la classe "Retread.java" et faire un clic droit dans le code "Run as" > "Java Application" et tu aura ton output dans la console en bas.
    1
    1. 3_mm Messages postés 4 Statut Membre
       
      C'est très clair, je vais suivre le tout à la lettre.

      Merci mille fois pour le temps que tu m'as consacré ; rien que pour taper ces lignes tu as dû passer un bon moment sans parler de celui qu'il t'a fallu pour coder et commenter tout ça.

      J'espère qu'un jour quelqu'un qui aura la même problématique pourra également tomber sur ce topic et avoir ta réponse.

      Encore merci et très bonne journée à toi !
      0
    2. Nexii Messages postés 365 Statut Membre 591
       
      Je t'en prie.

      N'hésites pas si tu rencontre des difficultés, excellente journée.
      0