Créer une base de données à l'aide du fichier Delphi de fichiers typés

Mettez simplement un fichier est un séquence binaire d'un certain type. Dans Delphes, il existe trois classes de fichier: dactylographié, texte et non typé. Les fichiers typés sont des fichiers qui contiennent des données d'un type particulier, comme Double, Entier ou Type d'enregistrement personnalisé précédemment défini. Les fichiers texte contiennent des caractères ASCII lisibles. Les fichiers non typés sont utilisés lorsque nous voulons imposer la structure la moins possible à un fichier.

Fichiers dactylographiés

Alors que les fichiers texte se composent de lignes terminées par un CR / LF (#13#10) combinaison, les fichiers dactylographiés sont constitués de données provenant d'un type particulier de structure de données.

Par exemple, la déclaration suivante crée un type d'enregistrement appelé TMember et un tableau de variables d'enregistrement TMember.

type

 TMember = record

 Nom: chaîne[50];

email:
chaîne[30];

Messages: LongInt;
fin;

var Membres: tableau[1..50] de TMember; 

Avant de pouvoir écrire les informations sur le disque, nous devons déclarer une variable d'un type de fichier. La ligne de code suivante déclare une variable de fichier F.

instagram viewer

var F: fichier de TMember; 

Remarque: Pour créer un fichier tapé dans Delphi, nous utilisons ce qui suit syntaxe:

var SomeTypedFile: fichier de SomeType

Le type de base (SomeType) d'un fichier peut être un type scalaire (comme Double), un type de tableau ou un type d'enregistrement. Il ne doit pas s'agir d'une longue chaîne, d'un tableau dynamique, d'une classe, d'un objet ou d'un pointeur.

Pour commencer à travailler avec des fichiers de Delphi, nous devons lier un fichier sur un disque à une variable de fichier dans notre programme. Pour créer ce lien, nous devons utiliser AssignFile procédure pour associer un fichier sur un disque à une variable de fichier.

 AssignFile (F, 'Members.dat') 

Une fois l'association avec un fichier externe établie, la variable de fichier F doit être «ouverte» pour la préparer à la lecture et à l'écriture. Nous appelons la procédure de réinitialisation pour ouvrir un fichier existant ou la réécriture pour créer un nouveau fichier. Lorsqu'un programme termine le traitement d'un fichier, le fichier doit être fermé à l'aide de la procédure CloseFile. Après la fermeture d'un fichier, son fichier externe associé est mis à jour. La variable de fichier peut ensuite être associée à un autre fichier externe.

En général, nous devons toujours utiliser gestion des exceptions; de nombreuses erreurs peuvent survenir lors de l'utilisation de fichiers. Par exemple: si nous appelons CloseFile pour un fichier déjà fermé, Delphi signale une erreur d'E / S. D'un autre côté, si nous essayons de fermer un fichier mais que nous n'avons pas encore appelé AssignFile, les résultats sont imprévisibles.

Écrire dans un fichier

Supposons que nous ayons rempli un tableau de membres Delphi avec leurs noms, e-mails et nombre de publications et que nous voulons stocker ces informations dans un fichier sur le disque. Le morceau de code suivant fera le travail:

var

 F: fichier de TMember;

i: entier;
commencer

 AssignFile (F, 'members.dat');

 Réécrire (F);

essayer

pour j: = 1 à 50 faire

 Écriture (F, membres [j]);

enfin

 CloseFile (F);

fin;fin; 

Lire à partir d'un fichier

Pour récupérer toutes les informations du fichier «members.dat», nous utiliserions les éléments suivants code:

var

 Membre: TMember

 F: fichier de TMember;commencer

 AssignFile (F, 'members.dat');

 Réinitialiser (F);

essayer

sans Eof (F) commence

 Lire (F, membre);

{DoSomethingWithMember;}

fin;

enfin

 CloseFile (F);

fin;fin; 

Remarque: Eof est la fonction de vérification EndOfFile. Nous utilisons cette fonction pour nous assurer que nous n'essayons pas de lire au-delà de la fin du fichier (au-delà du dernier enregistrement stocké).

Recherche et positionnement

Les fichiers sont normalement accessibles séquentiellement. Lorsqu'un fichier est lu à l'aide de la procédure standard En lecture ou écrit à l'aide de la procédure standard Écriture, la position actuelle du fichier se déplace vers le composant de fichier ordonné numériquement suivant (enregistrement suivant). Les fichiers dactylographiés sont également accessibles de manière aléatoire via la procédure standard Seek, qui déplace la position actuelle du fichier vers un composant spécifié. le FilePos et Taille du fichier Les fonctions peuvent être utilisées pour déterminer la position actuelle du fichier et la taille actuelle du fichier.

{retour au début - le premier enregistrement}

 Chercher (F, 0);


{aller au 5 e record}

 Chercher (F, 5);


{Aller à la fin - "après" le dernier enregistrement}

 Rechercher (F, FileSize (F)); 

Modifier et mettre à jour

Vous venez d'apprendre à écrire et à lire l'ensemble des membres, mais que faire si tout ce que vous voulez faire est de rechercher le 10e membre et de modifier l'e-mail? La procédure suivante fait exactement cela:

procédure Changer l'e-mail(const RecN: entier; const Nouveau courriel: chaîne) ;var DummyMember: TMember;commencer

{attribuer, ouvrir, bloc de gestion des exceptions}

 Recherche (F, RecN);

 Lire (F, DummyMember);

 DummyMember. Courriel: = NewEMail;

{lire passe à l'enregistrement suivant, nous devons

revenir à l'enregistrement d'origine, puis écrire}
 Recherche (F, RecN);

 Écrire (F, DummyMember);

{Fermer le fichier}fin;

Fin de la tâche

Voilà, vous avez maintenant tout ce dont vous avez besoin pour accomplir votre tâche. Vous pouvez écrire les informations des membres sur le disque, vous pouvez les relire et vous pouvez même modifier certaines des données (e-mail, par exemple) au "milieu" du fichier.

L'important est que ce fichier ne soit pas un Fichier ASCII, voici à quoi ça ressemble Bloc-notes (un seul enregistrement):

 .Delphi Guide g Ò5 · ¿ì. 5.. B V.Lƒ, „¨[email protected]Ï.. ç.ç.ï.. 

instagram story viewer