OPERACJE NA PLIKACH. Podstawowe pojęcia:



Podobne dokumenty
Wszystkie zmienne typu plikowego, z wyjątkiem Output i Input muszą być zadeklarowane w sekcji deklaracji programu, który z nich korzysta.

Pliki. Operacje na plikach w Pascalu

Wykład PASCAL - Pliki tekstowe

PLIKI TEKSTOWE F C E 30 0D 0A 42 6F 72 6C 61 6E 64 1A T U R B O _ P A S C A L _ 7. 0

Pliki. Ze względu na typ zawartych w nich danych rozróżnia się trzy podstawowe rodzaje plików:

PLIKI. Składnia deklaracji zmiennej plikowej: file of <typ>

Język programowania PASCAL

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Informatyka 1. Przetwarzanie tekstów

Algorytmy i struktury danych

PASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka

Programowanie w językach

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Programowanie w językach wysokiego poziomu

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Wprowadzenie Tablica jednowymiarowa Tablice wielowymiarowe Algorytmy Rekordy Pliki Zadania Bibliografia

Kompendium wiedzy z Pascala

Funkcje zawarte w bibliotece < io.h >

Typy plikowe. 1. Wprowadzenie. 2. Podstawowe operacje na plikach. Przetwarzanie plików w języku Pascal 1

Wykład 4. Tablice. Pliki

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

Funkcje zawarte w bibliotece < io.h >

Polecenia wewnętrzne:

Podstawy programowania

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Podstawy Programowania C++

PRZYKŁADY OPERACJI PLIKOWYCH z wykorzystaniem biblioteki <stdio.h>

Wstęp do programowania. Różne różności

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Zasady Programowania Strukturalnego

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Podstawy programowania

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych

Programowanie kart elektronicznych. wykład 9: Polecenia - część 1

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania skrót z wykładów:

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Język ludzki kod maszynowy

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Programowanie strukturalne

PODSTAWY PROGRAMOWANIA

System plików i zarządzanie pamięcią pomocniczą. Koncepcja pliku. Atrybuty pliku. Struktura pliku. Typ pliku nazwa, rozszerzenie (extension)

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

Podstawy programowania

System plików warstwa logiczna

Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

PODSTAWY PROGRAMOWANIA

Pliki. Informacje ogólne. Obsługa plików w języku C

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

Wprowadzenie do języka Java

Delphi Laboratorium 3

Biblioteka standardowa - operacje wejścia/wyjścia

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne. TEMAT 8: Moduły standardowe

Podstawy programowania w języku C++

Pascal - wprowadzenie

Podstawy programowania. Wykład: 6. Tablice statyczne. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wstęp do programowania. Pliki. Piotr Chrząstowski-Wachtel

Wstęp do programowania 2

Wstęp do programowania 2

1 Wprowadzenie. program t e s t 3 ; begin. Polecenie program. Różnice między poleceniami write i writeln. writeln ( Witaj, a ) ; end.

Pliki. Informacje ogólne. Obsługa plików w języku C

Algorytmy i struktury danych

7 Przygotował: mgr inż. Maciej Lasota

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.

Informatyka 1. Dokumentacja programu, moduły programowe, typy tablicowe

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Dynamiczne struktury danych

Informatyka 1. Wyrażenia i instrukcje cd., ręczna symulacja, operacje wejścia/wyjścia

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

Wiadomości i umiejętności

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

2.Sprawdzanie czy podana liczba naturalna jest pierwsza Liczba pierwsza to liczba podzielna tylko przez 1 i przez siebie.

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach

INFORMATYKA. Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki. dr inż. Michał Łanczont

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

Elementy Pascala Konstrukcja programu w Pascalu Typy danych

Automatyzacja pracy w AutoCAD

Licznik prędkości LP100 rev. 2.48

Część 4 życie programu

PODSTAWY BAZ DANYCH 13. PL/SQL

Argumenty wywołania programu, operacje na plikach

Kiedy i czy konieczne?

Programowanie w języku Pascal

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Transkrypt:

OPERACJE NA PLIKACH Podstawowe pojęcia: plik fizyczny, zbiór informacji w pamięci zewnętrznej wykorzystywany do trwałego przechowywania danych lub jako przedłużenie pamięci operacyjnej w przypadku przetwarzania struktur danych o dużych rozmiarach. plik dyskowy plik fizyczny przechowywany na nośniku o własności trwałego zapamiętywania zapisanych danych: dyskietka, dysk stały, taśma, płyta CD, karta magnetyczna,... identyfikowany poprzez symbol napędu, ścieżkę dostępu do pliku (lista podkatalogów) oraz nazwę pliku: 'symbol_napędu:\nazwa_katalogu\... \nazwa_katalogu\nazwa_pliku' urządzenia wejścia/wyjścia (też są traktowane jako pliki fizyczne) klawiatura, monitor ekranowy, drukarka, porty szeregowe. Urządzenie identyfikowane poprzez łańcuch znakowy zawierający jego nazwę: 'CON' konsola 'LPT1' drukarka nr 1 'LPT2' drukarka nr 2 'PRN' domyślna drukarka 'COM1' port szeregowy nr 1 'COM2' port szeregowy nr 2 'AUX' domyślny port szeregowy 'NUL' urządzenie puste zmienna plikowa, model logiczny służący do reprezentacji pliku fizycznego, zmienna wykorzystywany do komunikacji pomiędzy programem a urządzeniem przechowującym plik fizyczny. M.P. «PASCAL» (P09) 1 Pliki zdefiniowane

Reprezentacja zmiennych plikowych w pamięci: type FileRec = record Handle : Word; {uchwyt pliku} Mode : Word; {tryb otwarcia} RecSize : Word; {rozmiar elementu} Private : array[1..26]of Byte; {pole zarezerwowane} UserData : array[1..16]of Byte; {dowolne dane} Name : array[0..79]of Char; {nazwa pliku} Deklaracja typu i zmiennej plikowej dla plików elementowych TYPE TypPlikowy = FILE OF Element ; VAR ZmiennaPlikowa : TypPlikowy ; ZmiennaPlikowa_2 : FILE OF Element_2; Typ Element elementu pliku może być typem: liczbowym, znakowym, łańcuchowym, strukturalnym typem tablicowym lub typem rekordowym. Nie może być typem plikowym! M.P. «PASCAL» (P09) 2 Pliki zdefiniowane

Wewnętrzna struktura pliku fizycznego ciąg elementów zapisanych w postaci binarnej w przypadku zmiennej plikowej zdefiniowanej (file of typ_elementów_pliku) typ elementu i jego rozmiar określa definicja typu, w przypadku zmiennej plikowej niezdefiniowanej (file) rozmiar elementu określany jest poprzez parametry odpowiednich procedur pojęcie pozycji bieżącej pliku (wskaźnika pliku, pozycji wskaźnika pliku), M.P. «PASCAL» (P09) 3 Pliki zdefiniowane

OGÓLNY SCHEMAT PRZETWARZANIA PLIKÓW 1. Deklaracja zmiennych plikowych oraz buforów programowych type element_pliku = definicja_typu; Tplik_przykladowy = file of element_pliku; var plik_przykladowy : Tplik_przykladowy; 2. Skojarzenie zmiennej plikowej z plikiem fizycznym assign( plik_przykladowy, 'c:\wyklad\przyklad_1.dat' ); 3. Otwarcie pliku rewrite( plik_przykladowy ); lub reset( plik_przykladowy ); {otwarcie do zapisu, utworzenie} {otwarcie do odczytu, aktualizacji} 4. Przetwarzanie zawartości pliku fizycznego lub for i := 1 to 10 do read( dana ); write( plik_przykladowy, dana ); while not eof( plik_przykladowy ) do read( plik_przykladowy, dana ); writeln( dana ); 5. Zamknięcie pliku close( plik_przykladowy ); M.P. «PASCAL» (P09) 4 Pliki zdefiniowane

PROCEDURY I FUNKCJE DO OPERĄCJI NA PLIKACH ASSIGN(zp,nazwa); Skojarzenie zmiennej plikowej z plikiem fizycznym REWRITE(zp); Otwarcie do zapisu / utworzenie pliku RESET(zp); Przygotowanie pliku do odczytu WRITE(zp,dane); Zapis / dopisanie elementu do pliku READ(zp,zmienna); Odczyt elementu z pliku EOF(zp):Boolean; Sygnalizacja końca pliku CLOSE(zp); Zamykanie pliku Dodatkowe funkcje dotyczące pliku elementowego FILESIZE(zp):Longint; liczba elementów pliku FILEPOS(zp):Longint; aktualne położenie wskaźnika pliku SEEK(zp, pozycja); ustawienie wskaźnika na zadanej pozycji TRUNCATE(zp); Obcięcie / skrócenie długosci pliku ERASE(zp); Kasowanie pliku RENAME(zp,NowaNazwa); Zmiana nazwy pliku Ochrona przed błędami Ustawianie opcji komplilacji dyrektywy kompilatora {$I }, {$I+} Np.: {$I } RESET(zp) ; {$I+} kod_bledu := IOResult ; IF kod_bledu <> 0 THEN Error( kod_bledu ) ; M.P. «PASCAL» (P09) 5 Pliki zdefiniowane

SKŁADOWANIE STRUKTURY DANYCH W PLIKU CONST N = 100; TYPE t_tablica = array[ 1.. N ] of integer; VAR tablica : t_tablica; i, il_elem : integer; plik_liczb : file of integer; plik_tablic : file of t_tablica; Jednorazowe składowanie całej struktury: Assign( plik_tablic, nazwa ); Rewrite( plik_tablic ); Write( plik_tablic, tablica ); Close( plik_tablic ); Składowanie struktury pojedynczymi elementami: Assign(plik_liczb, nazwa ); Rewrite(fe); for i := 1 to il_elem do Write( plik_liczb, tablica[ i ] ); Close( plik_liczb ); Odzyskiwanie struktury elementami: Assign( plik_liczb, nazwa ); Reset( plik_liczb ); i := 1; while not EOF( plik_liczb ) do Read( plik_liczb, tab[ i ] ); i := i + 1; Close( plik_liczb ); il_elem := i; M.P. «PASCAL» (P09) 6 Pliki zdefiniowane

WYBRANE SCHEMATY PRZETWARZANIA PLIKÓW Definicje i deklaracje wykorzystywane w przykładach: TYPE Element = xyz ; { xyz - dowolny typ dozwolony jako element pliku} VAR plik, plik_zrodlowy, plik_wynikowy : file of Element; i, pozycja, n : integer dane : Element; Znaleziono : boolean; Dołączenie elementu do końca istniejącego pliku Seek( plik, FileSize( plik ) ); Write( plik, dane ); {ustawienie wskaźnika pliku na końcu} Wybieranie elementów w/g wartości (w/g pola rekordu) i := 0; {wyzerowanie licznika poszukiwanych elementów } while not EOF( plik ) do Read( plik, dane ); {sprawdzenie zgodności wartości badanej z wzorcową} if dane = WartoscPoszukiwana then i := i + 1; {zwiększenie wartości licznika } OpracujDane( dane ); { np. wyświetl dane na ekranie } Writeln( 'Znaleziono ', i,'elementów o poszukiwanej wartosci ); M.P. «PASCAL» (P09) 7 Pliki zdefiniowane

Wyszukiwanie elementu w/g unikalnej wartości Znaleziono := FALSE; {inicjacja zmiennej sygnalizującej znalezienie} while not ( EOF(plik) or Znaleziono ) do Read( plik, dane ); {sprawdzenie zgodności wartości badanej z wzorcową} if dane = WartoscPoszukiwana then Znaleziono := TRUE; {zaznaczenie odnalezienia elementu} OpracujDane( dane ); { np. wyświetl dane na ekranie } Po znalezieniu wskaźnik pliku znajduje się na pozycji zaraz po znalezionym elemencie. Odczytując pozycję wskaźnika można ustalić położenie/pozycję tego elementu w pliku: pozycja := FilePos( plik ) 1; Element o znanym położeniu może potem zostać zaktualizowany lub usunięty. Aktualizacja elementu o znanym położeniu w pliku Seek( plik, pozycja ); Write( plik, dane ); {ustawienie wskaźnika pliku przed elementem} {zapis nowej / aktualnej wartości} M.P. «PASCAL» (P09) 8 Pliki zdefiniowane

Usunięcie elementu o znanym położeniu (dla plików nieuporządkowanych) {odczyt elementu znajdującego się na końcu pliku} Seek( plik, FileSize(plik) - 1 ) ); Read( plik, dane ); {zapis odczytanego ostatniego elementu na kasowanej pozycji } Seek( plik, pozycja ); Write( plik, dane ); { obcięcie ostatniego elementu skrócenie pliku o 1 element} Seek( plik, FileSize(plik) - 1 ) ); Truncate( plik ); Usunięcie elementu z pliku uporządkowanego wymaga kompresji pliku! kompresja przez zsunięcie elementów (czasochłonna!) skopiowanie całego pliku do drugiego pliku, (z pominięciem elementu usuwanego). logiczne kasowanie elementu w pliku (zaznaczanie, że element jest usunięty ). Przetwarzanie pliku źródłowego w wynikowy o tej samej nazwie Assign( plik_zrodlowy, nazwa_org ); Assign( plik_wynikowy, nazwa_rob ) Reset( plik_zrodlowy ); Rewrite( plik_wynikowy ); while not EOF( plik_zrodlowy ) do Read( plik_zrodlowy, dane); OpracujDane( dane ); Write( plik_wynikowy, dane); Close( plik_zrodlowy); Erase( plik_ zrodlowy); {skasowanie pliku źródłowego} Close( plik_wynikowy); {zamknięcie pliku wynikowego} Rename( plik_wynikowy, nazwa_org ); {przywrócenie nazwy } M.P. «PASCAL» (P09) 9 Pliki zdefiniowane