Simpel gezegd, tekstbestanden bevatten leesbaar ASCII tekens. We kunnen denken aan het werken met een tekstbestand in Delphi als analoog aan het afspelen of opnemen van informatie op een videorecorder.
Hoewel het mogelijk is om een tekstbestand te wijzigen, moet je rondspringen bij het verwerken van informatie of andere gegevens aan het bestand toevoegen dan op het einde is het raadzaam om een tekstbestand alleen te gebruiken als we weten dat we met gewone tekst werken en dergelijke bewerkingen niet vereist.
Tekstbestanden worden beschouwd als een reeks tekens die zijn opgemaakt in regels, waarbij elke regel wordt beëindigd door een markering aan het einde van de regel (een CR / LF-combinatie).
Het TextFile en de Assign Method
Om met tekstbestanden te gaan werken, moet u een bestand op een schijf koppelen aan een bestandsvariabele in uw code - aangeven een variabele van het type TextFile en gebruik de AssignFile-procedure om een bestand op een schijf aan een bestand te koppelen variabel.
Informatie lezen uit een tekstbestand
Als we de inhoud van een bestand in een stringlijst willen teruglezen, volstaat slechts één regel code.
Om informatie uit een bestand regel voor regel te kunnen lezen, moeten we het bestand openen voor invoer met behulp van de Reset procedure. Zodra een bestand opnieuw is ingesteld, kunnen we gebruiken ReadLn om informatie uit een bestand te lezen (leest een regel tekst uit een bestand en gaat dan naar de volgende regel):
Na het toevoegen van één regel tekst uit een bestand aan een memocomponent moet SomeTxtFile worden gesloten. Dit wordt gedaan door de Dichtbij trefwoord.
We kunnen de leesprocedure ook gebruiken om informatie uit een bestand te lezen. Read werkt net als ReadLn, behalve dat de aanwijzer niet naar de volgende regel wordt verplaatst.
EOF - Einde van bestand
Gebruik de EOF-functie om ervoor te zorgen dat u niet verder probeert te lezen dan het einde van het bestand. Laten we zeggen dat we de inhoud van het bestand in berichtvakken willen weergeven - regel voor regel totdat we aan het einde van een bestand komen:
Opmerking: het is beter om te gebruiken Herhalingslus dan de kringloop om rekening te houden met de (onwaarschijnlijke) mogelijkheid dat het bestand bestaat maar geen gegevens bevat.
Tekst naar een bestand schrijven
De WriteLn is waarschijnlijk de meest gebruikelijke manier om afzonderlijke stukjes informatie naar een bestand te sturen. De volgende code leest een tekst uit een Memo1-component (regel voor regel) en verzendt deze naar een nieuw gemaakt tekstbestand.
Afhankelijk van de status van het bestand dat aan de herschrijfprocedure wordt verstrekt, maakt het een nieuw bestand (opent het bestand voor uitvoer) met de naam toegewezen aan SomeTextFile. Als er al een bestand met dezelfde naam bestaat, wordt dit verwijderd en wordt er een nieuw leeg bestand gemaakt. Als SomeTextFile al is geopend, wordt het eerst gesloten en vervolgens opnieuw gemaakt. De huidige bestandspositie is ingesteld op het begin van het lege bestand.
Opmerking: Memo1.Lines. SaveToFile ('c: \ MyTextFile.txt') zal hetzelfde doen.
Soms moeten we alleen wat tekstgegevens toevoegen aan het einde van een bestaand bestand. Als dit het geval is, bellen we Toevoegen om ervoor te zorgen dat een bestand wordt geopend met alleen-lezen toegang met de bestandsaanwijzer aan het einde van het bestand. Zoiets als:
Wees je bewust van uitzonderingen
Over het algemeen moet u altijd gebruiken afhandeling van uitzonderingen bij het werken met bestanden. I / O zit vol verrassingen. Gebruik altijd CloseFile in een slotblok om te voorkomen dat de FAT van een gebruiker wordt beschadigd. Alle voorgaande voorbeelden moeten als volgt worden herschreven:
Manipuleren met gestructureerde bestanden
Delphi kan zowel ASCII-bestanden als bestanden met binaire gegevens verwerken. Hier zijn de technieken om mee te werken getypte en ongetypeerde (binaire) bestanden.