Premiers pas en JavaScript
33.3 fichiers TXT
cuy copyleft
  See You Why?  

 


base de donnees - cookies (33.2) | | base de donnees - fichiers CSV (33.4)

Contenu

 

 

I. JavaScript et bases de données

voir séquence précédente

 

II. Cookies

voir séquence précédente

 

III. Les fichiers TXT

En principe, le javascript ne permet pas de lire un fichier ou d'écrire un fichier, ni sur le poste du visiteur, ni sur le serveur.
Si l'on veut écrire sur le disque dur du serveur, le site doit avoir un hébergement qui supporte un langage de type serveur (PHP, ASP...).
Et si l'on veut écrire sur le disque dur du visiteur, exceptions faites des cookies, il faut utiliser le langage JAVA ou ActiveX, en sachant qu'un visiteur peut désactiver leur exécution.

Et pourtant, voyons ce que le HTML ou le JS peut faire avec des fichiers .txt.

 

A. HTML pur et fichier TXT

Employé à l'état pur, le HTML n'a pas besoin de JS pour ouvrir un fichier TXT, quel que soit le navigateur utilisé par votre ordinateur.

Un fichier TXT pourra être lu sur le serveur du site visité. Il suffira de créer un lien vers ce fichier (une adresse relative est alors possible), comme par exemple ce court fichier situé lui aussi chez notre hébergeur : voici. Le lien sera alors :
Il suffira de cr&eacute;er un lien vers ce fichier (une adresse relative est alors possible), comme par exemple ce court fichier situ&eacute; lui aussi chez notre h&eacute;bergeur<span class="fine">&nbsp;</span>: <a href="scripts/prolog.txt">voici</a>.

De la même façon, un fichier TXT pourra être lu sur tout autre serveur, mais dans ce cas on devra connaitre l'adresse du site et on utilisera une adresse absolue, comme ce fichier lu sur le site de Debian, une des versions LINUX : voilà. Le lien sera alors :
comme ce fichier lu sur le site de Debian, une des versions LINUX<span class="fine">&nbsp;</span>: <a href="http://d-i.alioth.debian.org/manual/fr.s390/install.fr.txt">voil&agrave;</a>.

Quant à écrire du texte sur les disques durs, les navigateurs et HTML ne le permettent pas.

Bref, sans JS le HTML pur ne permet que de lire des fichiers entiers écrits au format TXT, mais cela ne nous aide en rien pour traiter des bases de données. JS peut-il nous aider ?

 

 

B. JS et fichier TXT

Employé avec le JavaScript, nos possibilités ne vont pas beaucoup plus loin.
Comme avec les balises <frame> (voir HTML, cadres), on peut aussi incorporer le contenu d'un fichier texte dans une iframe (balise HTML et XHTML, qui sert au départ, à introduire une page HTML et XHTML au sein de votre document html...).
Nous avons cependant découvert que la même technique pouvait être utilisée pour incorporer des fichiers TXT.

affichage d'un fichier TXT

Entre les balises <script> et </script>,
premièrement, on définit une variable qui reprendra l'adresse du fichier TXT :
var mon_cadre_src="xxx.txt";
deuxièmement, on appelle l'iframe en modifiant les paramètres dont les valeurs non paraissent suffisamment explicites pour ne pas nécessiter d'explications complémentaires :
document.write('<iframe id="cadre_prem" src="'+mon_cadre_src+'" width="300px" height="300px" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="1" scrolling="yes"></iframe>');
L'id de cette iframe n'a d'autre utilité que de la distinguer d'un autre cadre, dans lequel on pourrait afficher autre chose.
Le tour est joué, vous pouvez tester ci-dessous.

 

Exemple

<html>
<body>

<h1>texte txt</h1>

<script type="text/javascript">
   var mon_cadre_src="../xxx.txt";
   document.write('<iframe id="cadre_prem" src="'+mon_cadre_src+'" width="300px" height="300px" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="1" scrolling="yes"></iframe>');


</script>


</body>
</html>

En fait, dans la démarche ci-dessus, on ne fait rien d'autre que d'afficher un fichier dont on donne l'adresse en paramètre. C'est loin de pouvoir prétendre d'employer un fichier txt comme base de données...

Cependant, il est possible de passer le contenu d'un fichier TXT dans une variable... premier pas qui devrait nous permettre, en manipulant cette variable, d'extraire des données.

Passer le contenu d'un fichier TXT en variable

Je vous disais en introduction que JS avait besoin d'Ajax pour lire des fichiers TXT. Nous verrons ici comment l'Ajax peut s'intégrer dans le JS. Même s'il suffit de recopier la routine, nous nous efforcerons d'amorcer un début d'explication pour des non initiés.

Créons une fonction que nous appellerons fichier_txt et qui nécessitera de recevoir en paramètre le nom du fichier à traiter.

function fichier_txt(fich) {
}

Créons un objet obj_pers selon une méthode différente selon que l'on vise un public client de Micro§oft IE ou des autres navigateurs. XMLHttpRequest a été conçu par Mozilla, puis adopté par les autres navigateurs, sur le modèle d'un objet ActiveX nommé XMLHTTP créé par Microsoft.

if(window.XMLHttpRequest) {
    obj_pers = new XMLHttpRequest(); //Pour Chrome, Firefox, Opera et les autres...
} else if(window.ActiveXObject) {
    obj_pers = new ActiveXObject("Microsoft.XMLHTTP"); //Pour Internet Explorer
} else {
    return(false);
}

Et comme Apple, ainsi que son "ennemi juré" Micro§oft, refuse les standards de la programmation, il faut ajouter cette condition suivante pour les utilisateurs de Safari... sinon, bug :

if (obj_pers.overrideMimeType) {
    obj_pers.overrideMimeType("text/xml"); //Évite un bug de Safari
}

Il ne reste plus, à ce moment-là, qu'à ouvrir le fichier et à le stocker dans une variable :

obj_pers.open("GET", fich, false);
obj_pers.send(null);

if(obj_pers.readyState == 4) {
    return(obj_pers.responseText);
} else {
    return(false);
}

À titre d'information, le paramètre readyState peut avoir différentes valeurs :
0: non initialisé,
1: connexion établie,
2: requête reçue,
3: réponse en cours,
4: terminé.
Le lecteur comprendra mieux la condition if(obj_pers.readyState == 4).

Pas mal d'expliciter la fonction, encore faut-il l'appeler... le lecteur aura deviné qu'il suffit d'écrire : var mon_fichier = fichier_txt("../xxx.txt"); pour que la variable mon_fichier reçoive comme valeur, le contenu du fichier xxx.txt . Reste alors à traiter cette variable comme il se doit, avec l'aide de méthodes telles que split ou autres.

 

 

IV. Les fichiers CSV

voir suite >>>

 

VIII. Exercices relatifs aux bases de données

voir suite >>>

 

 

IX. Test relatif aux bases de données

voir suite >>>

 

 

 

 


base de donnees - cookies (33.2) | | base de donnees - fichiers CSV (33.4)