Presentation laddar. Vänta.

Presentation laddar. Vänta.

Filhantering Grundprincipen för filhantering Öppna filen Gör nå’t (läs eller skriv) Stäng filen.

Liknande presentationer


En presentation över ämnet: "Filhantering Grundprincipen för filhantering Öppna filen Gör nå’t (läs eller skriv) Stäng filen."— Presentationens avskrift:

1 Filhantering Grundprincipen för filhantering Öppna filen Gör nå’t (läs eller skriv) Stäng filen

2 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Datafiler Filer kan innehålla Ren text (ex källkodsfiler) Formaterad text (ex.doc-filer) Binärdata (binär information,.exe-filer)

3 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 33 Källa, Ex tangentbord Program C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer ”inström” Program ”utström” Destination, ex. fil på hårddisk Inströmmar används för att “läsa” data Utströmmar används för att “skriva” data

4 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 44 Processor Utenhet Inenhet Hårddisk In- och utenhet Dataströmmar

5 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 55 C# I/O Streams Kommunikationskanalen kan vara en nätverkslänk, en minnesbuffert, en fil eller en användarterminal Det spelar ingen roll varifrån informationen kommer, eller vilken typ av data som läses eller skrivs, algoritmerna blir ändå i stort desamma Därför kan strömmarna användas med likartade metoder

6 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 66 System.IO Denna namnrymnd innehåller klasser för dataströmmar till och från filer och vanligen till vår bildskärm (klassen Console). Även dataströmmar kan vi se som ”filer”, dvs måste öppnas och stängas…

7 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 77 System.IO Denna namnrymd innehåller klasser för dataströmmar till och från filer, strängar och minne. Klasserna kan indelas i tre kategorier: -För hantering av filer och kataloger Directory- och File klasser -För läsning/skrivning av bytevärden Stream-klasser -För läsning/skrivning av text Reader/Writer-klasser

8 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 88 Att skriva till en textfil StreamWriter utfil = new StreamWriter("Testa.txt"); utfil.Write("Du kan använda samma metoder här "); utfil.WriteLine("som mot 'Console.Out', ex 'WriteLine'!"); utfil.Close(); Öppna Skriv Stäng

9 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 99 Att läsa från en textfil StreamReader infil = new StreamReader("Testa.txt"); while (true) { string line = infil.ReadLine(); if (line == null) break; Console.WriteLine(line); } infil.Close(); Öppna Läs Stäng

10 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 10 End-Of-File (EOF) Från en sekventiell fil läses allt i ”tur och ordning”, exempelvis rad efter rad, eller post efter post. När läsningen sker och det inte längre finns något kvar att läsa in från filen uppstår EOF. Hur EOF hanteras varierar mycket mellan olika språk och utvecklingsmiljöer. Ett vanligt sätt är att en ”statusflagga” blir satt, som vi kan testa om den är ”true” eller ”false”. I C# ser vi att vi kommit till EOF genom att resultatet av inläsningen blir null.

11 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 Vad händer om vi fortsätter efter EOF? Även detta varierar mycket mellan olika språk och utvecklingsmiljöer. Några vanliga beteenden: Ett felmeddelande ges (exempelvis att ett Exception kastas) Den sista posten bearbetas igen och igen och igen…

12 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 12 Read-ahead I miljöer där en statusflagga används för EOF, brukar detta kombineras med Read-Ahead, dvs att det sker en läsning från filen innan loopen börjar, men som inte flyttar punkten för nästa inläsning. Därigenom vet vi om det finns något att läsa in, och kan använda det i vår loop. Exempel, om vi använt en sådan filtyp: while ( !infil.EOF ) { string line = infil.ReadLine(); Console.WriteLine(line); }


Ladda ner ppt "Filhantering Grundprincipen för filhantering Öppna filen Gör nå’t (läs eller skriv) Stäng filen."

Liknande presentationer


Google-annonser