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


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Points : 70
    Points
    70
    Par défaut Lecture d'un fichier .txt
    bonsoir

    je voudrais trouver un moyen de lire et ensuite d'afficher un fichier .txt dans une clef USB. le langage m'importe peu, hormis qu'il doit être coté client pour pouvoir fonctionner sur une clef USB donc bien que je sache c'est beaucoup plus facile en php ou en python je ne peux pas utiliser de langage serveur.

    j'ai effectué plusieurs tests en cherchant sur le net mais j'ai rien trouvé d'efficace : pour vous donner des exemples, j'ai d'abord trouvé une solution sur github, celle-ci ne me paraissait pas trop mal, mais j'ai lu dans les commentaires que ça ne marchait pas ; j'ai trouvé une seconde solution avec l'objet FileReader mais soit je n'ai pas très bien compris comment cela marchait soit tout simplement cela ne marchait pas.

    l'usage du javascript n'est pas imposé, je l'utilise juste parce que le seul langage web que je connaisse ne nécessitant pas de serveur mais vous pouvez m'en proposer d'autres si vous voyez une solution plus pratique.

    d'avance merci

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Exemple :

    Code html : 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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
      <meta http-equiv="cache-control" content="public, max-age=60">
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <meta name="author" content="Daniel Hagnoul">
      <title>Test</title>
      <style>
        #byte_content {
          margin: 1.2rem;
          padding: 0.6rem;
          border: 1px dotted grey;
        }
      </style>
      <script>
        'use strict';
     
        window.addEventListener( 'load', function( ev ){
     
          function readBlob(){
     
            let
              reader = new FileReader(),
              file = document.querySelector( '#files' ).files[ 0 ],
              blob = file.slice( 0, file.size ),
              content = document.querySelector( '#byte_content' );
     
            reader.readAsText( blob, "utf-8" );
     
            reader.addEventListener( "loadend", function( evt ){
              if ( evt.target.readyState == FileReader.DONE ){
                content.textContent = "";
     
                let
                  lines = evt.target.result.split( '\n' ),
                  linesLength = lines.length,
                  p = null;
     
                for( let line = 0; line < linesLength; line++ ){
                  p = document.createElement( "p" );
                  p.textContent = lines[ line ];
                  content.appendChild( p );
                }
              }
            }, false );
          }
     
          document.querySelector( "#files" ).addEventListener( "change", function( evt ){
            if ( evt.target.files[ 0 ].size > 0 ){
              readBlob();
            }
          }, false );
     
        }, false );
      </script>
    </head>
    <body>
     
      <input type="file" id="files">
     
      <div id="byte_content"></div>
     
    </body>
    </html>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Points : 70
    Points
    70
    Par défaut
    j'ai testé ce code: il m'affiche bien le bouton parcourir sur lequel je clique puis choisis mon fichier .txt. puis il m'affiiiche une ligne vide.
    en plus de ça, je ne veux pas demander à l'utilisateur un fichier mais lui en imposer un.

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Chez moi cela fonctionne très bien.

    Il suffit d'ouvrir un fichier '.txt', même s'il se trouve sur une clé USB, et son contenu s'affiche dans le cadre (vide au départ).

    Bien entendu, c'est l'utilisateur qui doit choisir le fichier à ouvrir, pas le concepteur de la page web. Ce serait porte ouverte pour tous les pratiquants du côté obscur de la force.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    pas de soucis de mon coté également mais cela peut dépendre de la version de ton navigateur, dans ce cas remplace les let par des var.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Points : 70
    Points
    70
    Par défaut
    donc ce ne serait pas pour mal faire!!!

    je voudrais juste afficher son contenu.

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