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

Java Discussion :

Lire dans un fichier source des données


Sujet :

Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Lire dans un fichier source des données
    Bonjour,

    Pour un projet scolaire, on doit pouvoir lire dans un fichier source que l'on récupère sur internet des données qu'il faut extraire et réexploiter après. Le projet est en fait un traceur de bateaux, c'est à dire qu'on affiche sur une carte, les bateaux selon leurs positions ...
    Est-ce que vous sauriez comment récupérer les données dans ce fichier source ? On m'a parlé de Parser ... mais je n'ai strictement rien compris à comment cela marché.

    Merci d'avance,
    Stéphanie

    voici mon code java afin de récupérer le fichier source :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    package io;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.Properties;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.text.html.parser.DTD;
    import javax.swing.text.html.parser.Parser;
     
    public class Main {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            Properties systemProperties = System.getProperties();
            systemProperties.setProperty("http.proxyHost", "proxy.enib.fr");
            systemProperties.setProperty("http.proxyPort", "3128");
            new Main();
        }
     
        public void apply(String urlName) {
            try {
                URL url = new URL(urlName);
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                BufferedReader bufferedReader = new BufferedReader(
                        new InputStreamReader(
                        urlConnection.getInputStream()));
     
                String inputLine;
                while ((inputLine = bufferedReader.readLine()) != null) {
                    Parser p=new Parser(null);
     
                    System.out.println(inputLine);
                }
                bufferedReader.close();
            } catch (IOException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
     
        public Main() {
            apply(urlName);
        }
     
        private String urlName = "http://www.shipais.com/currentmap.php?map=dover";
    }

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, la façon de lire le fichier sera différente suivant le format du fichier, est-ce un fichier texte? xml? ...

    ps : utilise la balise code (#) pour mettre du code

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bah en fait, je sais pas trop c'est quoi comme fichier, j'utilise netbeans et il me le met dans une barre qui s'appelle "output". donc en fait, c'est comme si il m'affichait le fichier source en html mais je ne l'enregistre encore nulle part !

    Et désolé pour le (#) j'avais pas vu que ça existait ^^

  4. #4
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Citation Envoyé par kissmeimshy Voir le message
    Est-ce que vous sauriez comment récupérer les données dans ce fichier source
    Faudrait nous montrer le fichier. Mais sinon, tu peux deja regarder du coté des expressions régulière ^^
    http://prevert.upmf-grenoble.fr/Prog...egulieres.html

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    En fait, ce que ça m'affiche, c'est un code comme celui là :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <meta name="keywords" content="AIS, live AIS, Automatic Identification System, position, ShipPlotter, Ship Tracking, Ship Spotting, gascam, baycam, webcam, motion, Mersey, Liverpool, Liverpool Bay, Mersey Basin, Merseyside, Ships, maritime, shipping movements, ferry, ro-ro, cargo, seacat, container, port, docks, tanker, Irish Sea, Isle of Man, Anglesey" />
    <meta name="description" content="Live shipping movements from AIS and webcam looking over the River Mersey and Liverpool Bay." />
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    <meta name="author" content="Ian McConnell" />
    <meta name="geo.position" content="53.433;-3.05" />
    <meta http-equiv="imagetoolbar" content="no" />
    <meta name="MSSmartTagsPreventParsing" content="TRUE" />
    <link rel="shortcut icon" href="favicon.ico" type="image/vnd.microsoft.icon" />
    <link href="ais.css" rel="stylesheet" type="text/css"/>
    <link rel="meta" href="labels.rdf" type="application/rdf+xml" title="ICRA labels" />
    <title>ShipAIS- Current AIS map</title>
    <style type="text/css" media="screen">
    #im {
      display:block;
      height: 550px;
      width: 750px;
      background:url(currentmap_im.php?map=dover&rand=1517750518) no-repeat;
      position:relative;
      padding: 0;
      margin: 0;
      margin-left: auto;
      margin-right: auto;
    }
    #im dd {position:absolute; padding:0; margin:0;}
     
    /* -- hidden ONLY if CSS is enabled.  If disabled, image is rendered -- */
    img.printimage{ display: none; }
    #im #pc0{left:72px;top:43px;z-index:40;}
    #im #pc1{left:320px;top:500px;z-index:40;}
    #im #pc2{left:327px;top:437px;z-index:40;}
    #im #pc3{left:346px;top:448px;z-index:40;}
    #im #pc4{left:586px;top:395px;z-index:40;}
    #im #pc5{left:609px;top:261px;z-index:40;}
    #im #pc6{left:200px;top:377px;z-index:40;}
    #im #pc7{left:610px;top:279px;z-index:40;}
    #im #pc8{left:540px;top:448px;z-index:40;}
    #im #pc9{left:305px;top:94px;z-index:40;}
    #im #pc10{left:176px;top:517px;z-index:40;}
    #im #pc11{left:274px;top:332px;z-index:40;}
    #im #pc12{left:496px;top:226px;z-index:40;}
    #im #pc13{left:272px;top:330px;z-index:40;}
    #im #pc14{left:179px;top:504px;z-index:40;}
    #im #pc15{left:352px;top:363px;z-index:40;}
    #im #pc16{left:241px;top:468px;z-index:40;}
    Et c'est tout ce qu'il y a après #im #pc1 par exemple que je voudrais récupérer, car celà indique la place des bateaux, pc1 étant mon identifiant de bateau

  6. #6
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    ok ^^
    Voila ce que tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Pattern pattern = Pattern.compile("#im #(.*)?}");
    matcher = pattern.matcher(LaStringRepresentantLeichierHtml);
    matcher.find();
    String positionPremiereBateau = matcher.group(1);
    Ce code va te récuperer tous les "pc0{left:72px;top:43px;z-index:40;". Tu n'aura plus qu'a faire une boucle pour tous les parcourir et le tour est joué.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Mais en fait ce que je ne comprends pas, c'est qu'on nous a demandé d'utiliser un Parser, et les Parser sont inconnus à ma culture informatique !

    Snif, pourquoi, je me suis inscrite en école d'ingénieur ?

  8. #8
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    lol t dans quel école ? ^^ Et bien ce que je t'ai donné c'est un parser ^^
    On t'as demandé d utiliser un parser existant ou d'en concevoir un ? Si c'est d'en utiliser un, tu as ici plusieurs parser html mas je ne pense pas que ce soit adapté a tes besoins, et qu'en concevoir un spécifique a tes besoins est une bien meilleur solution ...
    http://java-source.net/open-source/html-parsers

Discussions similaires

  1. Réponses: 12
    Dernier message: 29/05/2008, 10h29
  2. Réponses: 10
    Dernier message: 02/04/2007, 17h22
  3. Réponses: 13
    Dernier message: 09/11/2006, 23h37
  4. Réponses: 2
    Dernier message: 21/02/2006, 10h36

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