Langage tcl › Les fichiers et Tcl

Voici comment réaliser des actions sur les fichiers :

Copier un fichier

Pour copier un fichier :

file copy /monfichier /monrepertoiredestination

file copy /home/user/monfichier
/home/user/

(j'ai mis le texte sur 2 lignes pour plus de lisibilité, mais il ne s'agit que d'une ligne)

Copier des fichiers

Pour copier plusieurs fichiers :

file copy fichier1 fichier2 fichier3 /madestination

file copy file1.txt 
file2.txt /home/user/

Effacer un fichier

Pour effacer un fichier :

file delete file1.txt

Effacer plusieurs fichiers

Pour effacer plusieurs fichiers :

file delete file1.txt file2.txt

Tester si un fichier existe

Pour savoir si un fichier existe :

set bob [file exist file1.txt]

$bob = 1 : le fichier est présent

$bob = 0 : Le fichier est absent

Tester si exécutable

Pour savoir si un fichier est un exécutable :

set bob [file executable file1.txt]

$bob = 1 : le fichier est un éxécutable

$bob = 0 : Le fichier n'est pas exécutable

Connaitre l'extention du fichier

Pour connaitre l'extention d'un fichier :

set bob [file extension file1.txt]

renverra :

txt

Savoir si un chemin pointe un répertoire

Pour savoir si un chemin est un répertoire :

set bob [file isdirectory file1.txt]

$bob = 1 : C'est un répertoire

$bob = 0 : Ce n'est pas un répertoire

Savoir si un chemin pointe vers un fichier

Pour savori si un chemin pointe vers un fichier :

set bob [file isfile file1.txt]

$bob = 1 : C'est un fichier

$bob = 0 : Ce n'est pas un fichier.

Créer un répertoire

Pour créer un répertoire :

file mkdir /home/user/hello

créera le répertoire hello

Renommer un fichier

Pour renommer un fichier ou un répertoire :

file rename /home/user/file1.txt 
/home/user.file2.txt

Connaître la taille d'un fichier ou répertoire

Pour connaître la taille d'un fichier ou répertoire :

file size /home/user/bobi.txt

renverra 10000 bytes

.

Voici comment travailler avec le contenu des fichiers :

Ouvrir un fichier texte

Pour ouvrir un fichier texte et le stocker dans une variable (file_data par exemple)

set fp [open "chemindufichier" r]
set file_data [read $fp]
close $fp

Les données texte seront stockés dans la variable $file_data

Séparer chaque ligne du fichier texte ainsi ouvert.

Le fichier ainsi ouvert nous pouvons traiter chaque ligne dans une boucle forearch comme ceci :

set data [split $file_data "\n"]
foreach line $data {
     # traite chaque ligne...
}

 

ENREGISTRER UN FICHIER TEXTE

La sauvegarde s'effectue ainsi:

  • Ouvrir le fichier en écriture
  • Ecrire dans le fichier
  • Fermer le fichier

voici un exemple

set monfichier [open "lechemin/fichier.txt" "w"] 
% puts $monfichier $montexte
% close $monfichier

.

.