Section courante

A propos

Section administrative du site

 Langage  Installation  Elément  Tutoriel  Programmation  Emulateur  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
QuickBASIC 4.5
Les remarques
Les opérateurs
Les instructions conditionnelles
Les instructions de boucles
Type de données
Définition de fonction
Définition de variable
Référence de procédures et fonctions
Référence de méta-commandes
Variables, types de données et arithmétique
Les fichiers et le traitement séquentiel des fichiers
Chaînage, fonctions et sous-programmes
Graphiques
Bonjour
Astronomie
Biochimie
Fichiers
Finance
Fractale
Géographie
Géométrie
Gouvernement
Histoire
Mathématique
Médicale
Météorologie
Océanographie
Sport
Temps
Tri
Trigonométrie
Validation
Phase lunaire
Calcul du calcium corrigé
Calcul le taux d'alcoolémie
Texte séquentiel
IPaymt/Interet
NPer
PPaymt/Principal
Triangle de «Sierpinski»
Distance en Km entre deux longitudes et latitudes
Aire d'un cercle
Aire d'une surface de prisme rectangulaire
Aire d'un triangle
Distance entre deux points
Treillis
Taxe de vente canadienne
Chiffre romain
Ackermann
Exp
Factoriel
Fibonacci
Log
Nombre premier
Odd
Random
Sqrt
Triangle Pascal
Hauteur utérine
Unité de mesure
Fréquence des vagues
Hockey
Année bissextile
Date de la Pâque
Heure courante
FirstDayOfMonth
Tri à bulle (Bubble Sort)
Tri Shell Sort
ArcCos
ArcSin
Atn/ATan/ArcTan/ArcTangente
Cos
Sin
Courriel
DOSBox
PCE - PC Emulator
PCem
Débogage
Table ASCII
Table de codes ANSI et page de codes
Références des codes d'erreurs
Références des adresses de cellule mémoire du «PC IBM»
Préface
Notes légal
Dictionnaire
Recherche

Les fichiers et le traitement séquentiel des fichiers

Pour écrire des programmes pratiques nécessitant une quantité significative d'entrée de données, vous devez maîtriser l'utilisation des fichiers de données. Vous pouvez utilisé l'instruction INPUT pour saisir des données depuis le clavier dans vos programmes, mais dans des applications réelles, les données sont souvent saisies à partir de fichiers entreposés sur des disques. Il existe deux raisons importantes pour l'utilisation des fichiers. Premièrement, de nombreux utilisateurs doivent traiter des milliers ou des centaines de milliers d'éléments de données, beaucoup trop pour être saisis chaque fois qu'un programme est exécuté. Deuxièmement, les données produites par un programme peuvent devenir l'entrée d'un autre programme, éliminant ainsi le besoin de ressaisir les données manuellement.

Concepts de fichiers

Un fichier est une collection de données dans un format défini afin que les éléments de données individuels puissent être distingués. Un annuaire téléphonique est un exemple commun de fichier dans un format défini. Le format est : le nom à gauche avec le nom de famille en premier, le numéro de téléphone à droite et l'adresse entre le nom et le numéro; ces trois éléments sont à la même position (nom, adresse, numéro) pour chaque ligne dans la liste. Les noms individuels sont classés par ordre alphabétique.

Organisation des fichiers

Un champ est un élément de données unique dans le fichier. Chaque champ est composé de caractères. Un code produit, un prix d'achat et une date de transaction sont tous des exemples de champ. Chaque entrée ou enregistrement de l'annuaire téléphonique comporte trois champs : le nom, l'adresse et le numéro de la personne. Un champ peut être numérique ou chaîne à caractères. Un champ numérique peut être utilisé dans les calculs et peut contenir n'importe quelle combinaison de caractères. Un enregistrement est un groupe de champs contenant des données sur un individu, un objet ou un événement spécifique. Dans l'annuaire téléphonique, le nom, l'adresse et l'annuaire téléphonique d'une personne, ainsi que le nom, l'adresse et le numéro de téléphone de l'individu constituent un enregistrement. Notez que dans chaque enregistrement de l'annuaire téléphonique, les champs sont dans le même ordre&nbssp;: nom, adresse, numéro. Un fichier est une collection d'enregistrements associés, chaque enregistrement ayant les mêmes champs disposés dans le même ordre. Les fichiers courants dans les systèmes informatiques d'entreprise sont par exemple la paie, les comptes fournisseurs, les comptes clients et l'inventaire. La collection de chèques retournés est un fichier. Chaque chèque est un enregistrement composé des champs suivants : numéro de chèque, date, bénéficiaire, montant en caractères, montant numérique et numéro de compte. Bien que chaque chèque contienne des données différentes, tous les chèques ont le même format. Chaque champ du chèque est un ensemble de caractères numériques ou de chaîne de caractères.

Types de fichier

Les fichiers maîtres contiennent des données relativement permanentes. Un fichier de dossier étudiant est un exemple. Un dossier d'étudiant peut inclure des champs pour le nom, l'adresse, la classe, le nombre d'heures de crédit et la moyenne pondérée cumulative de l'élève. Un fichier d'inventaire est un autre exemple; les enregistrements du fichier d'inventaire comprennent normalement un numéro de produit, un coût, un prix, un emplacement et une quantité disponible. Les fichiers de transaction contiennent des enregistrements d'activité de données utilisés pour mettre à jour un fichier maître. Par exemple, à la fin de chaque semestre, de nombreux collèges créent un fichier de transactions contenant les données nécessaires avec les données nécessaires pour mettre à jour deux champs - moyenne pondérée cumulative et heures de crédit complétées - dans leurs fichiers étudiants. De même, des fichiers contenant des données sur les ventes et les transactions de commande sont nécessaires pour mettre à jour les fichiers d'inventaire.

Clefs d'enregistrement

Une clef est un champ dans un enregistrement identifiant l'enregistrement parce que sa valeur est unique à cet enregistrement ou indique que l'enregistrement appartient à une catégorie spécifique d'enregistrements dans le fichier. Les enregistrements du fichier maître ont au moins une clef unique distinguant cet enregistrement de tous les autres dans le fichier. Les numéros de chèque dans le fichier sont une clef unique. La sécurité sociale et d'autres numéros d'identification sont des clefs communes dans les fichiers commerciaux. La mise à jour d'un fichier maître d'étudiant fournit une illustration de l'utilisation de clefs n'étant pas uniques. Le fichier principal a un seul enregistrement pour chaque étudiant, et cet enregistrement est identifié par un numéro d'identification d'étudiant. À la fin de chaque semestre, le fichier maître est mis à jour avec de nouveaux rapports de notes. Un fichier de transaction contient un enregistrement pour chaque cours suivi par chaque étudiant. Si, par exemple, un étudiant, un étudiant a suivi cinq cours, le fichier de transaction contient cinq enregistrements de transaction avec le numéro d'identification de cet étudiant comme clef.

Accès aux fichiers

Les fichiers sont souvent désignés par la manière dont ils sont organisés et accessibles dans un système informatique. En général, les fichiers sont accessibles de manière séquentielle, aléatoire (directement) ou à l'aide d'un index. Si la majorité des enregistrements doivent être traités, l'accès séquentiel est généralement plus efficace. Si quelques enregistrements doivent être traités ou si les enregistrements sont traités dans un ordre aléatoire, un accès direct est nécessaire. Les enregistrements des fichiers séquentiels sont accessibles de manière séquentielle, en commençant par le premier enregistrement du fichier. Chaque enregistrement doit être entreposé ou récupéré dans un ordre consécutif. L'ordinateur ne peut pas accéder au 100e enregistrement d'un fichier séquentiel sans accéder au préalable aux 99 enregistrements précédents. Par exemple, la lecture des données du chèque numéro 2632 nécessite de lire d'abord les données des chèques 2626-2631. C'est le seul le type d'accès possible pour les fichiers entreposés sur bandes magnétique.

Les fichiers à accès direct ou aléatoire permettent un accès direct à n'importe quel enregistrement. Ils peuvent également être traités séquentiellement. Encore une fois, l'annuaire téléphonique est un exemple familier; vous pouvez accéder directement à n'importe quel nom du répertoire sans avoir à lire les noms précédents, ou vous pouvez commencer à partir du début du livre, en examinant chaque nom tour à tour. Les fichiers indexés sont accessibles directement à l'aide d'un index pour référencer les enregistrements dans un fichier. L'index sert de pointeur vers l'emplacement de l'enregistrement et permet à l'ordinateur de localiser l'enregistrement sans avoir à lire séquentiellement le fichier. Par exemple, pour trouver des informations sur le traitement des fichiers dans cette annuaire, vous pouvez d'abord vous référer à l'index, puis vous tourner vers le numéro de page indiqué. Cette méthode est beaucoup plus rapide que de démarrer sur la première page et de rechercher des informations sur le traitement des fichiers. Certains langages de programmation, y compris COBOL et RPG, prennent en charge l'organisation des index, mais la plupart des versions de BASIC ne le font pas. Une combinaison d'un fichier séquentiel, d'une table et d'un fichier aléatoire peut cependant être utilisée pour mettre en oeuvre des fichiers d'index dans QuickBASIC; la version 7.0 et les versions ultérieures de Professional BASIC de Microsoft prennent en charge l'organisation des fichiers d'index.

Instructions et fonctions d'entrée/sortie de fichier

Voici la liste des instructions et fonctions utilisées pour les entrées/sorties de fichier :

Tâche Instruction ou fonction Action
Créer un nouveau fichier ou accéder à un fichier existant. OPEN Ouvre un fichier pour récupérer ou entreposer des enregistrements d'entrées/sorties.
Fermer un fichier CLOSE Termine les entrées/sorties sur un fichier.
Entreposer des données dans un fichier PRINT # Entrepose une liste de variables en tant que champs d'enregistrement dans un fichier séquentiel ouvert précédemment.
PRINT USING # Similaire à PRINT #, sauf que PRINT USING # formate les champs d'enregistrement.
WRITE # Entrepose une liste de variables en tant que champs d'enregistrement dans un fichier séquentiel ouvert précédemment.
WIDTH Spécifie une longueur standard pour chaque enregistrement dans un fichier séquentiel.
PUT Entrepose le contenu d'une variable définie par l'utilisateur dans un fichier binaire ou à accès aléatoire précédemment ouvert.
Récupération des données d'un fichier INPUT # Lit les champs d'un enregistrement et affecte chaque champ de l'enregistrement à une variable de programme (fichiers séquentiels).
INPUT$ Lit une chaîne de caractères dans un fichier.
LINE INPUT # Lit un enregistrement à partir d'un fichier séquentiel et l'entrepose dans une seule variable de chaîne de caractères.
GET Lit les données d'un fichier binaire ou à accès aléatoire et affecte les données aux éléments d'une variable définie par l'utilisateur.
Gestion des fichiers sur le disque FILES Affichage une liste des fichiers dans un répertoire spécifié.
FREEFILE Renvoie le prochain numéro de fichier disponible
KILL Supprime un fichier du disque.
NAME Modifie le nom d'un fichier
Obtenir des informations sur un fichier. EOF Teste si toutes les données ont été lues à partir d'un fichier.
FILEATTR Renvoie le numéro attribué par le système d'exploitation à un fichier ouvert et un numéro indiquant le mode dans lequel le fichier a été ouvert (INPUT, OUTPUT, APPEND, BINARY ou RANDOM).
LOC Donne la position actuelle dans un fichier. Avec un accès binaire, il s'agit de la position d'octet. Avec un accès séquentiel, il s'agit de la position d'octet divisée par 128. Avec un accès aléatoire, il s'agit du numéro d'enregistrement du dernier enregistrement lu ou écrit.
LOF Donne le nombre d'octets dans un fichier ouvert
SEEK (fonction) Donne l'emplacement où la prochaine opération d'entrée/sortie aura lieu. Avec un accès aléatoire, il s'agit du numéro du prochain enregistrement à lire ou à écrire. Avec tous les autres types d'accès aux fichiers, il s'agit de la position d'octet du prochain octet à lire ou à écrire.
Se déplacer dans un fichier SEEK (commande) Définit la position d'octet pour la prochaine opération de lecture ou d'écriture dans un fichier ouvert.

Programmes de traitement de fichiers

En général, il y quatre types de programmes de traitement de fichiers. Ils sont :

Des programmes de création de fichiers sont nécessaires pour créer des fichiers maîtres et créer des fichiers de transaction. Les données sont saisies dans ces programmes puis formatées et écrites dans le fichier à créer. Ces programmes contiennent souvent des routines de validation des données pour vérifier que les données saisies sont correctes.

Les programmes de mise à jour des fichiers conservent les données des fichiers maîtres à jour. Il existe deux types généraux de programmes de mise à jour : la publication et la maintenance des fichiers. La publication est le processus de modification de la valeur d'un ou de plusieurs champs dans un enregistrement. Un exemple d'écriture est la rédaction d'un chèque et l'ajustement du solde en soustrayant le montant du chèque. La maintenance des fichiers est le processus d'ajout, de suppression et de modification d'enregistrements dans un fichier maître. Un dossier d'étudiant universitaire en est un bon exemple. Il doit être continuellement entretenu au fur et à mesure que de nouveaux étudiants sont admis au collège, que les anciens étudiants obtiennent leur diplôme ou le quittent, et que d'autres changent d'adresse et de numéro de téléphone.

Les programmes de rapport produisent des rapports basés sur les données d'un fichier. Les rapports peuvent contenir une liste de tous les enregistrements du fichier ou un résumé des données. Les rapports peuvent également être classés par heure. Certains rapports sont produits à des heures planifiées et d'autres sont produits uniquement à la demande.

Les programmes de recherche permettent un accès immédiat à un enregistrement particulier dans un fichier. Exemple de fichier, un caissier de banque peut avoir besoin de voir le solde actuel d'un client, ou le registraire peut avoir besoin de voir si un étudiant a suffisamment de crédits pour obtenir son diplôme.

Compatibilité des fichiers

Les programmes de traitement de fichiers sont rarement utilisés de manière isolée. Ils doivent souvent être capables de lire les données d'un fichier créé par un autre programme et d'écrire des données dans un fichier pour qu'un autre programme les utilise. Pour que cela se produise, la conception des champs et des enregistrements dans les différents fichiers doit être coordonnée afin que les programmes produisent des fichiers compatibles.

Un exemple de programme utilisant un fichier séquentiel pour l'entrée

Pour supporter le traitement des données à partir d'un fichier séquentiel, considérez le problème suivant : «M. Tremblay de Rocher et Tremblay, avocats, a demandé une liste du nom des clients du cabinet. Le fichier client contient les numéros de compte client et les noms de client. Le rapport imprimé de M. Tremblay doit comprendre un entête, une liste à simple interligne des noms des clients et un message de fin de rapport».

Pour un rapport imprimé comme celui-ci, un graphique imprimé, comme un formulaire de conception d'écran, est un outil de conception utile. Le nombre en haut du graphique fait référence aux positions sur la ligne d'impression sur la page. Les imprimantes peuvent avoir de 30 à 144 positions d'impression ou plus. Certaines imprimantes ont également des tailles de caractères variables et le nombre d'espaces qu'elles impriment normalement 80 caractères par ligne, mais la plupart peuvent également imprimer dans un mode condensé autorisant 132 caractères par ligne. Le compromis pour les caractères supplémentaires est une lisibilité réduite. Un rapport comporte généralement trois catégories de lignes. Les lignes d'entête sont imprimées en haut pour titrer le rapport et identifier les colonnes d'informations. Les lignes de détail sont celles imprimées chaque fois qu'un cordon est traité. Les lignes de résumé apparaissent à la fin d'un rapport (ou d'une section d'un rapport) après que les enregistrements d'un fichier (ou d'une partie de celui-ci) ont été traités. Ils peuvent inclure des totaux numériques et des messages de fin de rapport.

Pour le rapport Rocher et Tremblay, vous devez concevoir un entête simple, les lignes de détail du corps du rapport et un message de fin de rapport. La ligne d'entête du graphique d'impression se compose des lettres réelles à imprimer. Une ligne vide sépare la ligne d'entête des lignes de détail. Les détails commencent à la ligne 3 du rapport. Le X apparaît dans chacun des 20 blocs où les données peuvent être imprimées. Il y a 20 X car un maximum de 20 caractères est autorisé dans ClientName$. Un X indique qu'un caractère peut être imprimé à une position. Les caractères réellement imprimés dépendent du contenu du fichier.

Les trois lignes de X sur le graphique d'impression indiquent que plus d'une ligne sera probablement imprimée, mais le nombre de lignes imprimées dépend du nombre d'enregistrements traités. Les trois lignes consécutives de X indiquent également que les lignes de détail sont à simple interligne. Le message de fin de rapport est espacé d'une ligne au-delà de la dernière ligne de détail et les lettres à imprimer sont placées dans les blocs du graphique d'impression. Après avoir terminé la conception, vous demandez à M. Tremblay de revoir vos plans pour vous assurer que c'est bien le rapport qu'il souhaite. Dans ce cas, il convient que le rapport est effectivement ce dont il a besoin et il vous félicite pour votre bon travail.

Le fichier d'entrée pour la liste des clients Rocher et Tremblay est un fichier séquentiel d'enregistrements avec les champs ClientAcct$ et ClientName$, dans cet ordre. Le nom du fichier est CLIENT.SEQ. Le champ du nom du client ne doit pas dépasser 20 caractères, mais les noms peuvent contenir plus de 20 caractères. Le champ du numéro de compte client, n'étant pas utilisé dans ce programme, comporte 3 caractères. Description de l'échantillon d'un enregistrement pour CLIENT.SEQ :

Nom du champ Longueur des données Type de données
ClientAcct$ 3 Chaîne de caractères
ClientName$ 20 Chaîne de caractères

Le tableau suivant répertorie un ensemble d'exemples d'enregistrements dans le fichier Rocher et Tremblay afin que vous puissiez voir la relation entre la définition d'enregistrement et les données de chaque enregistrement du fichier :

"101","ALEXANDRE GAGNON"
"150","JEAN LESSARD"
"201","MARIE BRISEBOIS"
"301","BOUTIQUE DE CADEAUX GAGNÉ"
"360","MARGERITE BOULAY"
"401","RICHARD LAMBERT"
"501","SERVICES INFORMATIQUES"
"540","HENRI CARLE"
"601","MAGALIE PAQUIN"
"701","PHILIPPE LEGENDRE"
"780","CATHERINE ROBITAILLE"
"801","ELIZABETH LANDRY"
"820","CADEAU ALLO"
"901","JUSTIN MAYER"

Dans cet exemple, les champs de chaîne de caractères sont entourés de guillemets doubles. Les guillemets sont facultatifs, et dans ce texte, nous présentons des exemples de fichiers avec et sans les guillemets. Maintenant que vous avez terminé la conception du programme, vous êtes prêt à coder les instructions du programme. Le programme suivant contient une version possible du code pour fournir la liste des clients de M. Tremblay. La première ligne du programme contient des commentaires énumérant le but et le nom du programme. Les seuls éléments décrits dans la section décrite dans les variables sont les champs du fichier CLIENT.SEQ. Le premier module du programme est ControlModule, appel les autres modules dans l'ordre&nnbsp;: WriteHeading d'abord, puis ProcessFile et enfin WriteEndMessage :

  1. 'Liste client:
  2. ' Programme pour afficher la liste des clients
  3. 'Nom du fichier:
  4. ' LISTCLT.BAS
  5. 'Variables du fichier client:
  6. ' CLIENT.SEQ
  7. ' Enregistrement client:
  8. ' ClientAcct$
  9. ' ClientName$
  10.  
  11. ControlModule:
  12.  GOSUB WriteHeadling
  13.  GOSUB ProcessFile
  14.  GOSUB WriteEndMessage
  15.  END
  16.  
  17. WriteHeadling:
  18.  LPRINT "LISTE CLIENT"
  19.  LPRINT
  20.  RETURN
  21.  
  22. ProcessFile:
  23.  OPEN "CLIENT.SEQ" FOR INPUT AS #1
  24.  DO UNTIL EOF(1)
  25.   INPUT #1,ClientAcct$,ClientName$
  26.   LPRINT ClientName$
  27.  LOOP
  28.  CLOSE #1
  29.  RETURN
  30.  
  31. WriteEndMessage:
  32.  LPRINT
  33.  LPRINT "FIN DU LA LISTE DE CLIENT"
  34.  RETURN


PARTAGER CETTE PAGE SUR
Dernière mise à jour : Vendredi, le 27 novembre 2020