Utilisation des fichiers

Microsoft VBScript

Microsoft® Scripting Library - FileSystemObject Utilisation des fichiers
 Précédent
Suivant


Les manipulations de fichiers se divisent en deux catégories principales :

  • La création, l'ajout ou la suppression de données et la lecture de fichiers.
  • Le déplacement, la copie et la suppression de fichiers.

La création de fichiers
Trois moyens différents permettent de créer un fichier de texte vide (parfois désigné comme "flux de texte").

Le premier moyen est l'utilisation de la méthode CreateTextFile. L'exemple ci-dessous illustre la création d'un fichier de texte à l'aide de cette méthode dans VBScript :

Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
Pour utiliser cette méthode dans JScript, utilisez le code suivant :

var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
Cet exemple de code illustre l'emploi de la méthode CreateTextFile dans le FileSystemObject.

Le second moyen de créer un fichier de texte consiste à utiliser la méthode OpenTextFile de l'objet FileSystemObject avec l'indicateur ForWriting. Dans VBScript, le code ressemble à ceci :

Dim fso, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting. FileSystemObject")
Set ts = fso.OpenTextFile("c:\test.txt", ForWriting, True)
Pour créer un fichier de texte en utilisant cette méthode dans JScript, utilisez le code suivant :

var fso, ts;
var ForWriting= 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
Le troisième moyen de créer un fichier de texte consiste à utiliser la méthode OpenAsTextStream avec l'indicateur ForWriting. Pour cette méthode, utilisez le code ci-dessous dans VBScript :

Dim fso, f1, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile ("c:\test1.txt")
Set f1 = fso.GetFile("c:\test1.txt")
Set ts = f1.OpenAsTextStream(ForWriting, True)
Dans JScript, utilisez le code de l'exemple ci-dessous :

var fso, f1, ts;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile ("c:\\test1.txt");
f1 = fso.GetFile("c:\\test1.txt");
ts = f1.OpenAsTextStream(ForWriting, true);

Ajout de données dans le fichier
Une fois le fichier créé, procédez ainsi pour ajouter des données au fichier :

  1. Ouvrez le fichier.
  2. Écrivez les données.
  3. Fermez le fichier.
Pour ouvrir un fichier existant, utilisez soit la méthode OpenTextFile de l'objet FileSystemObject soit la méthode OpenAsTextStream de l'objet File.

Pour écrire des données dans le fichier de texte, utilisez les méthodes Write, WriteLine ou WriteBlankLines de l'objet TextStream, en fonction des tâches répertoriées dans le tableau ci-dessous.

TâcheMéthode
Écrire des données dans un fichier de texte ouvert sans caractère de nouvelle ligne final. Write
Écrire des données dans un fichier de texte ouvert avec un caractère de nouvelle ligne final. WriteLine
Écrire une ou plusieurs lignes blanches dans un fichier de texte ouvert. WriteBlankLines

Cet exemple de code illustre l'emploi des méthodes Write, WriteLine et WriteBlankLines dans le FileSystemObject.

Pour fermer un fichier ouvert, utilisez la méthode Close de l'objet TextStream.

Cet exemple de code illustre l'emploi de la méthode Close dans le FileSystemObject.


Remarque  Le caractère de saut de ligne contient un ou plusieurs caractères (en fonction du système d'exploitation) qui avancent le curseur au début de la ligne d'après (retour chariot/saut de ligne). Tenez compte du fait que certaines chaînes se terminent déjà par ce type de caractères non imprimables.

L'exemple VBScript suivant montre comment ouvrir un fichier, utiliser les trois méthodes d'écritures pour ajouter des données au fichier, puis fermer le fichier:

Sub CreateFile()
  Dim fso, tf
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set tf = fso.CreateTextFile("c:\testfile.txt", True)
  ' Écrire une ligne terminée par un caractère de nouvelle ligne.
  tf.WriteLine("Testing 1, 2, 3.") 
  ' Écrire trois caractères de nouvelle ligne dans le fichier    
  tf.WriteBlankLines(3) 
  ' Écrire une ligne.
  tf.Write ("Ceci est un essai.") 
  tf.Close
End Sub
Cet exemple illustre l'utilisation de ces trois méthodes dans JScript :

function CreateFile()
{
  var fso, tf;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  tf = fso.CreateTextFile("c:\\testfile.txt", true);
  // Écrit une ligne terminée par un caractère de nouvelle ligne.
  tf.WriteLine("Testing 1, 2, 3.") ;
  // Écrit trois caractères de nouvelle ligne dans le fichier.      
  tf.WriteBlankLines(3) ;
  // Écrit une ligne.
  tf.Write ("Ceci est un essai.");
  tf.Close();
}

Lecture de fichiers
Pour lire des données d'un fichier de texte, utilisez les méthodes Read, ReadLine ou ReadAll de l'objet TextStream. Le tableau suivant présente les méthodes à utiliser en fonction des tâches à accomplir.

TâcheMéthode
Lire un nombre spécifié de caractères d'un fichier. Read
Lire une ligne entière (jusqu'au caractère de nouvelle ligne non compris). ReadLine
Lire le contenu entier d'un fichier de texte. ReadAll

Cet exemple de code illustre l'emploi des méthodes ReadAll et ReadLine dans le FileSystemObject.

Si vous utilisez la méthode Read ou ReadLine et voulez accéder directement à un emplacement de données particulier, utilisez la méthode Skip ou SkipLine. Le texte issu des méthodes de lecture est stocké dans une chaîne qui peut être affichée dans un contrôle, analysé par des fonctions de chaîne (comme Left, Right et Mid), concaténé, etc.

L'exemple VBScript suivant montre comment ouvrir un fichier, écrire puis lire :

Sub ReadFiles
  Dim fso, f1, ts, s
  Const ForReading = 1
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
  ' Écrire une ligne.
  Response.Write "Écriture du fichier <br>"
  f1.WriteLine "Bonjour"
  f1.WriteBlankLines(1)
  f1.Close
  ' Lire le contenu du fichier.
  Response.Write "Lecture du fichier <br>"
  Set ts = fso.OpenTextFile("c:\testfile.txt", ForReading)
  s = ts.ReadLine
  Response.Write "Contenu du fichier = '" & s & "'"
  ts.Close
End Sub
Ce code effectue les mêmes opérations dans JScript :

function ReadFiles()
{
  var fso, f1, ts, s;
  var ForReading = 1;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f1 = fso.CreateTextFile("c:\\testfile.txt", true);
  // Écrire une ligne.
  Response.Write("Écriture du fichier <br>");
  f1.WriteLine("Bonjour");
  f1.WriteBlankLines(1);
  f1.Close();
  // Lire le contenu du fichier.
  Response.Write("Lecture du fichier <br>");
  ts = fso.OpenTextFile("c:\\testfile.txt", ForReading);
  s = ts.ReadLine();
  Response.Write("Contenu du fichier = '" + s + "'");
  ts.Close();
}

Déplacement, copie et suppression de fichiers
Le modèle d'objet FSO offre deux méthodes pour chacune des opérations de déplacement, copie et suppression de fichier, comme le présente le tableau suivant.

TâcheMéthode
Déplacer un fichier File.Move ou FileSystemObject.MoveFile
Copier un fichier File.Copy ou FileSystemObject.CopyFile
Supprimer un fichier File.Delete ou FileSystemObject.DeleteFile

Cet exemple de code illustre les deux façons de supprimer un fichier dans le FileSystemObject.

L'exemple VBScript suivant crée un fichier de texte dans le répertoire racine du lecteur C, y écrit des informations, le déplace dans un répertoire nommé \tmp, le copie dans un répertoire nommé \temp puis supprime les deux copies des deux répertoires.

Pour exécuter cet exemple, créez des répertoires nommés \tmp et \temp sous la racine du lecteur C:

Sub ManipFiles
  Dim fso, f1, f2, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
  Response.Write "Écriture du fichier <br>"
  ' Écrire une ligne.
  f1.Write ("Ceci est un essai.")
  ' Fermeture du fichier en écriture.
  f1.Close
  Response.Write "Déplacement du fichier vers c:\tmp <br>"
  ' Obtenir un descripteur vers le fichier sous la racine de C:\.
  Set f2 = fso.GetFile("c:\testfile.txt")
  ' Déplacer le fichier vers le répertoire /tmp.
  f2.Move ("c:\tmp\testfile.txt")
  Response.Write "Copie du fichier vers c:\temp <br>"
  ' Copier le fichier vers \temp.
  f2.Copy ("c:\temp\testfile.txt")
  Response.Write "Suppression des fichiers <br>"
  ' Obtenir des descripteurs vers l'emplacement actuel des fichiers.
  Set f2 = fso.GetFile("c:\tmp\testfile.txt")
  Set f3 = fso.GetFile("c:\temp\testfile.txt")
  ' Supprimer les fichiers.
  f2.Delete
  f3.Delete
  Response.Write "Terminé!"
End Sub
Le code suivant vous présente la même opération dans JScript :

function ManipFiles()
{
  var fso, f1, f2, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f1 = fso.CreateTextFile("c:\\testfile.txt", true);
  Response.Write("Écriture du fichier <br>");
  // Écrire une ligne.
  f1.Write("Ceci est un essai.");
  // Fermeture du fichier en écriture.
  f1.Close();
  Response.Write("Déplacement du fichier vers c:\\tmp <br>");
  // Obtenir un descripteur vers le fichier sous la racine de C:\.
  f2 = fso.GetFile("c:\\testfile.txt");
  // Déplacer le fichier vers le répertoire /tmp.
  f2.Move ("c:\\tmp\\testfile.txt");
  Response.Write("Copie du fichier vers c:\\temp <br>");
  // Copier le fichier vers \temp.
  f2.Copy ("c:\\temp\\testfile.txt");
  Response.Write("Suppression des fichiers <br>");
  // Obtenir des descripteurs vers l'emplacement actuel des fichiers.
  f2 = fso.GetFile("c:\\tmp\\testfile.txt");
  f3 = fso.GetFile("c:\\temp\\testfile.txt");
  // Supprimer les fichiers.
  f2.Delete();
  f3.Delete();
  Response.Write("Terminé!");
}