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

Format d'échange (XML, JSON...) Java Discussion :

Programme qui met à jour l'inventaire [DOM]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #21
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Un tutoriel ne peut pas faire l'affaire.
    Le découpage est évident : il faut d'abord prendre les données qui sont dans le fichier .txt, puis une fois que tu as ces données, les mettre dans le fichier XML.
    Comme les deux étapes n'ont rien à voir, il n'existe pas un tutoriel qui parle des deux, ça n'aurait aucun sens.

    Tu dois apprendre à faire chaque étape séparément. Puis il n'y a plus qu'à relier les deux.
    Tu veux commencer par laquelle ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #22
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    j'aimerais apprendre a prendre mes données du fichier text dans un XML. est ce que je dois m'enligner vers :
    BufferedReader csvReader = new BufferedReader(new FileReader("achats.txt"));

  3. #23
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par brocolie2 Voir le message
    j'aimerais apprendre a prendre mes données du fichier text dans un XML.
    Oui, mais une chose à la fois, pas les deux à la fois. Comme tu t'en doutes, il n'existe pas de méthode d'apprentissage pour faire deux trucs qui n'ont rien à voir.

    Citation Envoyé par brocolie2 Voir le message
    est ce que je dois m'enligner vers :
    BufferedReader csvReader = new BufferedReader(new FileReader("achats.txt"));
    Oui, pour la lecture du fichier texte, ça te permettra de lire chaque ligne, c'est un bon début.
    Maintenant il va falloir vraiment lire ces lignes, puis prendre les informations qu'il y a dedans, et les garder en mémoire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #24
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Donc, je dois commencer par lire un fichier text:

    Je pensais ceci mais ça me donne une erreur:

    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
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.FileNotFoundException;
    import java.io.IOException;
     
    class LireLigne 
    {
      public static void main(String[] argv) throws IOException
      {
        BufferedReader lecteurAvecBuffer=null;
        String ligne;
     
        try
          {
    	lecteurAvecBuffer = new BufferedReader
    	  (new FileReader(argv[0]));
          }
        catch(FileNotFoundException exc)
          {
    	System.out.println("Erreur d'ouverture");
          }
     
        while ((ligne = lecteurAvecBuffer.readLine())!=null)
          System.out.println(ligne);
        lecteurAvecBuffer.close();
      }
    }

  5. #25
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    ... C'est complètement débutant -_-°.
    Nous n'allons pas passer notre temps à lire un fichier texte, dans le forum XML.

    Si tu veux de l'aide pour lire un fichier texte en Java, sois gentille de créer une nouvelle discussion, dans le forum pour débutants Java.
    En montrant le fichier à lire, le code utilisé, et en disant quelle erreur tu as, bien entendu.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #26
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Pour lire ton fichier texte, je te propose le code suivant qui utilise la méthode "String.split()":
    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
     
    import java.io.BufferedReader;  
    import java.io.FileReader;  
    import java.io.IOException;  
     
        public class Affiche {     // On créer une classe "Affiche"
            public static void main(String[] args) throws IOException {  
                FileReader fichier = new FileReader("Ton_fichier.txt");        // prend ton fichier.txt caractère par caractère
                BufferedReader br = new BufferedReader(fichier);   // On place notre objet fichier en mémoire tampon
                String ligne = null;  
                while ((ligne = br.readLine()) != null) {            // On traite le flux de donnée ligne par ligne
    String str[] =ligne.split(",");                            // Retourne un tableau de sous-chaînes de caractères en utilisant le séparateur ","
                    System.out.println(str[2] +","+str[3]);  // Affiche ton troisième et quatrième mots de chaque ligne par exemple
                }  
                fichier.close();  
            }  
        }

  7. #27
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    J'ai continue à travailler et je sens que je ne suis pas loins mais je n'y suis pas encore. Est-ce que vous pouvez m'enligner où je fais erreur?

    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
    import org.w3c.dom.*;
     import java.io.*;
     import javax.xml.parsers.*;
     import javax.xml.transform.*;
     import javax.xml.transform.dom.*;
     import javax.xml.transform.stream.*;
    import java.io.BufferedReader;
    import java.io.FileReader;
     
    public class inventaire {
      public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new FileReader("achats.txt"));
        String line = null;
     
        while ((line = br.readLine()) != null) {
          String[] values = line.split(",");
          for (String str : values) {
    	MettreAJourInventaire( achat[2], achat[3] );
    	Document doc = parser.parse("inventaire.xml");
            Element racine = doc.getDocumentElement();
        	NodeList nl = racine.getChildNodes();
     
    	if (produit.getAttribute("code").equals(code)){
    	produit.setAttribute("quantité",Integer.toString(Integer.parseInt(produit.getAttribute("quantité")) - qte));
    			}
          }
        }
        br.close();
      }
    }
    TransformerFactory tfact = TransformerFactory.newInstance();
        Transformer transformer = tfact.newTransformer();
        transformer.setOutputProperty("encoding", "ISO-8859-1");
        DOMSource source = new DOMSource(doc);
        FileWriter fw = new FileWriter("inventaire.xml");
        StreamResult result = new StreamResult(fw);    
        transformer.transform(source, result);
        }
     }

  8. #28
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour brocolie2,

    Effectivement tu approches une solution. Toutefois, je ne comprends pas trop l'expression suivante: "MettreAJourInventaire( achat[2], achat[3] );"
    Est-ce une fonction qui prend en paramètre deux tableaux de chaîne de caractères? SI oui, je ne vois pas sa définition.

    Voici ce que je te propose pour ton inventaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    NodeList nl = racine.getElementsByTagName("produit");        // On récupère la liste des produits
    	for (int i = 0; i < nl.getLength(); ++i) {				// La méthode "getLength()" nous retourne le nombre de noeud
    		Element produit = (Element) nl.item(i);				// La méthode "item()" nous donne accès au noeud (i) "produit" 
     
    if (produit.getAttribute("code").equals(str[2])){                 // Ensuite, tu peux effectuer ta structure de contrôle

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. JButton qui met à jour un JLabel, possible ?
    Par nikwik dans le forum Débuter
    Réponses: 4
    Dernier message: 15/01/2011, 12h30
  2. Réponses: 0
    Dernier message: 18/08/2010, 20h01
  3. Macro qui met à jour un Workbook à partir d'un autre
    Par Sanny80 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/11/2009, 09h31
  4. Réponses: 2
    Dernier message: 11/08/2006, 11h11
  5. Réponses: 5
    Dernier message: 25/11/2003, 09h41

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