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

JavaScript Discussion :

Lecture d'un fichier TXT au lieu de XML


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Lecture d'un fichier TXT au lieu de XML
    Bonjour à tous,
    Je cherche à lire un fichier au format texte (qu'une autre application sur laquelle je n'ai pas la main me fournit). Le format est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Info0;Info1;Info2;Info3
    0;14;1;574
    0;26;1;657
    0;31;1;37
    1;0;1;46
    1;2;1;670
    (en fait il y a bien évidemment nettement plus de champs et nettement plus de ligne mais bon, c'est un exemple)
    Je pourrais aisément lire ce fichier si il était sous format XML ou simillaire. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <recording>
    	<header>Info0;Info1;Info2;Info3</header>
    	<record>0;14;1;574</record>
    	<record>0;26;1;657</record>
    	<record>0;31;1;37</record>
    	<record>1;0;1;46</record>
    	<record>1;2;1;670</record>
    </recording>
    grâce à une page du style:
    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
    <html>
     <head>
      <script type="text/javascript">
        var xmlDoc;
        function loadxml() {
          xmlDoc=document.implementation.createDocument("","",null);
    	  xmlDoc.load("extract.xml");
    	  xmlDoc.onload= readXML();
        }
     
        function readXML()
    	{
    		var CurrentRecord;
    		var RecordInfo;
    		var AllRecords=xmlDoc.getElementsByTagName("record");
     
    		alert("Reading...");
    		for (var n = 0; n < AllRecords.length; n++)
    		{
    			CurrentRecord=AllRecords[n].textContent;
    			RecordInfo=CurrentRecord.split(";");
    			document.write("Record n°" + n + " : " + RecordInfo[3] + "<br>");
    		}
        }
      </script>
     </head>
     <body onload="javascript:loadxml();">
     </body>
    </html>
    Cette page marche très bien mais ne me convient pas totalement (j'aimerais éviter une conversion de format entre mon fichier html et celui sortit par l'application d'origine.
    Aussi j'aimerais pouvoir faire la même chose mais directement à partir du fichier texte de départ.
    En gros quelque chose du genre:
    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
     
    <html>
     <head>
      <script type="text/javascript">
        var txtDoc;
        function loadtxt() {
          txtDoc=document.implementation.createDocument("","",null);
    	  txtDoc.load("extract.txt");
    	  txtDoc.onload= readtxt);
        }
     
        function readtxt()
    	{
    		var CurrentRecord;
    		var RecordInfo;
     
    		// C'est la ligne ci-dessous qui pose problème car je n'ai pas trouvé comment lire le contenu du fichier
    		var AllRecords=txtDoc.CONTENU.split("\n");
     
    		alert("Reading...");
    		for (var n = 0; n < AllRecords.length; n++)
    		{
    			CurrentRecord=AllRecords[n].textContent;
    			RecordInfo=CurrentRecord.split(";");
    			document.write("Record n°" + n + " : " + RecordInfo[3] + "<br>");
    		}
        }
      </script>
     </head>
     <body onload="javascript:loadtxt();">
     </body>
    </html>
    Quelqu'un aurait-il la solution à mon problème ?
    Je précise que pour diverse raisons, je ne souhaite pas utiliser du PHP, CGI ou des requêtes HTML vers un serveur, ne serait-ce parce qu'il n'y a pas de serveur => c'est un fichier HTML local qui lit un fichier texte local et il est impossible de mettre un serveurs HTTP pour ça.
    Par ailleurs, ça doit tourner sur Firefox et uniquement sur Firefox (pas de compatibilités requise sur IE pour d'autres raisons).
    Merci par avance
    Cordialement
    Florent

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    regarde plutot du coté d'ajax
    soit en js pur et tu recupères le texte dans le responseText
    soit avec jquery .

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Ajax ?
    Bonjour SpaceFrog,
    Merci pour ta réponse mais je pense qu'Ajax n'est pas une solution.
    Cela réclame un serveur HTTP en face ce que je n'ai pas et ne peut pas avoir.
    Dans mon cas, l'utilisateur ouvre un fichier HTML en local donc sans serveur.
    J'avais déjà vu ce genre de solutions (à base de XMLHttpRequest) mais cela ne peut s'appliquer dans mon cas.
    Ou bien je n'ai pas compris votre proposition...

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    He j'avais raté cette précision, j'ai poste un truc sur ajax sans ajax ...

    http://www.developpez.net/forums/d94...-gerard-majax/

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Merci...
    Merci SpaceFrog, c'est exactement ce que je cherchais...
    J'avais vu ici où là l'utilisation d'iFrames pour contourner le problème mais j'avais pas vraiment compris comment ça fonctionnait... ton exemple super simple résoud tout !
    J'espère juste que la taille du fichier texte ne fera pas exploser l'iframe (ils font potentiellement plusieurs dizaines de Mo)
    Par contre, ça invalide la possibilité de mise à jour en live que permets le XML load mais bon... on peut pas tout avoir.
    Je ferais en sorte d'avoir un reload régulier de la page même si ce n'est pas très fluide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lecture d'un fichier txt ligne par ligne
    Par SoBaKa dans le forum Général Python
    Réponses: 4
    Dernier message: 06/03/2007, 12h02
  2. Lecture depuis un fichiers txt
    Par mask91 dans le forum C++
    Réponses: 15
    Dernier message: 04/03/2007, 22h40
  3. Réponses: 4
    Dernier message: 13/11/2006, 22h30
  4. Lecture et ecriture fichier txt
    Par jeanmy dans le forum Delphi
    Réponses: 12
    Dernier message: 07/08/2006, 17h23
  5. [debutant] lecture d'un fichier txt de 10mo
    Par karamazov994 dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 19/04/2005, 15h55

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