Manipulation des fichiers dans le langage VB

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Les Structures.
Premier programme en C :
Stockage de données.
Portée des variables VBA & Excel
Eléments visuels. 2009/2010L3-Eco - Université de Bordeaux2 Les feuilles La feuille : cest le cadre dans lequel tous les autres éléments (visuels) dune.
(Classes prédéfinies – API Java)
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Gestion de FICHIERS.
Les éléments de mémorisation
! 1 CREATION D'UNE MAQUETTE EXPORT / IMPORT
INITIATION à la PROGRAMMATION STRUCTUREE
Suite à de nombreuses remarques concernant le projet de structures de données 'Gestion d'un Aéroport' , voici un polycopié de cours concernant la gestion.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
FLSI602 Génie Informatique et Réseaux
Algorithme et programmation
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Présentation générale de MapBruit
Cours de programmation
Récursivité.
Par Fabrice Pasquier Cours IV
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
Chapitre IV LES STRUCTURES SIMPLES. Plan I- Les entrées II- Laffectation III- Les sorties.
Section XI Traitement de fichiers
Décembre 2008Évaluation des acquis des élèves de primaire 1 Évaluation Application locale Application web académique Guide destiné aux formateurs académiques.
TP : Fichiers et Tableaux Séance N°2 Avril Application de Gestion de stock Partie 1 : les fichiers 1 Création dun fichier de 20 articles.
Accès aux données généralisé SQL est presque une solution! Le problème: Le SQL n'est pas une langue complète, et doit être intégré dans un langage de programmation.
Les instructions PHP pour l'accès à une base de données MySql
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
Les fichiers binaires en C++
Les structure d’un programme :
FICHIERS : Définition : Algorithme général:
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Fichiers et entrées / sorties Sauvegarde des programmes dans des fichiers. Compilation. Lecture et écriture de données dans des fichiers. Formatage des.
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
SEANCE 10 Python Entrée et sortie de fichiers Lycée Louis Vincent Lundi 20 janvier
Une nouvelle structure de données : les tableaux
IFT 6800 Atelier en Technologies d’information
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI2520 Ecriture sur l'écran ou dans un fichier Lecture à partir du clavier ou dun fichier Affichage de termes : *write(1+2) affiche 1+2 *write(X). affiche.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.
Plan cours La notion de pointeur et d’adresse mémoire.
Les fichiers texte en C++
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX.
Structures des données
Création et présentation d’un tableau avec Word 2007
Gérer la sécurité des mots de passe et les ressources
Cours 1 1 Java. Cours 1 2 Plan général 1.Introduction 2.Les types primitifs, évaluation d’expressions 3.Instructions for, if…. 4.Introduction de l’objet,
PHP 3° PARTIE : GESTION DE FICHIERS ET DE REPERTOIRES
PHP 5° PARTIE : LES COOKIES
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Labo 4 : Les structures et les entrées et sorties
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Modification dynamique
 Syntaxe du langage PHP
 Requêtes MySQL en PHP Introduction
Sémantique des instructions pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Cours LCS N°4 Présenté par Mr: LALLALI
Les fichiers 1ère partie
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
Comprendre le SGBDR Microsoft Access – partie 2
Scripts et fonctions Instructions de contrôle
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
Algorithmique et langage C
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Informatique 2A Langage C 4ème séance
Transcription de la présentation:

Manipulation des fichiers dans le langage VB Chapitre 4 Manipulation des fichiers dans le langage VB Cours VB 2007/2008

Plan Fichiers en VB Types de fichiers en VB: séquentiels (Textes) à accès direct Random Binary Différentes opérations de gestion de répertoires et de fichiers en VB Cours VB – ISG 2007/2008

Introduction Un fichier est un ensemble de données qui sert soit: à la lecture : pour rentrer des informations dans un programme; à l’écriture : pour sauvegarder les résultats obtenus. Les fichiers sont caractérisés par deux notions : le mode d’organisation : comment sont organisées les données dans le fichier (par enregistrement, en bloc…) le mode d’accès : comment sont accédées les données dans le fichier (séquentiel, direct). Ces caractéristiques influencent l’utilisation des fichiers selon les langages de programmation. La combinaison de ces derniers offre différents types de fichiers. L’utilisation d’un fichier se fait toujours selon les phases suivantes : Ouverture du fichier Traitement Fermeture du fichier Binaire: pas d'organisation et la lecture se fait par octets Texte: caractérisé par des lignes et des retours chariot Cours VB – ISG 2007/2008

I. Les fichiers en VB VB gère : Les fichiers séquentiels Les fichiers à accès direct Les noms de fichiers obéissent aux règles du DOS : La longueur est limitée à 8 caractères maximum et une extension de 3 caractères au maximum. L’instruction Open est employée pour ouvrir un fichier, sa syntaxe varie suivant le type de fichier et le mode d’accès choisi. VB numérote les fichiers ouverts. Exemple : Open nom_fichier For Input As #1 affecte le n° 1 au fichier. C’est par ce numéro que l’on désigne le fichier dans les instructions. A la fin du travail il faut fermer le fichier avec l’instruction Close. Cours VB – ISG 2007/2008

I.1 Syntaxe de L'instruction Open OPEN FileName FOR AccessMode [Lock] AS [#] FileNumber [LEN=RecLength] OPEN “c:\fichier.txt” FOR Random AS # 1 LEN= len(Etudiant) OPEN “c:\fichier.txt” FOR Random Lock Read AS # 1 LEN= len(Etudiant) OPEN “c:\fichier.txt” FOR Output AS #1 OPEN “c:\fichier.txt” FOR Binary AS #1 OPEN “c:\fichier.txt” FOR Input AS #1 OPEN “c:\fichier.txt” FOR Append AS #1 FileName Nom du fichier avec son chemin complet For Append Mode d'accès séquentiel qui permet aux données d'être ajoutées à la fin du fichier For Input Mode d'accès séquentiel qui permet au fichier d'être lu uniquement For Output Mode d'accès séquentiel qui permet au fichier d'être écrit(écrase le fichier s'il existe déjà) For Binary Mode d'accès direct qui permet aux données d'être lues ou écrites octet par octet For Random Mode d'accès direct qui permet aux données d'être lues ou écrites dans des enregistrements déterminés par l'argument RecLength Séquentiel ou la taille de la mémoire tampon pour les fichiers d'accès séquentiel???? Direct Lock Utile pour les situations multi-utilisateurs. Les options sont : Shared, Lock Read, Lock Write et Lock Read Write FileNumber Numéro de fichier entre 1 et 511 RecLength La longueur de l'enregistrement pour les fichiers d'accès direct Cours VB – ISG 2007/2008

I.2 Syntaxe de L'instruction Close Lorsqu’on finit de travailler avec un fichier il faut le fermer avec l’instruction Close. Syntaxe: Close [#] FileNumber Exemple: Close #1 Close FileNumber Cours VB – ISG 2007/2008

I.3 Fonctions sur les fichiers La fonction FreeFile retourne un numéro disponible pour l’ouverture d’un fichier. Syntaxe: num = FreeFile La fonction LOF (Length Of File) renvoie la taille en octets d'un fichier ouvert. C'est une instruction très pratique pour lire un fichier sans connaître sa taille au départ. Syntaxe: LOF([#] NumFich) La fonction EOF (End Of File) renvoie true si c'est la fin du fichier et false sinon Syntaxe: EOF(NumFich) Cours VB – ISG 2007/2008

II. Accès séquentiels Ce type d’accès est approprié pour les fichiers textes (blocs continus) qui contiennent des caractères alphanumériques. Les fichiers séquentiels sont ouverts: soit en Input : en lecture seule ; soit en Output : en écriture à partir du début, le fichier est alors réinitialisé, il perd son contenu s’il en avait ; soit encore en Append : on rajoute des informations à partir de la fin sans perdre ce qu’il contient déjà. Dans les fichiers textes chaque ligne est limitée par les symboles CR-LF (Retour Chariot et Fin de Ligne). A chaque accès (lecture ou écriture), on traite le fichier: caractère par caractère ou ligne par ligne. Remarque si le fichier est inexistant vous aurez une erreur indiquant que le fichier est inexistant. Cours VB – ISG 2007/2008

II.1 Lecture d'un fichier séquentiel Le processus de base pour lire un fichier texte est le suivant: 1- Ouvrir le fichier en utilisant l'instruction Open nom_fichier For Input As #NumFich 2- Lire les données provenant du fichier en utilisant les instructions: 3- Fermer le fichier en utilisant l'instruction Close L=Input(n, #NumFich) Affect n caractère(s) dans L Input #num, A, B, C A, B, C (car on suppose qu’on a trois colonnes par ligne) Lit une ligne complète de données dans une série de variables, chaque variable étant séparée par une virgule Line Input #num, L Lit une ligne complète de données délimitée par un retour chariot et un retour à la ligne (CR-LF) et affecte le résultat à L Cours VB – ISG 2007/2008

Exemple 1: Lecture d'un fichier séquentiel Exercice: Ecrire un programme qui permet de lire soit ligne par ligne ou tout le fichier nommé "Fich_1.txt" stocké dans le lecteur E puis placez son contenu dans une zone texte d'une feuille. Solution: Propriétés du TextBox Name = TXTfile MultiLigne = True 'affichage sur plusieurs lignes ScrollBar = Both 'affichage des ascenseurs vertical et horizontal Propriétés du CommandButton 1 Name = cmdLireTout Caption = Lire tout le fichier Propriétés du CommandButton 2 Name = cmdLireLigne Caption = Lire ligne par ligne le fichier Cours VB – ISG 2007/2008

Exemple 1: Lecture d'un fichier séquentiel L'événement Click sur le bouton de commande nommé CMDLireTout de la feuille exécutera le code suivant: Private Sub CMDLireTout_Click() ' Détermine un numéro de fichier valide NumFich = FreeFile ' Ouverture du fichier "Fich_1.txt" sous E: en lecture Open "E:\Fich_1.txt" For Input As #NumFich ' Affectation dans la propriété Text du contrôle TXTfile de tout le contenu du fichier TXTfile.Text = Input( LOF(NumFich), #1) Close #NumFich ‘Fermeture du fichier End Sub Cours VB – ISG 2007/2008

Exemple 1: Lecture d'un fichier séquentiel L'événement Click sur le bouton de commande nommé CMDLireLigne de la feuille exécutera le code suivant: Private Sub CMDLireLigne_Click() Dim L As String txtFile.Text = "" ' Détermine un numéro de fichier valide num = FreeFile ' Ouverture du fichier "Fich_1.txt" sous e: en lecture Open "e:\Fich_1.txt" For Input As #num ' Affectation de tout le contenu du fichier dans la propriété Text du contrôle Txtfile Do While Not EOF(num) Line Input #num, L Txtfile.Text = Txtfile.Text &chr(13)&chr(10)& L Loop Close #1 ' Fermeture du fichier End Sub Cours VB – ISG 2007/2008

II.2 Écriture dans un fichier séquentiel Le processus de base pour écrire dans un fichier texte est le suivant: 1- Ouvrir le fichier avec l'instruction Open en utilisant le paramètre Output ou Append 2- Ecrire les données dans le fichier en utilisant les instructions: Print #num, L Ecrit une série de valeurs existant dans la chaîne de caractère L. Si on appelle print plusieurs fois alors: si l'instruction se termine par une virgule les données sont séparées par un caractère de tabulation; si l'instruction se termine par un point-virgule les données ne sont pas séparées; sinon (aucune ponctuation) les données sont séparées par un CR-LF. Cours VB – ISG 2007/2008

II.2 Écriture dans un fichier séquentiel Write #num, L Ecrit une série de valeurs existant dans la chaîne de caractère L et les entoure par des guillemets. Si on appelle write plusieurs fois alors: Si l'instruction se termine par un point-virgule ou virgule les données sont séparées par des virgules; Sinon (aucune ponctuation) les données sont séparées par un CR-LF. 3- Fermer le fichier Cours VB – ISG 2007/2008

Exemple 2 : Copie d’un fichier Exercice : Ecrire le code qui permet de lire un fichier nommé Fich_1.txt, ligne par ligne, et d’ajouter son contenu dans un second fichier déjà existant nommé Fich_2.txt et d’afficher le fichier résultat. Cours VB – ISG 2007/2008

Travail à faire Écrire un programme qui donne le même résultat que la commande Input [#]NumFich, A, B, C, … mais en utilisant la commande Line input et les opérations nécessaires sur les chaînes de caractères Cours VB – ISG 2007/2008

III. Accès direct For Random For Binary Cours VB – ISG 2007/2008

III.1 For Random Un fichier à accès direct est un fichier comprenant un enregistrement défini par un type personnalisé. Ce type particulier est utilisé pour lire et écrire des enregistrements. C'est le type de fichiers le plus utilisé pour gérer de grandes quantités de données. On peut les ouvrir en lecture écriture à l’aide de l’instruction Open. Ils sont par conséquent en mode Random. Il faut aussi préciser la taille de l'enregistrement. On ouvre un fichier à accès direct de la manière suivante: Open nom_fichier For Random As [#]NumFich Len=Len(VarEnreg) Où VarEnreg est la variable d'enregistrement Cours VB – ISG 2007/2008

Lecture et écriture des fichiers d’accès direct Les instruction Get et Put permettent respectivement la lecture et l’écriture dans ce type de fichiers. Get [#] NumFich, [num_enreg], var_enreg ' Lit l’enregistrement à la position num_enreg (ou à la position courante si ce paramètre n’apparaît pas) du fichier numéro numfich et le place dans la variable var_enreg Put [#] NumFich, [num_enreg], var_enreg ' Ecrit le contenu de la variable var_enreg à la position num_enreg (ou à la position courante si ce paramètre n’apparaît pas) dans le fichier numéro numfich. On peut accéder directement à un enregistrement en lecture écriture en utilisant l’instruction Seek. Syntaxe: Seek [#] NumFich, num_enreg ' positionne le pointeur dans le fichier numéro numfich à l’enregistrement num_enreg Cours VB – ISG 2007/2008

Exemple 3: fichiers directs en mode Random Private Type ADR 'Définition d'un type personnalisé Nom As String * 30 Ville As String * 20 End Type Sub MAIN() Dim Enr As ADR 'Ouverture du fichier en accès direct Open "C:\Gestion.TXT" For Random As 1 Len = Len(Enr) 'Ecriture dans le fichier de 2 enregistrements Enr.Nom = "Mohamed" Enr.Ville = "Tunis" Put 1, 1, Enr 'Ecriture du 1ier enregistrement Enr.Nom = "Sarra" Enr.Ville = "Bizerte" Put 1, 2, Enr 'Ecriture du 2ème enregistrement Get 1, 1, Enr 'lecture du 1ier enregistrement MsgBox Enr.Nom & " " & Enr.Ville 'Visualisation des champs Get 1, 2, Enr 'lecture du 2ième enregistrement Close 1 End Sub Cours VB – ISG 2007/2008

Open nom_fichier For Binary As #NumFich III.2 For binary L’ouverture par for binary est appropriée si le fichier n’a pas de structure propre. Ce mode est utile lorsque les autres types (séquentiel, random) ne conviennent pas au problème traité. Si le fichier est ouvert en binary on a alors un accès direct se basant sur le nombre d’octets précisé Ouverture en lecture écriture : Open nom_fichier For Binary As #NumFich Lecture : Get [#]NumFich, [posdebut] , BinVar Remarques Posdebut: La position par où commence la lecture les commandes de lecture séquentielles (line input, Input) sont aussi possibles L'écriture dans un fichier binaire Put [#]NumFich, [posdebut] , BinVar Cours VB – ISG 2007/2008

III.2 For binary Positionnement Seek [#]NumFich, Pos Si le fichier contient des enregistrement et qu’on a utilisé la commande open for binary pour l’ouvrir, cette commande permet le positionnement comme suit: Seek #NumFich, 1 : le premier Seek #NumFich, Len(Enr) : le second Seek #NumFich, Len(Enr)*2 : le troisieme … Si le fichier est un fichier texte le seek précise le nombre d’octets qu’il doit ignorer avant de commencer la lecture Binaire permet d’ouvrir texte ou enregistrement Si fichier texte: Get NF, posdebut, binvar Posdebut: précise le numero du caractere à partir duquel se fera la lecture Binvar: contient |Binvar| caracteres à partir de Posdebut Le seek est possible mais il précise le nombre d’octets qu’il doit ignorer avant de commencer la lecture ================================ Pour les fichiers d’enregistrements Seek NF, 1 : le premier Seek NF, Len(Enr) : le second Seek NF, Len(Enr)*2 : le troisieme … si on utilise le seek puis un get NF, , enr il lira directement l’enregistrement pointé par seek Cours VB – ISG 2007/2008

III.2 For binary Le nombre d'octets lus et écrits dépend du type de données de la variable de lecture nommée (dans cet exemple) BinVar. En général, on utilise des variables de type chaînes de caractères comme l'indique l'exemple suivant: Private Sub CMDBinaire_Click() 'On définit une variable qui sert à récupérer les données du fichier Dim BinVar As String 'On ouvre le fichier en mode binaire, Open "e:\Fich_1.txt" For Binary As #1 'On récupère les 100 premiers caractères BinVar = Space$(100) Get 1, , BinVar 'On affiche le résultat dans la zone text1 Text1.Text = BinVar 'On ferme le fichier Close 1 End Sub Private Sub CMDBinaire_Click() 'On définit une variable qui sert à récupérer les données du fichier Dim BinVar As String * 10 'On ouvre le fichier en mode binaire, Open "e:\Fich_1.txt" For Binary As #1 Get 1, , BinVar 'On affiche le résultat dans la zone text1 Text1.Text = BinVar 'On ferme le fichier Close 1 End Sub Cours VB – ISG 2007/2008

Remarques Générales Dans les modes Binary, Input et Random, on n’est pas obligé de fermer un fichier avant de l'ouvrir sous un autre numéro de fichier. Dans les modes Append et Output, on doit fermer un fichier avant de l'ouvrir avec un autre numéro de fichier. Si on ouvre un fichier texte en direct par for random alors les commandes de lecture séquentielles (input, line input, …) ne sont plus possibles Cours VB – ISG 2007/2008

Les commandes manipulant les fichiers Action ChDir Change le répertoire courant CurDrive Change le lecteur courant Dir Renvoie le nom de fichier ou un répertoire correspondant à un modèle ou à un attribut de fichier FileCopy Copie un fichier FileDateTime Renvoie la date et l'heure (temps) de la dernière modification du fichier FileLen Renvoie la taille d'un fichier en octets GetAttr Renvoie une valeur qui représente un attribut d'un fichier Kill Efface un fichier MkDir Crée un nouveau répertoire Name Renomme un fichier ou répertoire RmDir Efface un répertoire vide SetAttr Change l'attribut d'un fichier Cours VB – ISG 2007/2008

Exercice Écrire le code des deux boutons de commande. Cours VB – ISG 2007/2008