Filhantering Grundprincipen för filhantering Öppna filen

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

Avlusning Debugger (”avlusare”) Breakpoints Watch.
Relationsoperatorer Java/C# C/C++ Visual Basic FORTRAN PASCAL ORACLE
Svenska Akademins Ordbok (SAOB)
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
9. Gör ritningen innan Du bygger huset
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 1 ( ) Innehåll: -Introduktion av kursen -Program och processer -Fildeskriptorer -Filhantering.
10. Elementen i strukturerad programmering
Klasser och objekt.
Fortsättningskurs i Programmering lektion 6
Datatyper C# C/C++ Java VB Fortran Pascal bool boolean Boolean
Några standardalgoritmer
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
Nätverkskommunikation
Programmeringsteknik för K och Media
Programmeringsteknik K och Media
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 5 Python: argument från kommando-tolken
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Next previous Innehåll Inledning Några enkla exempel Pekare till och kort beskrivning av större exempel Speciella referenser (som används i marginalen)
Strömmar Vid läsning och skrivning används något som kallas strömmar.
Distribuerade filsystem
Streams and File I/O Kapitel 10. Agenda Exceptions Textfiler Skriva Appenda Läsa File Sökvägar.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Programmering i C# 2. Inledande detaljer.
Programmering B PHP Lektion 2
INTRODUKTION TILL PROGRAMMERING
Föreläsning 5.  Idag  Kap 7 i Dawson  Filer  Felhantering med try…except.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering B PHP Lektion 2
Programmering B PHP Lektion 3
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Vektorer (klassen Vector) Sortering
Max start-guide Liten och väldigt snabbt ihopkastad.
Polymorfism.
Räckvidd och synlighet. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Synlighet (meddelandesändning) Det.
Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar.
Arv.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: -Programmerade rörledningar -Namngivna rörledningar.
1. En infrastruktur för programutveckling
Metoder och slingor Metoder och dess typ Slingor med while och for-satser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: -Producent – konsument problemet -Förmedling av fildeskriptorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Föreläsning 14 ”Enkel” Filhantering.
Objektorientering.
Databehandling Ett datorprogram består i huvudsak av
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 11 ( ) Innehåll: - Förmedling av fildeskriptorer.
Föreläsning 10 Stränghantering.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
INTRODUKTION TILL PROGRAMMERING
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
Kenneth Wilhelmsson 1 Logikprogrammering 10 P Onsdag 20 november 2002.
Problemlösningsmetodik
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
INTRODUKTION TILL PROGRAMMERING
Anders Sjögren Filer - långtidslagring. Anders Sjögren Filtyper i DOS talet ett ( intx=1; ) lagrat i en –textfil, (en sekvens av tecken ( bytes )) enligt.
Länkade listor Binära träd
ITK:P2 F8 Strömmar och filhantering DSV Peter Mozelius.
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
Programmering i C# Laborationer.
TILLÄMPAD DATALOGI (TILDA) Övning 1 Marcus Hjelm
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Knappar och rutor. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 System.ComponentModel System.Windows.Forms.
Föreläsning 9 Inläsning och utskrift på fil –SimpleTextFileReader –SimpleTextFileWriter Felsökning Java API.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
TDP004 Objektorienterad Programmering Fö 4 Strömmar.
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

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

Datafiler Filer kan innehålla Ren text (ex källkodsfiler) Formaterad text (ex .doc-filer) Binärdata (binär information, .exe-filer)

C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer ”inström” Inströmmar används för att “läsa” data Program Källa, Ex tangentbord ”utström” Utströmmar används för att “skriva” data Program Destination, ex. fil på hårddisk

Dataströmmar Hårddisk Processor Utenhet In- och utenhet Inenhet 101010101 Hårddisk 101010101 Processor 101010101 In- och utenhet 101010101 Inenhet

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

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…

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

Att skriva till en textfil Öppna 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(); Skriv Stäng

Att läsa från en textfil Öppna StreamReader infil = new StreamReader("Testa.txt"); while (true) { string line = infil.ReadLine(); if (line == null) break; Console.WriteLine(line); } infil.Close(); Läs Stäng

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.

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…

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); }