Hantera filer från Ascii (text) från kod

Enkelt uttryckt innehåller textfiler läsbara ASCII-tecken. Vi kan tänka oss att arbeta med en textfil i Delphi som analogt med att spela eller spela in information på en videobandspelare.

Även om det är möjligt att göra ändringar i en textfil, hoppa runt när du bearbetar information eller lägga till vissa data till filen annat än i slutet, är det tillrådligt att använda en textfil bara när vi vet att vi arbetar med vanlig text och inga sådana operationer är nödvändiga.

Textfiler anses representera en sekvens av tecken formaterade till rader, där varje rad avslutas med en slutmarkör (en CR / LF-kombination).

Textfilen och tilldelningsmetoden

För att börja arbeta med textfiler måste du länka en fil på en disk till en filvariabel i din kod - förklara en variabel av typen TextFile och använda AssignFile-proceduren för att associera en fil på en disk med en filvariabel.

Läsa information från en textfil

Om vi ​​vill läsa tillbaka innehållet i en fil i en stränglista, gör bara en rad med koden jobbet.

För att läsa information från en fil rad för rad måste vi öppna filen för inmatning genom att använda Återställa procedur. När en fil har återställts kan vi använda ReadLn för att läsa information från en fil (läser en rad text från en fil flyttas sedan till nästa rad):

Efter att ha lagt till en rad text från en fil till en memokomponent måste SomeTxtFile stängas. Detta görs av Stänga nyckelord.

Vi kan också använda Läs-proceduren för att läsa information från en fil. Läs fungerar precis som ReadLn, förutom att det inte flyttar pekaren till nästa rad.

EOF - End Of File

Använd EOF-funktionen för att se till att du inte försöker läsa bortom filens slut. Låt oss säga att vi vill visa innehållet i filen i meddelandelådor - en rad i taget tills vi kommer till slutet av en fil:

Obs! Det är bättre att använda While loop än till loopen för att ta hänsyn till (osannolik) möjligheten att filen finns men inte innehåller några data.

Skriva text till en fil

De writeln är förmodligen det vanligaste sättet att skicka enskilda information till en fil. Följande kod läser en text från en Memo1-komponent (rad för rad) och skickar den till någon nyskapad textfil.

Beroende på tillståndet för filen som tillhandahålls i Omskrivningsförfarandet skapar den en ny fil (öppnar filen för utdata) med namnet tilldelat SomeTextFile. Om en fil med samma namn redan finns raderas den och en ny tom fil skapas på sin plats. Om SomeTextFile redan är öppet stängs det först och skapas sedan igen. Den aktuella filpositionen är inställd på början av den tomma filen.

Obs: Memo1.Lines.SaveToFile ('c: \ MyTextFile.txt') kommer att göra samma sak.

Ibland behöver vi bara lägga till lite textdata i slutet av en befintlig fil. Om detta är fallet ringer vi Bifoga för att säkerställa att en fil öppnas med endast skrivåtkomst med filpekaren placerad i slutet av filen. Något liknande:

Var medveten om undantag

Generellt sett bör du alltid använda undantagshantering när du arbetar med filer. I / O är full av överraskningar. Använd alltid CloseFile i ett slutligt block för att undvika möjligheten att skada användarens FAT. Alla tidigare exempel bör skrivas om på följande sätt:

Hantera med strukturerade filer

Delphi har förmågan att hantera både ASCII-filer och filer som har binär data. Här är teknikerna för att arbeta med typade och otypade (binära) filer.