Gestion des fichiers Ascii (texte) à partir du code Delphi

click fraud protection

Autrement dit, les fichiers texte contiennent lisibles ASCII personnages. Nous pouvons penser à travailler avec un fichier texte dans Delphi comme une lecture ou un enregistrement d'informations sur une cassette de magnétoscope.

Bien qu'il soit possible d'apporter des modifications à un fichier texte, sautez lors du traitement des informations ou ajoutez des données au fichier autres que à la fin, il est conseillé d'utiliser un fichier texte uniquement lorsque nous savons que nous travaillons avec du texte ordinaire et qu'aucune de ces opérations n'est nécessaire.

Les fichiers texte sont considérés comme représentant une séquence de caractères formatés en lignes, où chaque ligne se termine par un marqueur de fin de ligne (un Combinaison CR / LF).

Le TextFile et la méthode Assign

Pour commencer à travailler avec des fichiers texte, vous devez lier un fichier sur un disque à une variable de fichier dans votre code - déclarer une variable de type TextFile et utilisez la procédure AssignFile pour associer un fichier sur un disque à un fichier variable.

instagram viewer

Lecture d'informations à partir d'un fichier texte

Si nous voulons relire le contenu d'un fichier dans une liste de chaînes, une seule ligne de code fera l'affaire.

Pour lire les informations d'un fichier ligne par ligne, nous devons ouvrir le fichier pour contribution en utilisant le Réinitialiser procédure. Une fois un fichier réinitialisé, nous pouvons utiliser ReadLn pour lire les informations d'un fichier (lit une ligne de texte d'un fichier puis passe à la ligne suivante):

Après avoir ajouté une ligne de texte d'un fichier à un composant mémo, SomeTxtFile doit être fermé. Cela se fait par le Fermer mot-clé.

Nous pouvons également utiliser la procédure de lecture pour lire les informations d'un fichier. La lecture fonctionne exactement comme ReadLn, sauf qu'elle ne déplace pas le pointeur sur la ligne suivante.

EOF - Fin de fichier

Utilisez la fonction EOF pour vous assurer que vous n'essayez pas de lire au-delà de la fin du fichier. Disons que nous voulons afficher le contenu du fichier dans des boîtes de message - une ligne à la fois jusqu'à la fin d'un fichier:

Remarque: il est préférable d'utiliser Boucle while que la boucle Jusqu'à pour prendre en compte la possibilité (peu probable) que le fichier existe mais ne contienne aucune donnée.

Écrire du texte dans un fichier

le WriteLn est probablement le moyen le plus courant d'envoyer des informations individuelles dans un fichier. Le code suivant lira un texte à partir d'un composant Memo1 (ligne par ligne) et l'enverra à un fichier texte nouvellement créé.

Selon l'état du fichier fourni pour la procédure de réécriture, il crée un nouveau fichier (ouvre le fichier pour la sortie) avec le nom attribué à SomeTextFile. Si un fichier du même nom existe déjà, il est supprimé et un nouveau fichier vide est créé à sa place. Si SomeTextFile est déjà ouvert, il est d'abord fermé puis recréé. La position actuelle du fichier est définie au début du fichier vide.

Remarque: Memo1.Lines. SaveToFile ('c: \ MyTextFile.txt') fera de même.

Parfois, nous devrons simplement ajouter des données de texte à la fin d'un fichier existant. Si tel est le cas, nous appellerons Ajouter pour vous assurer qu'un fichier est ouvert avec un accès en écriture seule avec le pointeur de fichier positionné à la fin du fichier. Quelque chose comme:

Soyez conscient des exceptions

En général, vous devez toujours utiliser gestion des exceptions lorsque vous travaillez avec des fichiers. Les E / S sont pleines de surprises. Utilisez toujours CloseFile dans un bloc finally pour éviter la possibilité de corrompre le FAT d'un utilisateur. Tous les exemples précédents doivent être réécrits comme suit:

Manipulation avec des fichiers structurés

Delphi a la capacité de gérer à la fois les fichiers ASCII et les fichiers contenant des données binaires. Voici les techniques de travail avec fichiers typés et non typés (binaires).

instagram story viewer