Strumienie oraz operacje na plikach

Wielkość: px
Rozpocząć pokaz od strony:

Download "Strumienie oraz operacje na plikach"

Transkrypt

1 Strumienie oraz operacje na plikach Uwaga: Tekst zamieszczony w tej sekcji był przygotowany jako wstęp do tematu implementacji strumieni w języku C/C++. Samo pojęcie strumieni jest na tyle uniwersalne, że tekst może posłużyć równie dobrze jako wstęp do tematu implementacji strumienie w VB.Net. Strumienie Pojęcie strumienia najłatwiej chyba wytłumaczyć na przykładzie zbiornika z wodą, mającego zawór wlotowy i zawór wylotowy. Aby napełnić zbiornik (wprowadzić dane do strumienia) należy odkręcić zawór wlotowy. Wtedy woda zacznie do zbiornika napływać (bufor strumienia zacznie zapełniać się danymi jeśli oczywiście taki bufor istnieje). Gdy otworzony zostanie zawór wylotowy, woda zacznie ze zbiornika wypływać (odpowiada to pobieraniu danych ze strumienia). Jeśli woda szybciej wypływa niż napływa (dane ze strumienia szybciej są pobierane niż dostarczane), zbiornik opróżnia się całkowicie (strumień danych staje się pusty). Jeśli zaś woda napływa szybciej niż odpływa (bufor strumienia zapełniany jest szybciej niż opróżniany), następuje przepełnienie. Jedyną istotną różnicą pomiędzy strumieniem danych a jego wodną analogią jest fakt, iż cząsteczki wody mogą mieszać się ze sobą, zaś kolejność danych w strumieniu nie może ulec zmianie. Co więcej, dla strumieni możliwe są do wykonania operacje pobierania, zwracania, jak również przewijania danych (choć nie dotyczy to wszystkich zaimplementowanych strumieni). W odniesieniu do zbiornika z wodą miałoby to odpowiednik w przetłaczania wody w różnych kierunkach poprzez jego zawory. Najważniejszym celem, któremu przyświecało zaimplementowanie strumieni było opracowanie metody pozwalającej na łatwe korzystanie z ekranu monitora, klawiatury oraz zasobów dyskowych. To właśnie strumienie pozwalają programiście zapomnieć o szczegółach realizacji operacji we/wy. Wystarczy, aby strumień został skojarzony z jakimś urządzeniem, aby przesyłanie danych ograniczyło się do wykorzystania własności samego strumienia. Przy pracy ze strumieniami wyróżnić można trzy zasadnicze kroki. Pierwszym jest nawiązanie połączenia z urządzeniem i skojarzenie go ze strumieniem (mówi się o otwarciu strumienia). Drugim jest przesyłanie danych. Trzecim krokiem jest zamknięcie połączenia (mówi się o zamykaniu strumienia). Zarówno otwarcie strumienia, jak i przesyłanie danych oraz jego zamknięcie realizuje się poprzez funkcje operujące na strumieniu reprezentującym połączenie. Każdy otwarty w programie strumień powinien zostać zamknięty zanim program zakończy się. Jeśli program zakończy się, a któryś ze strumieni pozostanie otwarty, jego zamknięciem zajmie się system operacyjny. Jednak zamknięcia strumienia przez system operacyjny jest sytuacja niepożądaną. Może ona prowadzić do poważnych błędów i utraty danych. Kiedy program zaczyna swoje działanie, kod inicjujący automatycznie otwiera kilka strumieni: standardowe wejście (stdin), standardowe wyjście (stdout), oraz standardowe wyjście błędów (stderr). Zgodnie z nazwą wejście normalnie służy jako źródło danych do programu, wyjście pozwala wyprowadzać dane z programu, strumień błędu zaś pozwala wyprowadzać komunikaty o błędach. Dzięki strumieniom praktycznie nie ma żadnej różnicy pomiędzy odczytywaniem danych z pliku a odczytywaniem danych z klawiatury. Podobnie, jeśli wyjście programu składa się ze znaków

2 alfanumerycznych i interpunkcyjnych, nie ma żadnej różnicy między zapisem danych do pliku, a wypisaniem ich na ekran komputera lub wyprowadzeniem do potoku (pipe) następnego programu. Strumień wejściowy domyślnie skojarzony jest z klawiaturą, strumień wyjściowy i strumień błędu - z ekranem komputera. Jednak skojarzenie to można zmienić. Istnieją na to dwa sposoby. Pierwszy sposób polega na wykorzystaniu możliwości samego systemu operacyjnego. W tym przypadku o skojarzeniu strumieni decyduje format komendy uruchamiającej program (wydanej w linii poleceń). Drugi sposób polega na wykorzystaniu przez programistę możliwości bibliotek we/wy. W tym przypadku skojarzenie strumieni zaimplementowane jest w kodzie źródłowym programu. Składnia komend wydawanych w linii poleceń może być różna w różnych systemach operacyjnych. Zazwyczaj standardowe wejście kojarzy się z plikiem wydając komendę: mprog < plikwe. Komenda ta znaczy tyle, co: uruchom program mprog kojarząc ze standardowym wejściem plik o nazwie plikwe (a nie klawiaturę!). Podobnie przekierować można strumień wyjściowy: mprog > plikwy. Użycie operatora > w podanym przykładzie spowoduje, że dane wyjściowe z programu mprog zapisane zostaną w pliku o nazwie plikwy (jeśli plik o podanej nazwie nie istnieje, to zostanie on stworzony, w przeciwnym razie system operacyjny może zgłosić błąd). Z poziomu komend można również skojarzyć wyjście jednego programu z wejściem do programu drugiego. Odpowiednia komenda miałaby postać: mprog1 mprog2, gdzie operator występujący w tej komendzie tworzy potok. Przykłady najczęściej używanych komend służących przekierowaniu strumieni w systemie operacyjnym UNIX podane są w poniższej tabeli. Znaczenie: uruchom program prog i... komenda (csh) komenda (sh) skojarz stdout z plikiem file prog > file prog > file skojarz stderr z plikiem file prog 2> file skojarz stdout i stderr z plikiem file prog >& file prog > file 2>&1 skojarz stdin z plikiem file prog < file prog < file skojarz stdout z plikiem file (dopisuj do końca) prog >> file prog >> file skojarz stderr z plikiem file (dopisuj do końca) prog 2>> file skojarz stdout i stderr z plikiem file (dopisuj do końca) prog >>& file prog >> file 2>&1 skojarz stdin z klawiaturą i czytaj dopóki c prog <<c prog <<c utwórz potok (stdout programu prog do prog2) prog prog2 prog prog2 utwórz potok (stdout i stderr programu prog do prog2) prog & prog2 prog 2>&1 prog2 Uwaga: Różne systemy operacyjne (a nawet różne powłoki tego samego systemu) mogą różnić się pod względem składni komend i ich możliwości. Większość z nich pozwala jednak na jednoczesne przekierunkowanie standardowego wejście i wyjścia w jednym poleceniu: prog < plikwe > plikwy (czytanie z pliku plikwe i pisanie do pliku plikwy). Niektóre z nich pozwalają zapisać stderr w trzecim pliku. W unix owej powłoce bash odpowiednia komenda miałaby postać: prog < plikwe > plikwy 2> plikerr Rozdzielenie stdout od stderr może być nieco bardziej skomplikowane dla innych powłok (w przypadku csh osiąga się to przez wydanie polecenia:

3 (prog > plikwy) >& plikerr ) Co więcej, w niektórych systemach operacyjnych istnieją specjalne pliki systemowe na stałe związane ze standardowymi strumieniami (jak np. unix owe /dev/stdin, /dev/stdout, /dev/stderr). Korzystanie z takich plików nie różni się od korzystania ze zwykłych plików. Pliki Tryby dostępu do plików i typy plików Zazwyczaj dane w systemach komputerowych przechowywane są w postaci plików zapisanych na dyskach. Dyski twarde typowych komputerów mają dużo większe pojemności niż dostępna pamięć operacyjna. Stąd też mogą one przechowywać znacznie większe ilości danych niż pomieściłaby pamięć operacyjna. Co więcej, dane zapisane na dyskach nie znikają w chwili wyłączenia zasilania. Można je przenosić pomiędzy komputerami, można je współdzielić pomiędzy różnymi systemami, można je wymieniać pomiędzy programami. Podczas pracy z plikami nie trzeba zbytnio obciążać pamięci operacyjnej. Wystarczy do niej wczytać część danych z pliku, przetworzyć je, i, jeśli to konieczne, wczytać kolejną ich porcję. Aby można było pliki tworzyć i z nich korzystać w VB zaimplementowano szereg narzędzi funkcji umożliwiających odczytywanie, modyfikację i zapisywanie danych na dysku oraz zadeklarowano szereg zmiennych globalnych parametrów określających sposób wykonywanych operacji. W ogólności programy mogą sięgać do zasobów dyskowych na dwa sposoby: sekwencyjny i bezpośredni. Funkcje umożliwiające te dwa sposoby dostępu pozwalają zaimplementować praktycznie każdą operację zapisu lub odczytu. Jednak zanim rozpocznie się jakiekolwiek przetwarzanie danych, sam plik powinien zostać otworzony, a po zakończeniu przetwarzania zamknięty (podobnie jak to jest z robieniem notatek w notesie. Jeśli chce się coś w notesie zapisać, najpierw należy go otworzyć, a po dokonaniu zapisu, notes należy zamknąć). Ponadto dane w plikach mogą mieć dwojaki charakter. Można je traktować jako zestaw znaków (pliki tekstowe) lub też jako zestaw bajtów (pliki binarne). O tym, w jakim trybie dostępu dane z pliku będą odczytywane, zapisywane bądź usuwane, decyduje sam programista. W części z przypadków dostęp do plików może być zrealizowany dwojako: zarówno sekwencyjnie i jak i bezpośrednio. W takich razach do programisty należeć będzie obowiązek zapewnienia poprawności wykonywania operacji zapisu i odczytu danych. Uwaga: Ilość na raz otwartych plików nie może być nieskończona. Nie pozwalają na to systemy operacyjne (gdzie się określa maksymalną liczbę otwartych plików - w systemie DOS liczba ta ukryta jest w zmiennej środowiskowej FILES, zadeklarowanej w pliku CONFIG.SYS) oraz same biblioteki wejścia/wyjścia (np. w Borland C++ maksymalną liczbę otwartych plików określa stała HANDLE_MAX, przy czym maksymalna liczba otwartych plików jest większa dla deskryptorów niż dla strumieni). Pliki o dostępie sekwencyjnym Dane muszą być odczytywane w tej samej kolejności, w jakiej zostały zapisane. Jest to tak jak przy zapisie i odczycie znaków wykonywanym na przesuwającej się taśmie w jakiej kolejności znaki zostały na taśmie zapisane, w takiej kolejności można je odczytać. Podobnie też jak w przypadku taśmy, w środek pliku sekwencyjnego nie można wstawiać nowych danych - taśma jest już zapisana i wstawianie danych w jej środek spowodowałoby zapisanie (utratę) starych danych. Aby wstawić coś w środek taśmy należy właściwie stworzyć nową taśmę, przepisując na nią dane wszystkie dane, wstawiając po drodze w zadanym miejscu nowe dane.

4 Pliki o dostępie bezpośrednim W ich przypadku dane mogą być odczytywane lub zapisywane w dowolnej kolejności i miejscu. Pewną analogią to tego typu dostępu do danych są płyty CD z muzyką. Jeśli interesuje nas jakiś utwór na płycie, wybieramy go, a sam odtwarzacz przeskakuje do wybranej pozycji, pomijając wszelkie inne utwory. Ten typ dostępu do pliku umożliwia szybkie przeszukiwanie, dodawanie, odczytywanie, zmianę i kasowanie informacji w pliku. Rekordy w pliku o dostępie bezpośrednim Przetwarzanie plików w sposób sekwencyjny należy do wolnych operacji, chyba, że dane odczytywane są z pliku do pamięci operacyjnej komputera i tam dopiero przetwarzane. Odczyt danych może odbywać się kawałkami, aby na raz nie obciążać zbyt mocno pamięci. W ogólności, dane w pliku mogą mieć postać rekordów. Rekord wpisywany do lub odczytywany z pliku ma postać analogiczną do struktur w języku programowania. Jest on kolekcją jednej lub większej ilości pewnych wartości, odpowiadających polom struktur używanym w programie (kiedy jakiś rekord jest odczytywany z dysku, to jest on wpisywany do struktury danych, którą następnie przetwarza program). W większości przypadków plików o dostępie sekwencyjnym rekordy mają różną długość. Dzieje się tak, gdyż przy zapisie lub odczycie wartości jakiejś danej (znak, słowo, ciąg znaków, liczba) rozmiar rekordu odpowiada rozmiarowi danej. A co za tym idzie, wskaźnik położenia może przesuwać się w pliku ze zmiennym skokiem, odpowiednio do rozmiary danych. Idea bezpośredniego dostępu do danych w pliku jest bardzo prosta. Można ją wyjaśnić na przykładzie płyty CD z muzyką. Jeśli interesuje nas jakiś utwór na płycie, to nie musimy przesłuchiwać wszystkich innych wcześniejszych utworów, jak ma to miejsce w odtwarzaniu sekwencyjnym. Wystarczy, że przeskoczymy do wybranego utworu, a zaraz będzie on gotowy do odtworzenia. Właśnie te skoki sprawiają, że bezpośredni dostęp do pliku jest szybszy niż dostęp sekwencyjny. Funkcje umożliwiające skoki traktują plik jak wielką tablicę, w której kolejność dodawania, wypisywania oraz usuwanie elementów jest dowolna. Większość plików o bezpośrednim dostępie posiada rekordy o znanej długości. Najłatwiej jest obsługiwać pliki, w których każdy rekord (zazwyczaj wiersz w pliku) ma dokładnie taki sam rozmiar. Dzięki temu z góry można przewidzieć, jaką pozycję w pliku będzie zajmował wybrany rekord. Zaleta ta jest jednak okupiona nieoptymalnym wykorzystaniem zasobów dyskowych. Jeśli bowiem w pliku umieszczone zostaną jakieś dane, które nie w pełni wypełniają obszar rekordu, na dysku pojawią się rekordy z niewykorzystanymi polami. Oczywiście pliki o dostępie bezpośrednim mogą być odczytywane w sposób sekwencyjny. Natomiast pliki o dostępie sekwencyjnym wcale nie muszą dać się odczytać w sposób bezpośredni.

5 Pliki w Visual Basic Wykonywanie operacji na plikach w VB 6 na początek może wydać się nieco kłopotliwe. Główny problem tkwi w tym, iż dostęp do plików może być realizowany poprzez różne biblioteki funkcji i klasy (VB for applications dokłada też tu swoje trzy grosze). Istnieją takie funkcje jak Open, Input, Output, Append. Dostępny jest również File System Object (FSO) dostarczający obiektowego podejścia do implementacji operacji na plikach. Po krótkiej chwili można zorientować się, czym są faktycznie dostarczone narzędzia i co można nimi wykonać. VB.Net rozszerza możliwości wykonywania operacji na plikach, zapewniając przy tym kompatybilność z poprzednimi wersjami funkcji wejścia/wyjścia. W VB.Net obsługa plików realizowana jest poprzez przestrzeń nazw System.IO, która duplikuje i rozszerza znany z poprzednie wersji języka File System Object. Dodatkowo przestrzeń nazw System.IO.File zawiera funkcje zapewniające kompatybilność ze starszymi funkcjami wejścia/wyjścia. Reasumując - VB umożliwia przetwarzanie napędów, folderów, plików na szereg sposobów: za pomocą modelu.net System.IO, za pomocą metod tradycyjnych (jak FileOpen, Write), oraz przez model File System Object (FSO). Model.Net System.IO Model System.IO jest modelem obiektowym. W przestrzeni nazw System.IO zawarte są klasy, które pozwalają czytać dane z i pisać dane do plików fizycznych bądź też strumieni. Są tam też klasy pozwalające wykonywać operacje na systemie plików (jak np. wylistowywanie katalogów, monitorowanie zmian w systemie plików, itp.). W VB.Net wprowadzono możliwość asynchronicznego czytania i pisania plików. Podobnie jak w modelu FSO przetwarzanie tekstów i danych binarnych odbywa się przez wywołania o standardowej składni: obiekt.metoda dla konkretnych właściwości, metod i zdarzeń. W przestrzeni nazw System.IO umieszczono, które operują na ciągach znaków, znakach, oraz pozwalają operować na plikach (tekstowych i binarnych). Klasy te zawierają właściwości, metody oraz zdarzenia do: tworzenia, kopiowania, przesuwania i usuwania plików. Najczęściej używane klasy to: FileStream BinaryReader, BinaryWriter, StreamReader, StreamWriter. File FileInfo klasa File dostarcza metod statycznych do tworzenia, kopiowania, usuwania, przesuwania, otwierania plików oraz wspomaga tworzenie obiektów typu FileStream. klasa FileInfo: dostarcza metod instancyjnych do tworzenia, kopiowania, usuwania, przesuwania, otwierania plików oraz wspomaga tworzenie obiektów typu FileStream.

6 Klasa FileStream tworzy strumień (obiekt klasy Stream) na pliku, dostarczając metod do wykonywania synchronicznego lub asynchronicznego operacji czytania i pisania. Istnieje klasa pomocnicza Path, pozwalająca manipulować ciągami znaków reprezentującymi foldery lub ścieżki dostępu do plików. Tytułem komentarza: klasa FileStream jest opakowaniem nałożonym na plik. W ogólności strumienie można opakowywać innymi strumieniami, dostarczając w ten sposób specjalizowanych funkcji do czytania i pisania danych. Dzięki takim opakowywaniom można: buforować dane w strumieniach, przewijać strumienie, dokonywać bardziej zaawansowanych operacji czytania i pisania. W poniższej tabeli przedstawione są enumeracje związane z obsługą plików VB.Net: Enumeracja Przeznaczenie FileAcces definiuje stałe dla dostępu do pliku w trybie czytania, pisanie, czytania/pisania FileMode określa jak plik ma być otworzony przez system operacyjny FileShare dostarcza stałych do sterowania poziomem dostępu innym członkom FileStream do tego samego pliku FileAttributes określa dostęp do atrybutów zapisanych, dzięki którym można rozpoznać, czy dany plik jest napędem, czy jest zakodowany, ukryty lub tylko do odczytu, lub czy jest to plik systemowy czy też tymczasowy NotifyFilters specyfikuje zmiany, które będą obserwowane w pliku lub folderze SeekOrigin dostarcza pól reprezentujących punkty odniesienia w strumieniu używane podczas przewijania WatcherChandeTypes Zmiany, które mogą wystapić dla pliku lub katalogu Enumeracje FileAccess, FileMode oraz FileShare zawierają flagi używane przez konstruktory klasy FileStream. Enumeracja FileEnumerator dostarcza sposobu na odczytywanie informacji zarządzanych przez system plików hosta dla określonej grupy plików i katalogów. Przykładem takiej informacji może być czas utworzenia i dostępu. Operacje na katalogach We wcześniejszych wersjach VB do wylistowania katalogów służyła funkcja Dir(). Sposób jej wykorzystania przedstawia poniższy przykład: Dim sfile As String 'Obtain an initial value for sfile sfile = Dir("C:") 'Loop until Dir() returns empty string Do Until sfile = vbnullstring Debug.Print sfile sfile = Dir() Loop Realizacja tego samego zadania w VB 6.0 za pomocą Microsoft Scripting Runtime Library oraz obiektu Scripting.FileSystemObject wygląda następująco: Dim ofs As Scripting.FileSystemObject Dim ofolder As Scripting.Folder

7 Dim ofile As Scripting.File 'Create the FileSystemObject Object Set ofs = New Scripting.FileSystemObject 'Get reference to folder through FileSystemObject Set ofolder = ofs.getfolder("c:\") 'Enumerate Files For Each ofile In ofolder.files Debug.Print ofile.name Next ofile Z kolei w VB.NET zadanie listowania katalogów można zrealizować za pomocą klasy System.IO.Directory. Oto przykład: Try ' Only get files that begin with the letter "c." Dim dirs As String() = Directory.GetFiles("c:\", "c*") Console.WriteLine("The number of files starting with c is {0}.", dirs.length) Dim dir As String For Each dir In dirs Console.WriteLine(dir) Next Catch ee As Exception Console.WriteLine("The process failed: {0}", ee.tostring()) End Try Pliki binarne Pliki binarne tym różnią się od plików tekstowych, że mogą zawierać bajty danych, które nie są tekstem. Operacje czytania lub pisania ze strumienia można realizować metodami Read i Write klasy FileStream. Metody te pobierają ze strumienia lub umieszczają w strumieniu kolejne bajty. Stąd, aby przeczytać z pliku kolejne bajty, lub też do pliku kolejne bajty zapisać, można posłużyć się klasą FileStream. Poniższy przykład obrazuje, jak zapisać dane do pliku binarnego i jak je odczytać. Najpierw piszemy do pliku bajty, później z niego bajty czytamy. Wykorzystanie statycznych metod File ' nazwy plikow do pisania i czytania Dim OutFile As String = "c:\somefile.bin" Dim InFile As String = "c:\somefile.bin" Dim x As Integer Dim Foo(100) As Byte 'data to write Dim afoo(100) As Byte 'data to read Dim aretval As Integer Wykorzystanie instancyjnych metod FileInfo ' nazwy plikow do pisania i czytania Dim OutFile As String = "c:\somefile.bin" Dim InFile As String = "c:\somefile.bin" Dim x As Integer Dim Foo(100) As Byte 'data to write Dim afoo(100) As Byte 'data to read Dim aretval As Integer ' obiekty FileInfo Dim inf As New System.IO.FileInfo(InFile) Dim outf As New System.IO.FileInfo(OutFile) ' strumienie do pisania i czytania Dim myoutstream As System.IO.FileStream Dim myinstream As System.IO.FileStream ' strumienie do czytania i pisania Dim myinstream As System.IO.FileStream Dim myoutstream As System.IO.FileStream

8 For x = 0 To 100 afoo(x) = x Next Try myoutstream = File.OpenWrite(OutFile) myoutstream.write(afoo, 0, 11) myoutstream.flush() myoutstream.close() myinstream = File.OpenRead(InFile) aretval = myinstream.read(foo, 0, 11) 'read 10 bytes myinstream.close() ' Close the files Catch IOExcep As IO.IOException ' Some kind of error occurred. Display error message MessageBox.Show(IOExcep.Message) End Try For x = 0 To 100 Foo(x) = x Next Try myoutstream = outf.openwrite myoutstream.write(foo, 0, 10) myoutstream.flush() myoutstream.close() myinstream = inf.openread aretval = myinstream.read(afoo, 0, 10) 'read 10 bytes myinstream.close() Catch IOExcep As IO.IOException ' Some kind of error occurred. Display error message MessageBox.Show(IOExcep.Message) End Try Jeśli operacje czytania z lub pisania do pliku mają być wykonane dla danych o objętości większej niż 1 bajt, to wtedy operowanie na surowych bajtach staje się niewygodne. Dlatego do wykonywania bardziej złożonych operacji na blikach binarnych w VB.Net dostarczono klasy BinaryReader oraz Binary Writer (w poprzedniej wersji języka odpowiednikami tych klasy były DataReader oraz DataWriter). BinaryReader służy do czytania ciągów znaków lub podstawowych typów danych ze strumienia, zaś BinaryWriter służy do zapisu ciągów znaków lub podstawowych typów do strumienia. Operacje na podstawowych typach danych zaimplementowane są jako metody o nazwie odpowiadającej typowi. Na przykład metoda ReadDouble służy do odczytywania ze strumienia danych od razu 8 bajtów, które zinterpretowane zostaną jako bajty liczby typu Double. Pliki tekstowe Pliki tekstowe przechowują tekst a więc znaki, które są w ogólności czytelnymi znakami ASCII. Szczególnymi znakami w plikach tekstowych są znaki końca linii (oprócz oczywiście znaku końca pliku). Poniższy przykład obrazuje, jak odczytać i zapisać kawałek tekstu z i do pliku. Dim OutFile As String = "utest.txt" Dim InFile As String = "test.txt" Dim LinesCounted As Long ' create streams for input and output Dim myinstream As System.IO.StreamReader Dim myoutstream As System.IO.StreamWriter ' temporary string to hold work Dim mystr As String = " " ' initialize to not empty Dim OutStr As String = " " Try myinstream = File.OpenText(InFile) ' Open a new stream for input. ' Do until the stream returns Nothing at end of file. myoutstream = File.CreateText(OutFile) Do Until IsNothing(mystr) mystr = myinstream.readline ' perform conversion OutStr = UCase(mystr) myoutstream.writeline(outstr)

9 LinesCounted += 1 ' Increment line count Loop Catch eof As IO.EndOfStreamException ' No action is necessary, the end of the stream has been reached. Catch IOExcep As IO.IOException ' Some kind of error occurred. MessageBox.Show(IOExcep.Message) Finally myinstream.close() ' Close the files myoutstream.close() End Try Dopisywanie do plików Dopisywanie danych do plików polega na ich otwarciu i umieszczaniu nowych danych na jego końcu. Z punktu widzenia programisty kod realizujący dopisywanie do pliku niewiele różni się od kodu pisania do pliku. Jedyna różnica polega na sposobie otwarcia strumienia: pisanie do pliku myoutstream = File.CreateText dopisywanie do pliku myoutstream = File.AppendText Strumienie standardowe Poniższy przykład pokazuje, jak można skojarzyć standardowy strumień wejścia z obiektem klasy StreamReader. Jeśli moduł zostanie skompilowany do wykonywalnego programu ConsoleApplication3.exe to dla pliku ttt.txt zawierającego cztery linie: wywołanie: ConsoleApplication3.exe < ttt.txt spowoduje wyświetlenie na ekranie sekwencji: Imports System.Text Imports System.Console Imports System.IO Module Module1 Sub Main() Mnozenie() End Sub

10 Sub Listing() Dim stdin As StreamReader, stdout As System.IO.StreamWriter Dim s As String stdin = New StreamReader(System.Console.OpenStandardInput()) stdout = New StreamWriter(System.Console.OpenStandardOutput()) Do s = stdin.readline() If Not s Is Nothing Then Console.WriteLine(s) Else Exit Do End If Loop End Sub Sub Mnozenie() Dim stdin As StreamReader, stdout As System.IO.StreamWriter Dim s As String stdin = New StreamReader(System.Console.OpenStandardInput()) stdout = New StreamWriter(System.Console.OpenStandardOutput()) Do s = stdin.readline() If Not s Is Nothing Then Console.WriteLine(CStr(CInt(s) * 2)) Else Exit Do End If Loop End Sub End Module

Pliki. Operacje na plikach w Pascalu

Pliki. Operacje na plikach w Pascalu Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie

Bardziej szczegółowo

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

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik Wizualne systemy programowania Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Kolekcje List

Bardziej szczegółowo

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

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Zaawansowane techniki programowania C#

Zaawansowane techniki programowania C# Wykład 2 Piotr Błaszyński Wydział Informatyki Zachodniopomorskiego Uniwersytetu Technologicznego 18 października 2017 służą do informowania o niepowodzeniu pewnego elementu programu, dawniej używano tzw.

Bardziej szczegółowo

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak Systemy operacyjne System operacyjny Linux - wstęp Anna Wojak 1 1 Wstęp Linux jest systemem z rodziny Unix. Pierwsza wersja systemu została opracowana w 1969 roku przez K.Thompsona i D.Ritchie Jest to

Bardziej szczegółowo

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

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD 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

Bardziej szczegółowo

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

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,

Bardziej szczegółowo

Funkcje zawarte w bibliotece < io.h >

Funkcje zawarte w bibliotece < io.h > PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece

Bardziej szczegółowo

Niestrukturalna obsługa wyjątków

Niestrukturalna obsługa wyjątków Niestrukturalna obsługa wyjątków Do ustawienie pułapkowania błędów w VB 6 stosuje się wyrażenie On Error. W VB.Net korzysta się z wyrażenia Try... Catch (aby wyeliminować wyrażenie GoTo) On Error (Go To)

Bardziej szczegółowo

Funkcje zawarte w bibliotece < io.h >

Funkcje zawarte w bibliotece < io.h > PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece

Bardziej szczegółowo

Narzędzia informatyczne w językoznawstwie

Narzędzia informatyczne w językoznawstwie Narzędzia informatyczne w językoznawstwie Wiersz poleceń - Potoki i pliki wsadowe Marcin Junczys-Dowmunt junczys@amu.edu.pl Zakład Logiki Stosowanej http://www.logic.amu.edu.pl 22. października 2008 Marcin

Bardziej szczegółowo

Biblioteka standardowa - operacje wejścia/wyjścia

Biblioteka standardowa - operacje wejścia/wyjścia Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline

Bardziej szczegółowo

Programowanie strukturalne

Programowanie strukturalne Programowanie strukturalne wykład pliki tekstowe Agata Półrola Wydział Matematyki UŁ sem. letni 2011/2012 http://www.math.uni.lodz.pl/~polrola Pliki wewnętrzne i zewnętrzne Dotychczas przy pobieraniu danych

Bardziej szczegółowo

Wstęp do programowania 2

Wstęp do programowania 2 Wstęp do programowania 2 wykład 2 pliki tekstowe i binarne Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Pliki wewnętrzne i zewnętrzne Dotychczas przy pobieraniu danych

Bardziej szczegółowo

Wykład PASCAL - Pliki tekstowe

Wykład PASCAL - Pliki tekstowe Podstawy programowania Wykład PASCAL - Pliki tekstowe 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą,

Bardziej szczegółowo

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

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia Materiały Operacje na plikach Informatyka Operacje wejścia-wyjścia w C/C++: Podejście proceduralne Podejście obiektowe Standardowe strumienie wejścia i wyjścia stdin - strumień wejściowy (klawiatura) cin

Bardziej szczegółowo

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()

Bardziej szczegółowo

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

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

Bardziej szczegółowo

1 Przygotował: mgr inż. Maciej Lasota

1 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 1 1/7 Język C Instrukcja laboratoryjna Temat: Programowanie w powłoce bash (shell scripting) 1 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do programowania w powłoce Skrypt powłoki

Bardziej szczegółowo

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

Pliki. Informacje ogólne. Obsługa plików w języku C Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego

Bardziej szczegółowo

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Bash - wprowadzenie. Bash - wprowadzenie 1/39 Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:

Bardziej szczegółowo

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh. Powłoka I Popularne implementacje W stylu sh (powłoki zdefiniowanej w POSIX) bash (najpopularniejsza) zsh ksh mksh W stylu csh csh tcsh 12 października 2018 1 / 16 Powłoka II Zachęta Komunikuje się z użytkownikiem

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików Plik to uporządkowany ciąg danych Dostęp do danych w pliku jest sekwencyjny, tj. istnieje pojęcie elementu aktualnego (tzw. wskaźnika pliku). Możliwy dostęp do danych w pliku jest tylko tam, gdzie wskazuje

Bardziej szczegółowo

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

Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku. Program 7 Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku. #include #include using namespace std; int main()

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

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

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013 Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Obsługa plików Kraków 2013 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim będziemy mogli

Bardziej szczegółowo

Programowanie w językach

Programowanie w językach Programowanie w językach wysokiego poziomu Obsługa plików za pomocą strumieni Elektronika i Telekomunikacja, semestr III rok akademicki 2013/2014 dr inż. Paweł Myszkowski Plan zajęć a) otwieranie i zamykanie

Bardziej szczegółowo

Trochę o plikach wsadowych (Windows)

Trochę o plikach wsadowych (Windows) Trochę o plikach wsadowych (Windows) Zmienne środowiskowe Zmienną środowiskową można ustawić na stałe w systemie (Panel sterowania->system- >Zaawansowane ustawienia systemu->zmienne środowiskowe) lub też

Bardziej szczegółowo

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików Plik to uporządkowany ciąg danych Dostęp do danych w pliku jest sekwencyjny, tj. istnieje pojęcie elementu aktualnego (tzw. wskaźnika pliku). Możliwy dostęp do danych w pliku jest tylko tam, gdzie wskazuje

Bardziej szczegółowo

Zadanie. Menu Plik niech posiada dwie pozycje: Tekstowy i Excel, a każda z nich niech posiada dwie pozycje Otwórz i Zapisz, patrz rys. 2.

Zadanie. Menu Plik niech posiada dwie pozycje: Tekstowy i Excel, a każda z nich niech posiada dwie pozycje Otwórz i Zapisz, patrz rys. 2. Zadanie Wykonać aplikację posiadającą możliwość komunikowania się (zapis/odczyt) pomiędzy obiektem DataGridView, a plikiem tekstowym i plikiem MS Excel. Niech formularz ma postać jak na rys. 1. Rysunek

Bardziej szczegółowo

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

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni Wykład 5 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Standardowa biblioteka szablonów (Standard Template

Bardziej szczegółowo

Aplikacje w środowisku VBA. Visual Basic for Aplications

Aplikacje w środowisku VBA. Visual Basic for Aplications Aplikacje w środowisku VBA Visual Basic for Aplications Podstawowe informacje o VBA Visual Basic for Aplications, w skrócie VBA, to język programowania rozwijany przez Microsoft, którego zastosowanie pozwala

Bardziej szczegółowo

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc. Zmienne powłoki Zmienne powłoki (shell variables) to tymczasowe zmienne, które mogą przechowywać wartości liczbowe lub ciągi znaków. Związane są z powłoką, Przypisania wartości do zmiennej następuje poprzez

Bardziej szczegółowo

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

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku System plików 1. Pojęcie pliku 2. Typy i struktury plików 3. etody dostępu do plików 4. Katalogi 5. Budowa systemu plików Pojęcie pliku (ang( ang. file)! Plik jest abstrakcyjnym obrazem informacji gromadzonej

Bardziej szczegółowo

System plików warstwa logiczna

System plików warstwa logiczna Dariusz Wawrzyniak Pojęcie u Plik jest abstrakcyjnym obrazem informacji gromadzonej i udostępnianej przez system komputerowy. Plik jest podstawową jednostką logiczną magazynowania informacji w systemie

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Wstęp do programowania. Wykład 1

Wstęp do programowania. Wykład 1 Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.

Bardziej szczegółowo

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

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 5 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Przestrzenie nazw Standardowa biblioteka szablonów

Bardziej szczegółowo

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

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

Programowanie i struktury danych

Programowanie i struktury danych Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w

Bardziej szczegółowo

Spis treści. Podstawy posługiwania się komputerem

Spis treści. Podstawy posługiwania się komputerem Spis treści Podstawy posługiwania się komputerem 1. Budowa i działanie komputera 15 1.1. Komputery i ich rodzaje 15 1.2. Zasada działania komputera 18 1.2.1. Komputer a użytkownik 18 1.2.2. Przetwarzanie

Bardziej szczegółowo

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

Pliki. Informacje ogólne. Obsługa plików w języku C Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych. Może posiadać określone atrybuty, a odwołanie do niego odbywa się poprzez nazwę. Każdy plik ma skończoną

Bardziej szczegółowo

INFORMATYKA Studia Niestacjonarne Elektrotechnika

INFORMATYKA Studia Niestacjonarne Elektrotechnika INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl

Bardziej szczegółowo

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011 Obsługa plików Systemy Operacyjne 2 laboratorium Mateusz Hołenko 25 września 2011 Plan zajęć 1 Pliki w systemie Linux i-węzły deskryptory plików 2 Operacje na plikach otwieranie i zamykanie zapis i odczyt

Bardziej szczegółowo

Wykład 4. Tablice. Pliki

Wykład 4. Tablice. Pliki Informatyka I Wykład 4. Tablice. Pliki Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Tablice Tablica uporządkowany zbiór elementów określonego typu Każdy element tablicy posiada

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM

Bardziej szczegółowo

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

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1 Kurs systemu Unix wykład wstępny Kurs systemu Unix 1 Cele wykladu Zdobycie podstawowej wiedzy o systemie i jego narzędziach. Poznanie unixowych języków skryptowych (bash, awk,...). Nauka programowania

Bardziej szczegółowo

Strumienie, pliki. Sortowanie. Wyjątki.

Strumienie, pliki. Sortowanie. Wyjątki. Strumienie, pliki. Sortowanie. Wyjątki. Operacje I/O w Javie Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy

Bardziej szczegółowo

Użycie Visual Basic for Applications ("VBA")

Użycie Visual Basic for Applications (VBA) Użycie Visual Basic for Applications ("VBA") Przegląd SEE z modułem VBA Developer SEE używa języka programowania Visual Basic for Applications (VBA) pozwalającego tworzyć krótkie programy zwane "makrami".

Bardziej szczegółowo

Strumienie, pliki. Sortowanie. Wyjątki.

Strumienie, pliki. Sortowanie. Wyjątki. Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy

Bardziej szczegółowo

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych 1. Wczytywanie z plików tekstowych. Wczytywanie z pliku tekstowego wymaga: a) skojarzenia zmiennej plikowej z plikiem procedura assignfile b)

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Dlaczego stosujemy edytory tekstu?

Dlaczego stosujemy edytory tekstu? Edytor tekstu Edytor tekstu program komputerowy służący do tworzenia, edycji i formatowania dokumentów tekstowych za pomocą komputera. Dlaczego stosujemy edytory tekstu? możemy poprawiać tekst możemy uzupełniać

Bardziej szczegółowo

Podstawy programowania w C++

Podstawy programowania w C++ Podstawy programowania w C++ Strumienie wejścia cin>> i wyjścia cout

Bardziej szczegółowo

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

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE Magda Mielczarek Pracownia Informatyczna 2015/2016 1 Podstawowe definicje Linux system operacyjny, które oferuje kompletne środowisko programistyczne

Bardziej szczegółowo

Programowanie w VB Proste algorytmy sortowania

Programowanie w VB Proste algorytmy sortowania Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

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

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Programowanie w językach wysokiego poziomu

Programowanie w językach wysokiego poziomu Programowanie w językach wysokiego poziomu zajęcia nr 2 Elektronika i Telekomunikacja, semestr III rok akademicki 2014/2015 Plan dzisiejszych zajęć Pliki tekstowe 1. Operacje na plikach - wprowadzenie

Bardziej szczegółowo

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for

Bardziej szczegółowo

Zakład Systemów Rozproszonych

Zakład Systemów Rozproszonych Zakład Systemów Rozproszonych Politechnika Rzeszowska Moduł 5: Wybrane programy użytkowe Edytor Vi Edytor Vi uruchamiany jest w oknie terminala. Przy jego pomocy możemy dokonywać następujących operacji:

Bardziej szczegółowo

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

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists() Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,

Bardziej szczegółowo

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

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików 1 Pierwsze kroki w C++ cz.3 2 Obsługa plików Do pracy z plikami zewnętrznymi niezbędna będzie biblioteka fstream. Udostępnia ona programiście narzędzia do zapisu i odczytu plików. 2.1 Typ zmiennej fstream.

Bardziej szczegółowo

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje. Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje. 1. W języku VHDL zdefiniowano mechanizm odczytywania i zapisywania danych z i do plików. Pliki te mogą być wykorzystywane

Bardziej szczegółowo

Polecenia wewnętrzne:

Polecenia wewnętrzne: Polecenia wewnętrzne DOS-u znajdują się w pamięci operacyjnej komputera, realizowane przez procesor poleceń COMMANDCOM Polecenia zewnętrzne DOS-u są to pliki ściągane do pamięci operacyjnej każdorazowo

Bardziej szczegółowo

Obsługa blędów i zewnętrznych plików

Obsługa blędów i zewnętrznych plików Obsługa blędów i zewnętrznych plików Rafał Zduńczyk Programowanie arkuszy kalkulacyjnych 2017 Wyłapanie błędu Sub error1() Dim x, y, z x = InputBox("x:") y = InputBox("y:") On Error GoTo handler1 On Error

Bardziej szczegółowo

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019 BASH - LINIA POLECEŃ Bioinformatyka 2018/2019 PODSTAWOWE DEFINICJE Linux system operacyjny, które oferuje kompletne środowisko programistyczne Powłoka interfejs wiersza poleceń zapewniający komunikację

Bardziej szczegółowo

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

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach Laboratorium Systemów Operacyjnych Ćwiczenie 4. Operacje na plikach Wykonanie operacji wymaga wskazania pliku, na którym operacja ma zostać wykonana. Plik w systemie LINUX identyfikowany jest przez nazwę,

Bardziej szczegółowo

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi) Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie trzecie (jedne zajęcia) Temat: Potoki i łącza nazwane w Linuksie. Opracowanie: dr in ż. Arkadiusz Chrobot Wprowadzenie 1. Komunikacja

Bardziej szczegółowo

Programowanie 3 - Funkcje, pliki i klasy

Programowanie 3 - Funkcje, pliki i klasy Instytut Informatyki Uniwersytetu Śląskiego Laborki funkcja; parametry funkcji; typ zwracany; typ void; funkcje bez parametrów; napis.length() - jako przykład funkcji. Zadania funkcja dodająca dwie liczby;

Bardziej szczegółowo

Znaki globalne w Linuxie

Znaki globalne w Linuxie Znaki globalne w Linuxie * reprezentuje jeden lub wiele znaków (wild-card character)? reprezentuje dokładnie jeden znak (wild-card character) [abcde] reprezentuje dokładnie jeden znak z wymienionych [a-e]

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Kurs programowania. Wykład 10. Wojciech Macyna. 05 maja 2016

Kurs programowania. Wykład 10. Wojciech Macyna. 05 maja 2016 Wykład 10 05 maja 2016 Biblioteka wejścia/wyjścia (Input/Output) import java.io.*; Umożliwia przechowywania danych na nośniku zewnętrznym Dane moga być wysyłane do plików, na drukarkę, do bufora pamięci,

Bardziej szczegółowo

Podstawy Programowania 2

Podstawy Programowania 2 Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu

Bardziej szczegółowo

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika i Programowanie VBA 1 - podstawy Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy

Bardziej szczegółowo

Prolog Wejście / wyjście r

Prolog Wejście / wyjście r Prolog Wejście / wyjście 16.06.2016r Najprostszym sposobem pobierania danych od użytkownika jest odczytywanie informacji wprowadzonych za pomocą urządzenia standardowego wejścia jakim zwykle jest klawiatura.

Bardziej szczegółowo

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej. Formularze VBA Przykład1 INTERAKTYWNY FORMULARZ Program tworzący interaktywny formularz. Objaśnienie: w dowolnym momencie można wprowadzić wartość w polu tekstowym ID, Excel VBA wczytuje odpowiedni rekord.

Bardziej szczegółowo

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux Administracja sieciowymi systemami operacyjnymi III Klasa - Linux SKRYPTY POWŁOKI mgr inż. Tomasz Borowiec SKRYPTY POWŁOKI - PODSTAWY W Linuksie skrypt jest plikiem tekstowym zawierającym polecenia systemowe

Bardziej szczegółowo

Ćwiczenie 1. Ćwiczenie 2. Ćwiczenie 3. Opisz działanie następujących komend systemowych : COPY EDIT FDISK FIND FORMAT XCOPY

Ćwiczenie 1. Ćwiczenie 2. Ćwiczenie 3. Opisz działanie następujących komend systemowych : COPY EDIT FDISK FIND FORMAT XCOPY Ćwiczenie 1 Opisz działanie następujących komend systemowych : COPY EDIT FDISK FIND FORMAT XCOPY Ćwiczenie 2 Na dysku d utworzyć drzewo katalogów (a) i zmienić katalog bieżący na przemysłowe (b) Ćwiczenie

Bardziej szczegółowo

DOS Podstawowe komendy Przygotowanie dyskietki do pracy Praca z katalogami w systemie DOS Operacje kopiowania

DOS Podstawowe komendy Przygotowanie dyskietki do pracy Praca z katalogami w systemie DOS Operacje kopiowania DOS (Disk Operation System) jest dyskowym systemem operacyjnym przeznaczonym dla jednego użytkownika, do 16-bitowych mikrokomputerów wykorzystujących procesory rodziny Intel 8086. Wygoda użytkowania oraz

Bardziej szczegółowo

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Programowanie w C++ Wykład 1 Katarzyna Grzelak 26 luty 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 28 Umiejętność, która otwiera

Bardziej szczegółowo

Wiadomości i umiejętności

Wiadomości i umiejętności Kryteria oceniania wiadomości i umiejętności uczniów z informatyki. Zakres wymagań na poszczególne oceny szkolne dla klas IV VI do programu nauczania Przygoda z komputerem DKW 4014 125/00 Opracował: mgr

Bardziej szczegółowo

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7 Spis treści Wprowadzenie...n...n... 5 Jak korzystać z tej książki?...t... 6 Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7 Podsumowanie...t...t...15 Rozdział 2. Rozdział

Bardziej szczegółowo

Systemy operacyjne System plików

Systemy operacyjne System plików Systemy operacyjne System plików Dr inż. Dariusz Caban mailto:dariusz.caban@pwr.wroc.pl tel.: (071)320-2823 Pamięci o bezpośrednim dostępie powierzchnia/głowica sektor cylinder/ścieżka Przykłady: HDD,

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof

Bardziej szczegółowo

Biblioteki wejścia/wyjścia. Strumienie we/wy (I/O)

Biblioteki wejścia/wyjścia. Strumienie we/wy (I/O) Biblioteki wejścia/wyjścia Strumienie we/wy (I/O) Pojęcie strumienia Strumień reprezentuje źródło lub odbiorcę danych (obiekt zdolny odbierać lub produkować dane). Strumień ukrywa szczegóły związane z

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

LibreOffice Calc VBA

LibreOffice Calc VBA LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć

Bardziej szczegółowo

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++ Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi)

Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) wiczenie trzecie Temat: Potoki i ł cza nazwane w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Komunikacja z wykorzystaniem

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo