Manipulation de fichiers et dossiers

Soyez le premier à donner votre avis sur cette source.

Snippet vu 31 061 fois - Téléchargée 27 fois

Contenu du snippet

Et oui, grace à l'utilisation de l'activeX le VBS n'a plus le monopole de la manipulation de fichiers.
Voila quelques instructions permettant de créer d'écrire et de lire un fichier. Ils en existent bien d'autres permettant notamment de copier de détruire ou de déplacer les fichiers et dossiers ainsi que les bases de registres ou les fichiers temporels. J'en expliquerai surement le fonctionnement dans un autre article.

Source / Exemple :


<html>
<!-- date de creation: 16/07/2003 -->
<head>
<title></title>
<meta name="Description" content="">
<meta name="Keywords" content="">
<meta name="Author" content="Ak3naton">
<meta name="Generator" content="WebExpert 2000">
</head>
<script>
function create() {  //fonction de création d'un fichier
var Object = new ActiveXObject('Scripting.FileSystemObject'); //Crée un espace mémoire ActiveX qui va nous servir à contenir et à modifier le fichier voulu.
var NouvTxt = Object.CreateTextFile('Hello.txt',true); //Ici on crée un nouveau fichier .txt mais vous pouvez mettre l'extension que vous voulez comme .html, le paramètre "false" indique qu'un fichier existant ne sera pas écrasé, "true" a l'effet inverse. Aprés avoir été créé avec cette fonction le fichier est immédiatement accessible pour une lecture ou une écriture.
NouvTxt.Write('Hello world !'); //On écrit un petit mot.
NouvTxt.Close(); //Puis on referme le fichier.
}
function read() { //fonction de lecture d'un fichier
var Object1 = new ActiveXObject('Scripting.FileSystemObject'); //Même formule que dans la fonction précédente, j'ai juste changé le nom de la variable pour ne pas s'embrouiller, même si ce n'est pas indispensable étant donné que l'on change de fonction.
var LirTxt = Object1.GetFile('Hello.txt'); // GetFile() permet d'attribuer à l'objet activeX la valeur d'un fichier existant, ici , celui que l'on a créé précedemment. Seulement getfile() ne le rend pas immédiatement accessible comme le createTextFile, il va falloir utiliser une autre fonction.
var doc1 = LirTxt.OpenAsTextStream(1); //Maintenant que notre fichier .txt est initialisé on va pouvoir le manipuler, le paramètre 8 signifie que l'on va ouvrir le fichier et le compléter , la valeur 1 permet de l'ouvrir en lecture seule, et le 2 l'ouvre et écrit en écrasant les valeurs déjà existantes.
doc1.Skip(5); //cette instruction permet d'exclure les 5 premiers caractères du fichier lors de sa lecture.
var txt = doc1.ReadAll(); // On "lit tout" le fichier, il existe aussi ReadLine(x) qui lit la ligne x et Read(x) qui lit les x premiers caractères du fichier.
fenetre.value=txt; //On affiche le contenu.
doc1.Close(); //On referme.
}
</script>
<body>
<input type="button" value="Créer" Onclick="create()"><br>
<input type="button" value="Lire" Onclick="read()">
<input type="text" size=40 value="" name="fenetre">
</body>
</html>

Conclusion :


Amusez vous bien !

A voir également

Ajouter un commentaire

Commentaires

Messages postés
14
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
17 octobre 2011

activeX ne fonctionne que sur IE... c'est pour cette raison que vous utilisez un autre navigateur
Messages postés
1
Date d'inscription
dimanche 12 décembre 2004
Statut
Membre
Dernière intervention
12 décembre 2004

Merci beaucoup pour toutes ces explications !!

Mais comment on fait pour creer un fichier dans un autre repertoir de Windows... Si c'est posible bien sûr.

Merci encore !
Foucse
Messages postés
28
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
4 janvier 2005

moi aussi j'ai un problème:
quand je clik sur creer on me dit: erreur de script, l'objet ne prend pas en charge cette action.

est-ce qu'on est obligé demetrre ce script sur serveur web pour ki marche??

merci
Messages postés
12
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
8 juin 2004

dsl shopoto, je te répond que maintenant, tu as peut-être déjà trouvé la réponce à ton problème, mais pour ma part je pense que tu as raison il faut que ton serveur autorise les activeX ce qui devient rare étant donné que ces fonctions peuvent être utilisées par des virus ... tu n'as plus qu'a trifouiller dans les options !
Messages postés
12
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
8 juin 2004

en fait c'est tout simplement la fonction Skip qui enlève le 'hello' !
donc c'est fait expré et ça le fait j'espère chez tout le monde.
cela dit cette fonction ne serre à rien ici, c'est juste pour montrer qu'elle existe.
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.