Lire fichier.txt

Résolu/Fermé
ramdoulam Messages postés 14 Date d'inscription vendredi 8 janvier 2016 Statut Membre Dernière intervention 31 juillet 2016 - Modifié par ramdoulam le 12/01/2016 à 22:16
ramdoulam Messages postés 14 Date d'inscription vendredi 8 janvier 2016 Statut Membre Dernière intervention 31 juillet 2016 - 13 janv. 2016 à 15:14
Bonjour tout le monde,

Je bloque depuis 1 journée sur un problème qui j'imagine va être simple pour beaucoup d'entre vous. Je précise que j'ai passé la journée a regarder et essayer de m'inspirer de nombreux topics du même genre, mais généralement les réponses sont en php, langage que je ne connais malheureusement pas ! :(

Donc pour poser le problème:
J'ai un fichier .txt du genre

/////////Pierre Benoit Marie
course1 1///// 2////// 3
course2 2//// 3 ///// 1
course3 3//// 1 ///// 2

Sur la page html, on choisira par l’intermédiaire d'un menu déroulant la course.
En fonction de la course on lit la ligne correspondante et ensuite je ferai apparaître une image en fonction de la position de chacun mais ce n'est pas le problème.
Je ne sais donc pas comment m'y prendre pour lire la ligne correspondante. J'ai essayé de passer par un iframe que j'arrive a afficher mais que faire après ? :)
J'imaginer qu'il faut stocker les valeurs dans un tableau ?
Dans ma logique ces valeurs doivent devenir des variables puisqu'elles joueront ensuite sur l'image qui va apparaître avec une conditon "IF".

Il me faudrait résoudre ce problème en javascript/html puisque j'ai essayé le php mais je n'y connais strictement rien.
Je précise que le fichier texte se situe dans le même dossier que mon fichier html. Ce n'est qu'un exercice que je m'impose donc tout ça ne finira pas sur internet d'où la non utilité du php selon moi :)

En espérant avoir été un minimum clair :)

Merci !



A voir également:

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
12 janv. 2016 à 23:25
Bonjour,


mais généralement les réponses sont en php,

Ce n'est pas pour rien....


Le Javascript s'exécute côté poste utilisateur (contrairement au PHP, qui lui s'exécute côté serveur).
Il ne sera donc pas possible d'aller lire un fichier text (qui plus est présent dans l'arborescence de ton site donc) via du Javascript.

Si tu développes en Local (c'est à dire sur ton pc), pour pouvoir utiliser du PHP il te faut installer un logiciel tel que WAMP ou EASYPHP.
Pour ce qui est de lire le contenu d'un fichier en PHP ... de nombreux tutoriels existent sur le net.
On peut, par exemple utiliser la fonction https://www.php.net/manual/fr/function.file-get-contents.php

Ou.. si on veut lire le fichier ligne par ligne, un code comme celui-ci
$handle = fopen("inputfile.txt", "r");
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        // ici ton code comme par exemple :
        echo $line;
    }

    fclose($handle);
} else {
    // error opening the file.
} 


0
ramdoulam Messages postés 14 Date d'inscription vendredi 8 janvier 2016 Statut Membre Dernière intervention 31 juillet 2016
13 janv. 2016 à 09:45
Merci jordane45 ! Je vais donc essayer le php puisque cela semble indispensable :)
0
ramdoulam Messages postés 14 Date d'inscription vendredi 8 janvier 2016 Statut Membre Dernière intervention 31 juillet 2016
13 janv. 2016 à 10:58
J'ai réussi avec du javascript en passant par

ajax("fichier.txt", function(data){
document.body.innerHTML=data.split(/\n/g)[2]; // Affiche la ligne 2 uniquement :))
});


Cependant si je veux passer la ligne 2 et colonne 2 (concrètement la position de Benoît) en varibale en utilisant [2][2] et que Benoit est arrivé 12eme, alert(maVariable) affiche seulement le 1 ! En faite chaque numéro est un caractère ! 12 est considéré comme 1 et 2 ..
Comment faire ?! :)
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
13 janv. 2016 à 11:14
D'où sors tu ta fonction ajax( ?
- tu utilises du jquery ou tu as créés cette fonction à partir d'un XMLHttpRequest ?
(ou autre chose peut être ? )

Pour ce qui est de la "séparation" de tes variables ...
Tu as SPLITE ton fichier via le \n (le retour à la ligne) ... ça te donne donc un array contenant, chaque ligne.
Ensuite... pour chaque ligne... il te faut également faire un SPLIT ( sur un séprateur comme un espace par exemple) pour avoir un array contenant chaque colonne....) et seulement après tu pourras aller chercher cette seconde colonne....
0
ramdoulam Messages postés 14 Date d'inscription vendredi 8 janvier 2016 Statut Membre Dernière intervention 31 juillet 2016
13 janv. 2016 à 15:14
Alors pour être honnête j'ai trouvé ça sur internet ! Je ne comprends pas trop comment elle fonctionne d'ailleurs ! :) Mais comme ça marche je l'ai gardé :))

Mon premier problème est que si je pose une variable telle que var ligne = document.body.innerHTML=data.split(/\n/g)[2];
Cela le considère comme "undefined" ..

Du coup pour "spliter" une seconde fois j'ai écris ça ! mais cela ne fonctionne guère comme ma variable est undefined j'imagine .. :(
:( Compliqué cette histoire !

ajax("donnees.txt", function(data){
       var ligne = document.getElementById("afficher").innerHTML=data.split(/\n/g)[2]; // Affiche ligne 2 
        // L'id c'est juste pour afficher le texte dans un <p> plus haut afin de voir que cela fonctionne ! 
	
	var a=ligne
	var chiffre=a.split(" ")
	alert(chiffre[0])

     
    });



Pour le second split je me suis basé sur un exemple que j'ai essayé et qui fonctionne c'est celui-ci :

var ladate = "200 912 01";
var elt = ladate.split(" ")
alert(elt[0]) // Affiche 200 !



Concrètement l'alert m'affiche la ligne 2 de mon texte :)
0