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

Podobne dokumenty
Podstawy programowania. Wykład: 11. Trochę różnych przykładów. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład PASCAL - Pliki tekstowe

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

Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

Wykład 9: Polimorfizm i klasy wirtualne

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

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

Wykład 1: Wskaźniki i zmienne dynamiczne

Pliki. Operacje na plikach w Pascalu

Wykład 8: klasy cz. 4

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie w językach

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Wykład 5: Klasy cz. 3

Wykład 9: Metody wirtualne i polimorfizm

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Wykład V PASCAL - operacje na znakach i łańcuchach; - dźwięk,

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

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

Spis treści OBSŁUGA PLIKÓW W JĘZYKU C++ Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32

Wykład 2 Składnia języka C# (cz. 1)

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Programowanie systemów informatycznych laboratorium. Ćw. 3: Akwizycja danych. RS 232 cd.

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

Języki C i C++ Wykład: 1. Wstęp Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Języki C i C++, sem.

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

Podstawy programowaniu. Wykład: 3. Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Podstawy programowania, sem.

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

C++ - [3-5] Pliki i strumienie w C++

INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

Wstęp do programowania. Wykład 1

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Operacje wejścia/wyjścia (odsłona druga) - pliki

Podstawy Programowania

Zasady programowania Dokumentacja

Programowanie w językach wysokiego poziomu

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

Podstawy programowania w C++

7 Przygotował: mgr inż. Maciej Lasota

Programowanie w języku Python. Grażyna Koba

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Biblioteka standardowa - operacje wejścia/wyjścia

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

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

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

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

4. Pliki Informacje ogólne o dostępie do plików w PHP Sprawdzanie istnienia pliku file_exists()

Programowanie strukturalne

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Funkcje zawarte w bibliotece < io.h >

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

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

1 Podstawy c++ w pigułce.

Pliki wykład 2. Dorota Pylak

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Spis treści PLIKI BINARNE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF23

Funkcje zawarte w bibliotece < io.h >

Podstawy programowania w języku C++

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

( wykł. dr Marek Piasecki )

Wstęp do informatyki- wykład 3 Pierwszy program w C++ Wyprowadzanie danych Deklaracja zmiennych

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

Języki i metodyka programowania. Wprowadzenie do języka C

Programowanie w języku C++ Grażyna Koba

Wykład 2 Operacje wejściawyjścia. Ewa Gajda

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Klasa iostream... 1 Klasy ofstream, ifstream Struktura FILE... 8

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

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

Operacje na plikach (niskiego poziomu) < IO.H >

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Logiczny model komputera i działanie procesora. Część 1.

System plików warstwa logiczna

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Wykład 3 Składnia języka C# (cz. 2)

Spis treści PLIKI BINARNE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF23

Transkrypt:

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

Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak w pamięci komputera) lub tekstową (taką, jaka używana jest do wprowadzania informacji z klawiatury i wyprowadzania jej na ekran monitora lub drukarkę). Reprezentacjom tym odpowiadają elementowe (inaczej nazywane zdefiniowanymi lub binarnymi) mogą przechowywać dane dowolnego typu. Ich interpretacja zależy od programu, który je odczytuje. Wszystkie dane przechowywane w plikach elementowych muszą być tego samego typu. tekstowe przechowują tekst w zapisany w kodzie ASCI 2

Rodzaje plików Zawartość plików elementowych jest na ogół nieczytelna dla użytkownika. Treść pliku tekstowego daje można odczytać w każdym programie obsługującym kod ASCI. Pliki tekstowe mogą być użyte do przechowywania mieszanych typów danych (np. tekstów i liczb), gdyż wszelka informacja przechowywana jest w nich w postaci kolejnych linii z zawartością. Pliki elementowe są plikami o dostępie swobodnym, to znaczy, że w każdym momencie można odwołać się do dowolnego elementu pliku. Pliki tekstowe są plikami o dostępie sekwencyjnym, co oznacza, że aby dostać się do wybranego elementu pliku, należy przeczytać wszystkie elementy znajdujące się przed nim. 3

Podstawy programowania Pliki tekstowe 4

Pliki tekstowe Operacja na pliku przebiega w czterech etapach: 1. Przypisanie zmiennej plikowej do pliku na dysku 2. Otwarcie lub utworzenie i otwarcie pliku powiązanego przez zmienną. 3. Operacje na danych (zapis lub odczyt) 4. Zamknięcie pliku 5

Pliki tekstowe Funkcje niezbędne do obsługi plików znajdują się w bibliotece: #include <fstream> Aby móc używać pliku deklaruje się tzw. zmienną plikową, w której przechowywany będzie uchwyt do pliku. Klasa fstream (umieszczona w przestrzeni nazw std:: ) udostępnia cały interfejs, dzięki któremu można obsłużyć dowolny plik znajdujący się na dysku lub innym nośniku danych. 6

Otwarcie pliku Tryb ios::app ios::in ios::out ios::trunc ios::ate ios::binary Opis trybu append - dopisywanie danych do pliku - ustawia wewnętrzny wskaźnik zapisu pliku na jego koniec. Plik otwarty w trybie tylko do zapisu. Dane mogą być zapisywane tylko i wyłącznie na końcu pliku. input - wejście/odczyt - zezwolenie na odczytywanie danych z pliku. output - wyjście/zapis - zezwolenie na zapisywanie danych do pliku. truncate - zawartość pliku jest tracona, plik jest obcinany do 0 bajtów podczas otwierania. at end - ustawia wewnętrzny wskaźnik pliku na jego koniec w chwili otwarcia pliku. Informacja dla kompilatora, aby dane były traktowane jako strumień danych binarnych, a nie jako strumień danych tekstowych. 7

Zamknięcie pliku Otwarty plik należy zamknąć w przeciwnym razie system operacyjny może traktować plik jako używany (nie można skasować ani przenieść), nawet po mknięciu naszego programu. 8

Obsługa błędów Funkcja sprawdzająca czy plik otwarto prawidłowo: plik.good() ; isopen() Rezultat wykonania operacji odczytujemy funkcją plik.good() Jeżeli zwróci ona wartość true oznacza to, że wykonanie operacji we/wy przebiegło pomyślnie. 9

Obsługa błędów Przy próbie odczytu nie uzyskamy dostępu do pliku gdy : 1. plik nie istnieje na dysku; 2. nie posiadamy uprawnień odczytu do pliku. Przy próbie zapisu nie uzyskamy dostępu do pliku gdy : 1. nie posiadamy uprawnień pozwalających nam modyfikować plik; 2. nie posiadamy uprawnień do katalogu w którym chcemy utworzyć plik; 3. nośnik, na którym chcemy dokonać zapisu jest tylko do odczytu. 10

Odczyt z pliku tekstowego Odczytanie pojedynczego wiersza z pliku: getline(zmienn_plikowa, zmienna_typu_string); 11

Odczyt z pliku tekstowego Odczytanie wszystkich wierszy z pliku (druga metoda): Funkcja.eof( ) zwraca wartość true, jeżeli wskaźnik plikowy dotarł do końca pliku. 12

Zapis do pliku tekstowego Zapis pojedynczego wiersza: endl powoduje przejście do nowego wiersza Można także zapisywać bezpośrednio zmienne typu int 13

Zapis do pliku tekstowego Zapis pojedynczego wiersza za pomocą funkcji plik.write(początek_bufora, dlugosc_bufora); 14

Zapis do pliku tekstowego Zapis pojedynczego wiersza za pomocą funkcji plik.write(początek_bufora, dlugosc_bufora); 15

Zapis i odczyt liczb Przy użyciu strumienia ( << ) można do pliku tekstowego zapisywać liczby. Zarówno całkowite, jak i zmiennoprzecinkowe. Liczby są jednak zapisywane do pliku tekstowego jako kody ASCII poszczególnych cyfr. 16

Zapis i odczyt liczb Liczby są zapisywane w pliku testowym jako kody ASCII cyfr można jest przekonwertować na wartości numeryczne za pomocą funkcji:.atoi() liczby całkowite.atof() liczby zmiennoprzecinkowe 17

Podstawy programowania Przykłady 18

Przykład 1 Wypisanie wierszy pliku tekstowego w odwrotnej kolejności Cała zawartość pliku kopiowana jest do tablicy zmiennych typu stringt 19

Przykład 2 logi programu Program odczytuje z pliku log.dat ile razy był już uruchomiony, następnie zamyka plik, otwiera powtórnie, tym razem do zapisu i nadpisuje jego zawartość liczbą uruchomień zwiększoną o 1. 20

Przykład 3 wyodrębnienie wyrazów z pliku Program pobiera kolejno wszystkie linie z pliku, aż natrafi na jego koniec. Następnie pętla while() (z wierszy 19-39 kodu) wyodrębnia wyrazy (jej rozwinięcie na następnej stronie). 21

Przykład 3 wyodrębnienie wyrazów z pliku Ten fragment programu pracuje na pobranej z pliku linii zapisanej w zmiennej temp. Jego zadaniem jest wyodrębnienie wyrazów i zapisanie ich w kolejnych polach tablicy wyrazy[] Wewnątrz pętli while (linia 19) pracują dwie kolejne. Pierwsza (linia 22-26) pomija spacje i nawiasy, druga (linia 29-34) wczytuje kolejne znaki (niebędące spacją ani nawiasem) i dopisuje do łańcucha s. Na koniec (linie 36-37) łańcuch s wstawiany jest do tablicy wyrazy[] a jej licznik zwiększany o 1. 22

Literatura: W prezentacji wykorzystano przykłady i fragmenty: Grębosz J. : Symfonia C++, Programowanie w języku C++ orientowane obiektowo, Wydawnictwo Edition 2000. Jakubczyk K.: Turbo Pascal i Borland C++ Przykłady, Helion. Warto zajrzeć także do: Sokół R. : Microsoft Visual Studio 2012 Programowanie w Ci C++, Helion. Kerninghan B. W., Ritchie D. M.: język ANSI C, Wydawnictwo Naukowo Techniczne. Dla bardziej zaawansowanych: Grębosz J. : Pasja C++, Wydawnictwo Edition 2000. Meyers S.: język C++ bardziej efektywnie, Wydawnictwo Naukowo Techniczne 23 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD