Podstawy programowania

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

Download "Podstawy programowania"

Transkrypt

1 Pliki Podstawy programowania Prawie w każdym programie jest potrzebne napisanie kodu do czytania danych z pliku lub do zapisywaniu danych do pliku. Każde środowisko programowania zawiera środki do czytania i zapisywania danych do plików. Najmniejszej jednostką do przechowywania danych w pliku jest bajt. Rozmiar pliku jest podawany w bajtach lub w większych jednostkach: 1 Kbajt = 1024 bajtów, 1 Mbajt = 1024 * 1024 bajtów, 1 Gbajt = 1024 * 1024 * 1024 bajtów. Istnieją dwa typu plików: binarne i tekstowe. Plik binarny jest łańcuchem zapisów reprezentujących w postaci dwójkowej liczby lub znaki tekstowe. Zapisy mają jeden rozmiar, dlatego na podstawie podanego indeksu zapisu można obliczyć miejsce tego zapisu w pliku i przeczytać lub zapisać w to miejsce porcję danych. Plik tekstowy też jest łańcuchem zapisów, ale w postaci znakowej reprezentacji liczb i znaków tekstowych. Znaki zapisywane są w kodzie ASCII lub w kodzie UNICODE. Zapisy mają zwykle różne rozmiary i rozdzielone są albo dwoma znakami Początek wiersza (Powrót karetki) (kod 13) i Nowy wiersz (kod 10), albo tylko jednym znakiem Nowy wiersz (kod 10). Aby przeczytać lub zapisać element danych z zadanym indeksem, trzeba iść od początku pliku i liczyć zapisy. Oczywiste, że plik binarny daje zwykle większą prędkość działania programu, choć w przypadku szeregowego zapisywania i czytania zapisów pliki binarny i tekstowy nie różną się prędkością operacji. Przed operacją czytania lub zapisywania plik musi być otworzony za pomocą specjalnej instrukcji. Po zakończeniu operacji plik należy zamknąć.

2 1. Operacje z plikami w języku C Otwarcie i zamknięcie plików W języku C informacja o pliku i o stanie procesu czytania lub zapisywania może być przechowywana w obiekcie typu FILE. Wymagane prototypy funkcji i struktur są włączone w pliki nagłówkowe io.h i stdio.h. Odwołanie do tych plików należy dołączyć do tekstu programu: #include <io.h> #include <stdio.h> Alokacją obiektu typu FILE wykonuje funkcja fopen, która zwraca wskaźnik na strukturę FILE. Funkcja fopen ma następujący nagłówek: FILE* fopen(const char* nazwa_pliku, const char* tryb) Argument nazwa_pliku musi być nazwą pliku razem ze ścieżką. Zamiast nazwy pliku może być jedna z nazw standardowych urządzeni komputera: con - monitor, prn - drukarka, com - port szeregowy. Argument tryb określa tryb otwarcia pliku. Tryb jest opisywany ciągiem liter. Pierwsza litera określa operację nad plikiem: r - do odczytu pliku, który musi istnieć, w - do zapisywania pliku; jeżeli plik istnieje, to najpierw jest kasowany, a - do dopisywania pliku; jeżeli plik nie istnieje, to jest kreowany. Następna litera wskazuje na typ pliku: t - plik tekstowy, b - plik binarny. Jeżeli żadna z liter t, b nie występuje, to na typ pliku wskazuje wartość globalnej zmiennej _fmode. Na końcu wiersza - argumentu tryb można napisać jeszcze znak +, aby wskazać na możliwość tak odczytu, jak i zapisywania. Przykładowo FILE* pf=fopen( C:\\TEMP\\test.txt, rt+ ); /* jest otwierany istniejący plik tekstowy z możliwością aktualizacji*/ W przypadku nieudanego otwarcia pliku, funkcja fopen zwraca zerową wartość, co można wykorzystać dla sprawdzania czy plik istnieje?. Plik jest zamykany przy pomocy funkcji fclose, która ma następujący nagłówek: int fclose(file* wskaźnik_pliku) Na przykład: fclose(pf); /* zamyka plik ze wskaźnikiem pf */

3 Operacje z plikami tekstowymi W języku C do operacji z plikami tekstowymi służą licznie funkcje: int fgetc(file* pf) - odczyt pojedynczego znaku, int fputc(int znak, FILE* pf) - zapisywanie pojedynczego znaku, char* fgets(char* pbufor, int limit, FILE* pf) - odczyt wiersza, char* fputs(char* pbufor, FILE* pf) - zapisywanie wiersza. Ostatnim znakiem w pliku tekstowym jest znak EOF (ang. End Of File), co można wykorzystać dla wyjścia z cyklu odczytu pojedynczych znaków, na przykład: FILE* pf=fopen( C:\\TEMP\\test.txt, rt ); /* jest otwierany istniejący plik tekstowy*/ FILE* pf2=fopen( C:\\TEMP\\test2.txt, wt ); /* jest otwierany plik tekstowy do zapisywania*/ int znak; do {/*przepisywanie z pliku test.txt do pliku test2.txt*/ znak=fgetc(pf); if (znak!= EOF) { fputc(znak,pf2); } } while (znak!= EOF); fclose(pf2); /* zamyka plik i zapisuje znak EOF*/ fclose(pf); /* zamyka plik*/ Funkcja fgets przepisuje do bufora łańcuch znaków do pary znaków Początek wiersza i Nowy wiersz, ale nie więcej niż (limit-1) znaków, i dodaje do bufora znaki Nowy wiersz i \ 0. Funkcja fputs pobiera z bufora i zapisuje do pliku łańcuch znaków, który musi być zakończony w buforze znakami Nowy wiersz i \0. Przykład korzystania z funkcji fgets i fputs: FILE* pf=fopen( C:\\TEMP\\test.txt, rt ); /* jest otwierany istniejący plik tekstowy*/ FILE* pf2=fopen( C:\\TEMP\\test2.txt, wt ); /* jest otwierany plik tekstowy do zapisywania*/ char buf[128]; do {/*przepisywanie z pliku test.txt do pliku test2.txt*/ char* pch=fgets(buf,128,pf); if (pch!= 0) fputs(buf,pf2); } while (pch!= 0); fclose(pf2); /* zamyka plik i zapisuje znak EOF*/ fclose(pf); /* zamyka plik*/ Operacje z plikami binarnymi W języku C do operacji z plikami binarnymi są wykorzystywane następujące funkcje:

4 size_t fread(void* buf, size_t size, size_t nn, FILE* pf); size_t fwrite(void* buf, size_t size, size_t nn, FILE* pf); long ftell(file* pf); int fgetpos(file* pf, fpos_t* pos); int fseek(file* pf, long offset, int baza); int fsetpos(file* pf, fpos_t* pos); int fflush(file* pf); W środowisku Borland C++ Builder typ size_t jest zdefiniowany jako unsigned int, typ fpos_t - jako long. Funkcja fread czyta z pliku pf do bufora buf nn bloków bajtów rozmiarem size. Funkcja fwrite zapisuje do pliku pf z bufora buf nn bloków bajtów rozmiarem size. Obie funkcje zwracają liczbę przesłanych bloków, ale nie bajtów. Liczba przesłanych bajtów równa się (nn * size). Funkcje ftell i fgetpos podają pozycję wskaźnika pliku, a funkcje fseek i fsetpos ustawia wskaźnik pliku. Argument baza funkcji fseek może mieć następujące wartości: 0 - przemieszczenie offset należy liczyć od początku pliku, 1 - przemieszczenie offset należy liczyć od aktualnej pozycji wskaźnika pliku, 2 - przemieszczenie offset należy liczyć od końca pliku. Funkcja fflush opróżnia bufor pliku wyprowadzając dane do pliku. 2. Operacje z plikami w języku C++ W języku C++ do operacji z plikami można wykorzystywać strukturę FILE i funkcje języka C. Środowisko Borland C++ Builder W środowisku Borland C++ Builder jest klasa TFileStream do obsługi operacji z plikami. Metody klasy TFileStream są przystosowane do operacji z plikami binarnymi. W celu kreacji lub otwarcia istniejącego pliku należy zaalokować obiekt typu klasy TFileStream. Klasa ma konstruktor: fastcall TFileStream(const AnsiString FileName, Word Mode); Argument FileName jest nazwą pliku ze ścieżką. Argument Mode nadaje tryb otwarcia pliku i prawa dostępu do pliku. Wartość argumentu jest sumą logicznej binarnej opcji z dwóch grup. Opcje trybu otwarcia pliku mogą być następujące: fmcreate - system operacyjny musi otworzyć plik, a jeżeli plik istnieje, to skrócić jego do zera, fmopenread - system operacyjny musi otworzyć plik tylko do odczytu,

5 fmopenwrite - system operacyjny musi otworzyć plik tylko do zapisywania, fmopenreadwrite - możliwe są odczyt i zapisywanie danych. Opcje prawa dostępu do pliku mogą być następujące: fmshareexclusive - plik jest niedostępny dla innych aplikacji dopóty dopóki nie będzie zamknięty, fmsharedenywrite - inne aplikacje mogą tylko czytać dane z pliku, fmsharedenyread - inne aplikacje mogą tylko zapisywać dane do nie zamkniętego pliku. fmsharedenynone - inne aplikacje mogą czytać i zapisywać dane do nie zamkniętego pliku. Jeżeli plik nie może być otworzony, to system operacyjny produkuje wyjątek. Operacje z plikami binarnymi W języku C++ Builder w celu operacji z plikami binarnymi do klasy TFileStream dołączone są następujące metody i właściwości: virtual int fastcall Read(void *Buf, int NN); - odczyt do tablicy Buf nie więcej niż NN bajtów, virtual int fastcall Write(const void *Buf, int NN); - zapisywanie NN bajtów z tablicy Buf, virtual int64 fastcall Seek(const int64 Offs, TSeekOrigin Origin); - odczyt wiersza, property int64 Position - aktualna pozycja wskaźnika pliku, tj. odległość od początku pliku. property int64 Size - rozmiar pliku, ale tej właściwości nie można ustawić. Do metody Seek powinny być przekazane przemieszczenie Offs i opcja kierunku Origin, która może mieć jedną z wartości: - sofrombeginning - przemieszczenie od początku pliku, - sofromcurrent - przemieszczenie od aktualnej pozycji w pliku, - sofromend - przemieszczenie od końca pliku (przemieszczenie Offs musi być nie dodatnie). Środowisko Visual C++ W środowisku Visual C++ do operacji z plikami mają zastosowanie funkcje API (ang. Application Programming Interface) Win32. Tworzenie lub otwarcie pliku Funkcja API Win32 CreateFile tworzy lub otwiera plik. HANDLE CreateFile( LPCTSTR lpfilename, DWORD dwdesiredaccess, DWORD dwsharemode, LPSECURITY_ATTRIBUTES lpsecurityattributes, DWORD dwcreationdisposition, DWORD dwflagsandattributes, HANDLE htemplatefile );

6 Argumenty funkcji: lpfilename - adres nazwy pliku ze ścieżką, dwdesiredaccess tryb dostępu do pliku: GENERIC_READ do odczytu, GENE- RIC_WRITE do zapisu, które można połączyć operatorem, dwsharemode tryb dostępu do pliku ze strony innych aplikacji (można ustawić na 0), lpsecurityattributes adres struktury SECURITY_ATTRIBUTES z informacjami o zabezpieczeniach (można ustawić na 0), dwcreationdisposition tryb otwarcia pliku: CREATE_ALWAYS kreacja nowego pliku, OPEN_EXISTING otwarcie istniejącego pliku, dwflagsandattributes dodatkowe atrybuty (można ustawić na 0), htemplatefile deskryptor pliku tymczasowego (można ustawić na 0). Funkcja zwraca deskryptor (HANDLE) pliku, który należy stosować w funkcjach plikowych. Zamknięcie pliku Do zamknięcia pliku służy funkcja API Win32 CloseHandle. BOOL CloseHandle( HANDLE hobject ); Funkcja CloseHandle ma argument: hobject deskryptor pliku. Zapisywanie do pliku Do zapisywania do pliku służy funkcja API Win32 WriteFile. BOOL WriteFile( HANDLE hfile, LPCVOID lpbuffer, DWORD nnumberofbytestowrite, LPDWORD lpnumberofbyteswritten, LPOVERLAPPED lpoverlapped ); Funkcja WriteFile ma argumenty: hfile deskryptor pliku. lpbuffer adres bufora z danymi, nnumberofbytestowrite ilość bajtów do zapisywania, lpnumberofbyteswritten adres zmiennej do przechowywania ilości zapisanych bajtów, lpoverlapped adres struktury OVERLAPPED z informacją o nadpisaniu (można ustawić na 0). Funkcja zwraca ilość faktyczne zapisanych bajtów. Odczyt z pliku Do odczytu z pliku służy funkcja API Win32 ReadFile. BOOL ReadFile( HANDLE hfile, LPVOID lpbuffer, DWORD nnumberofbytestoread, LPDWORD lpnumberofbytesread, LPOVERLAPPED lpoverlapped ); Funkcja ReadFile ma argumenty:

7 hfile deskryptor pliku. lpbuffer adres bufora do przyjmowania danych, nnumberofbytestoread ilość bajtów do odczytu (rozmiar buforu), lpnumberofbytesread adres zmiennej do przechowywania ilości odczytanych bajtów, lpoverlapped adres struktury OVERLAPPED z informacją o nadpisaniu (można ustawić na 0). Funkcja zwraca (przez rejestr EAX) ilość faktyczne odczytanych bajtów. Przemieszczenie w pliku Do przemieszczenia w pliku służy funkcja API Win32 SetFilePointer. DWORD SetFilePointer( HANDLE hfile, LONG ldistancetomove, PLONG lpdistancetomovehigh, DWORD dwmovemethod ); Funkcja SetFilePointer ma argumenty: hfile deskryptor pliku. ldistancetomove odległość (w bajtach) do wartości (2^32 2), lpdistancetomovehigh ten argument musi być równy 0, jeśli rozmiar pliku jest mniejszy niż (2^32 2), a jeśli rozmiar pliku jest większy niż (2^32 2), to ten argument musi być adresem 32-bitowej zmiennej, która razem z argumentem ldistancetomove tworzy 64-bitową odległość, dwmovemethod opcja wskazująca na regułę liczenia odległości: FILE_BEGIN odległość jest liczona od początku pliku, FILE_CURRENT odległość jest liczona od aktualnej pozycji, FILE_END odległość jest liczona od końca pliku. Funkcja zwraca (przez rejestr EAX) pozycję wskaźnika pliku. Jeśli rozmiar pliku jest większy niż (2^32 2), to argument lpdistancetomovehigh wskazuje na 32-bitową zmienną, która razem z zawartością rejestru EAX tworzy 64-bitową pozycję.

8 3. Operacje z plikami w języku Object Pascal W języku Object Pascal można zdefiniować zmienną plikową typu plikowego. Typ plikowy file opisuje plik z nieznanym typem jednostki. Typ plikowy file of typ_jednostki opisuje plik binarny z zadanym typem jednostki. Procedura AssignFile łączy zmienną plikową z konkretnym plikiem. Za pomocą procedury Reset można otworzyć plik dla odczytu, za pomocą procedury Rewrite - dla zapisywania, oraz za pomocą procedury Append - dla dopisywania. Do zamykania pliku służy procedura CloseFile, Przykład otworzenia pliku dla odczytu w środowisku Delphi w programie obsługującej formularz FormKoszty z obiektami OpenDialog1 i StringGrid1: var plikkoszty: file of Integer; var i, j, value: Integer; if OpenDialog1.Execute then AssignFile(plikKoszty,OpenDialog1.FileName); Reset(plikKoszty); try for i := 1 to 5 do for j := 1 to 5 do Read(plikKoszty,value); FormKoszty.StringGrid1.Cells[i,j]:=IntToStr(value); finally CloseFile(plikKoszty); Operacje z plikami tekstowymi W środowisku Delphi z językiem Object Pascal jest specjalny typ Text (lub TextFile). Do obsługi plików tekstowych typu Text są wykorzystywane procedury: - Eoln do sprawdzania, czy jest osiągnięty koniec pliku, - Read do odczytu sformatowanego tekstu, - Readln do odczytu wiersza tekstu, - Write do zapisu sformatowanego tekstu. - Writeln do zapisu wiersza tekstu. Przykład z przepisywaniem zawartości obiektu Memo1 do pliku i z powrotem do obiektu Memo1: var pliktest: Text; var i,nn: Integer; var str: string; if SaveDialog1.Execute then AssignFile(plikTest,SaveDialog1.FileName);

9 Rewrite(plikTest); try nn:= Memo1.Lines.Count; for i := 1 to nn do str:= Memo1.Lines[i-1]; Writeln(plikTest,str); finally CloseFile(plikTest); if OpenDialog1.Execute then AssignFile(plikTest,OpenDialog1.FileName); Reset(plikTest); try nn:=0; repeat if Eoln(plikTest)=False then Readln(plikTest,str); Memo1.Lines[nn]:=str + 'plus'; nn:=nn+1; end end until Eoln(plikTest)=True; finally CloseFile(plikTest); Operacje z plikami binarnymi W środowisku Delphi z językiem Object Pascal do operacji z plikami binarnymi jest przeznaczona klasa TStream. Do tej klasy należą metody: procedure ReadBuffer(var Buffer; Count: Longint); do odczytu do buforu Buffer bloku rozmiarem Count bajtów, procedure WriteBuffer(const Buffer; Count: Longint); do zapisu z buforu Buffer bloku rozmiarem Count bloku bajtów. function Seek(Offset: Longint; Origin: Word): Longint; overload; virtual; do ustawienia pozycji w pliku. Do metody Seek powinny być przekazane przemieszczenie Offset i opcja kierunku Origin, która może mieć jedną z wartości: - sofrombeginning - przemieszczenie od początku pliku, - sofromcurrent - przemieszczenie od aktualnej pozycji w pliku, - sofromend - przemieszczenie od końca pliku (przemieszczenie Offs musi być nie dodatnie). Właściwości klasy TStream:

10 property Position: Int64; - podaje aktualną pozycją wskaźnika pliku, tj. odległość od początku pliku. property Size: Int64; - podaje rozmiar pliku. 4. Operacje z plikami w języku Visual Basic.NET W języku Visual Basic.NET dla operacji z plikami jest specjalna klasa FileStream. Kreacja lub otwarcie istniejącego pliku są związane z alokacją obiektu typu klasy File- Stream. Klasa ma wiele konstruktorów, z których część jest przedstawiona nizej: Public Sub New(ByVal path As String, ByVal mode As FileMode) Public Sub New(ByVal path As String, ByVal mode As FileMode, ByVal access As FileAccess) Public Sub New(ByVal path As String, ByVal mode As FileMode, ByVal access As FileAccess, ByVal share As FileShare) Public Sub New(ByVal path As String, ByVal mode As FileMode, ByVal access As FileAccess, ByVal share As FileShare, ByVal buffersize As Integer) Public Sub New(ByVal path As String, ByVal mode As FileMode, ByVal access As FileAccess, ByVal share As FileShare, ByVal buffersize As Integer, ByVal useasync As Boolean) Do wszystkich konstruktorów należy podać poprzez argument path nazwę pliku ze ścieżką. Argument mode nadaje tryb otwarcia pliku. Możliwe są następujące warianty: Append - system operacyjny musi otworzyć istniejący plik lub otworzyć nowy plik oraz ustawić pozycję w pliku na koniec, Create - system operacyjny musi otworzyć plik, a jeżeli plik istnieje, to skrócić jego do zera, CreateNew - system operacyjny musi otworzyć nowy plik, a jeżeli plik istnieje, to powstaje wyjątek IOException, Open - system operacyjny musi otworzyć istniejący plik, a jeżeli plik nie istnieje, to powstaje wyjątek FileNotFoundException, OpenOrCreate - system operacyjny musi otworzyć istniejący plik lub otworzyć nowy plik, Truncate - system operacyjny musi otworzyć istniejący plik i skrócić jego długość do zera, Argument access nadaje prawa do operacji z plikiem. Możliwe są następujące warianty: Read - do pliku nie można zapisywać danych, ReadWrite - możliwe są odczyt i zapisywanie danych, Write - do pliku można tylko zapisywać dane. Argument share nadaje prawa dostępu do pliku. Możliwe są następujące warianty: None - plik jest niedostępny dla innych aplikacji dopóty dopóki nie będzie zamknięty, Read - inne aplikacje mogą czytać dane z pliku, ReadWrite - inne aplikacje mogą czytać i zapisywać dane do nie zamkniętego pliku, Write - inne aplikacje mogą zapisywać dane do nie zamkniętego pliku.

11 Argument buffersize nadaje rozmiar bufora dla danych. Argument useasync nadaje możliwość asynchronicznego odczytu i zapisywaniu. Przykład: ' Generacja danych w celu zapisywania do pliku Dim writearray(100000) As Byte Dim randomgenerator As New Random () randomgenerator.nextbytes(writearray) Dim fstream As New FileStream("Test.dat", _ FileMode.Create, FileAccess.ReadWrite, _ FileShare.None, 4096, True) Operacje z plikami tekstowymi W języku Visual Basic.NET w celu odczytu tekstu można wykorzystać klasę StreamReader, która dziedziczy od klasy TextReader. Obiekt tej klasy można zaalokować za pomocą konstruktora Public Sub New(ByVal stream As Stream), tj. na bazie otwartego strumienia, lub z argumentem path - z nazwą pliku ze ścieżką: Public Sub New(ByVal path As String). W konstruktorach klasy StreamReader mogą być dodatkowe argumenty: ByVal encoding As Encoding, ByVal detectencodingfrombyteordermarks As Boolean. Argument encoding opisuje kodowanie tekstu (ASCII, UNICODE itp.). Argument detectencodingfrombyteordermarks wskazuje, czy jest na początku pliku informacja o kolejności bajtów przy kodowaniu tekstu. W klasie StreamReader są metody do odczytu z pliku tekstowego: Overrides Overloads Public Function Read() As Integer - do pojedynczego odczytu znaków, Overrides Public Function ReadLine() As String - do odczytu wiersza zakończonego znakiem \n lub znakami \r\n. Metoda Read zwraca -1, jeżeli nie ma znaków do odczytu. W przypadku końcu pliku metoda ReadLine zwraca wartość Nothing. W klasie StreamReader jest metoda do odczytu do końca pliku: Overrides Public Function ReadToEnd() As String

12 Przykład do odczytu tekstu z pliku tekstowego: Imports System Imports System.IO Imports System.IO.TextReader Imports System.IO.StreamReader Class Test Public Shared Sub Main() Try ' alokacja obiektu typu StreamReader Dim sr As StreamReader = New StreamReader "test.txt") Dim line As String Do line = sr.readline() ' Odczyt wiersza MessageBox.Show(line,"Wiersz",MessageBoxButtons.OK,_ MessageBoxIcon.Information) 'wiersz Loop Until line Is Nothing sr.close() Catch E As Exception MessageBox.Show("Błędny odczyt", "Komunikat", _ MessageBoxButtons.OK, MessageBoxIcon.Information) MessageBox.Show(E.Message, "Komunikat", _ MessageBoxButtons.OK, MessageBoxIcon.Information) End Try End Sub End Class W celu zapisu tekstu stosuje się klasa StreamWriter, która dziedziczy od klasy TextWriter. Obiekt tej klasy można zaalokować za pomocą konstruktora Public Sub New(ByVal stream As Stream), tj. na bazie otwartego strumienia lub z argumentem path - z nazwą pliku ze ścieżką: Public Sub New(ByVal path As String) W konstruktorach klasy StreamWriter mogą być dodatkowe argumenty: ByVal encoding As Encoding, ByVal append As Boolean, ByVal buffersize As Integer. Argument encoding opisuje kodowanie tekstu (ASCII, UNICODE itp.). Argument append wskazuje, czy dane dopisać do pliku. Argument buffersize nadaje rozmiar bufora. Do zapisywania pojedynczych znaków oraz wierszy teksty służą warianty metody Write z argumentami typu Char, Char() lub String. Znaki \r\n nowego wiersza są zapisywane przez właściwość NewLine.

13 Przykład z zapisywaniem tekstu do pliku tekstowego: Imports System Imports System.IO Imports System.IO.TextWriter Imports System.IO.StreamWriter Class Test Public Shared Sub Main() ' alokacja obiektu typu StreamWriter Dim sw As StreamWriter = New StreamWriter("Test.txt") sw.write("tekst ") sw.writeline("dla testowania zapisywania.") sw.writeline(" ") sw.write("data dzisiejsza: ") sw.writeline(datetime.now) sw.close() End Sub End Class Operacje z plikami binarnymi W języku Visual Basic.NET w celu odczytu danych z pliku binarnego jest wykorzystywana klasa BinaryReader. Konstruktor tej klasy potrzebuje referencji do strumienia otwartego przez klasę FileStream: Dim fs As FileStream = New FileStream("Test.dat", FileMode.Open, FileAccess.Read) Dim br As BinaryReader = New BinaryReader(fs) Po zakończeniu operacji z plikiem należy wywołać metody Close zastosowanych klas: fs.close() br.close() Do odczytu danych z pliku binarnego służą liczne metody klasy BinaryReader, które mają w nazwę słowo Read i typ danych, na przykład ReadInt32. Aby przeczytać wszystkie dane, należy śledzić za pozycją miejsca odczytu i porównywać z rozmiarem pliku: Dim fs As FileStream = New FileStream("Test.dat", FileMode.Open, FileAccess.Read) Dim br As BinaryReader = New BinaryReader(fs) Dim leng As Long = fs.length While fs.position < leng Dim liczba As Integer liczba = br.readint32() End While br.close() fs.close()

14 W celu zapisywania danych do pliku binarnego jest wykorzystywana klasa BinaryWriter. Konstruktor tej klasy też potrzebuje referencji do strumienia otwartego przez klasę FileStream: Dim fs As FileStream = New FileStream("Test.dat", FileMode.Create) Dim br As BinaryWriter = New BinaryWriter(fs) Do zapisywania danych w postaci binarnej służą liczne warianty metody Write z argumentami typu Integer, Double itp. Przykład zapisywania zawartości ListBox'a z liczbami: Dim fs As FileStream = New FileStream("Test.dat", FileMode.Create) Dim sw As BinaryWriter = New BinaryWriter(fs) Dim nn As Integer = ListBoxWejsciowe.Items.Count Dim i As Integer For i = 0 To nn - 1 Dim liczba As Integer liczba = CInt(ListBoxWejsciowe.Items(i)) sw.write(liczba) Next i sw.close() fs.close()

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

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

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

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

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

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

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

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

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

OPERACJE NA PLIKACH. Podstawowe pojęcia:

OPERACJE NA PLIKACH. Podstawowe pojęcia: 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

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

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VI Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Operacje na plikach Operacje na plikach Aby móc korzystać z pliku należy go otworzyć w odpowiednim

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

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

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach Ćwiczenia laboratoryjne Oprogramowanie i badanie prostych metod sortowania w tablicach Sprawozdanie Na każdym zajęciu laboratoryjnym sporządza się za pomocą edytora Word sprawozdanie. Bazowa zawartość

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

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

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

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

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński Języki programowania Część siódma Przetwarzanie plików amorficznych Konwencja języka C Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów 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

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

Ć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

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

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

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część jedenasta Przetwarzanie plików amorficznych Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie

Bardziej szczegółowo

Wskaźniki do funkcji. Wykład 11. Podstawy programowania ( język C ) Wskaźniki do funkcji (1) Wskaźniki do funkcji (2)

Wskaźniki do funkcji. Wykład 11. Podstawy programowania ( język C ) Wskaźniki do funkcji (1) Wskaźniki do funkcji (2) Podstawy programowania ( język C ) Wskaźniki do funkcji Wykład 11. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Wskaźniki do funkcji (1) W języku C funkcje nie są zmiennymi, ale

Bardziej szczegółowo

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 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 TEKSTOWE plik_liczb : file of integer; plik_znakow : file of char; plik_linii : text; deklaracja zmiennej plikowej Przykład sekwencji bajtów: 54 55 52 42 4F 20 50 41 53 43 41 4C 20 37 2E 30 0D 0A

Bardziej szczegółowo

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

Klasa iostream... 1 Klasy ofstream, ifstream Struktura FILE... 8 12.1 12.2 Klasa iostream... 1 Klasy ofstream, ifstream... 3 12.3 Struktura FILE... 8 12.1 Klasa iostream Obiekty klasy stream tworzone automatycznie: istream& cin, standardowe wejście konsoli (klawiatura).

Bardziej szczegółowo

Ćwiczenie laboratoryjne. Oprogramowanie i badanie stosu lub kolejki w środowisku Visual Basic 2005

Ćwiczenie laboratoryjne. Oprogramowanie i badanie stosu lub kolejki w środowisku Visual Basic 2005 Ćwiczenie laboratoryjne Oprogramowanie i badanie stosu lub kolejki w środowisku Visual Basic 2005 Tematy ćwiczenia realizacja stosu lub kolejki dla tablicowej lub listowej reprezentacji. operacje na stosie

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Pliki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 12 Operacje plikowe Plik - dokument lub inny zbiór danych zapisany na dysku, oznaczony unikatowa

Bardziej szczegółowo

7 Przygotował: mgr inż. Maciej Lasota

7 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 7 1/5 Język C Instrukcja laboratoryjna Temat: Operacje na plikach. 7 Przygotował: mgr inż. Maciej Lasota 1) Pliki. Plik (ang. file), jest to nazwany ciąg danych (inaczej zbiór danych),

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

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

Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:

Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę: Rozdział 1 Obsługa plików W językach C pliki powiązane są ze strumieniami i pracuje się na nich podobnie jak na innych strumieniach. W języku C do operacji na plikach służą funkcje z biblioteki stdio.h,

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

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

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include

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

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

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

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

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część jedenasta Reprezentacja i przetwarzanie plików Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie

Bardziej szczegółowo

Tablice w argumentach funkcji. Tablicy nie są przekazywane po wartości Tablicy są przekazywane przez referencje lub po wskaźniku

Tablice w argumentach funkcji. Tablicy nie są przekazywane po wartości Tablicy są przekazywane przez referencje lub po wskaźniku Tablice w argumentach funkcji Tablicy nie są przekazywane po wartości Tablicy są przekazywane przez referencje lub po wskaźniku Przykład: char str[] = abcdef ;... fun(str); // argument faktyczny to id

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

Programowanie. Ćwiczenie Język C. Środowisko programowania Visual Studio

Programowanie. Ćwiczenie Język C. Środowisko programowania Visual Studio Programowanie Ćwiczenie Język C. Środowisko programowania Visual Studio Tematy ćwiczenia praca ze środowiskiem, tworzenie i uruchomienie programu, struktura programu, deklaracje i definicje typy standardowe,

Bardziej szczegółowo

Urządzenia peryferyjne RS-232 oprogramowanie pod WINDOWS. Wykład 3

Urządzenia peryferyjne RS-232 oprogramowanie pod WINDOWS. Wykład 3 Urządzenia peryferyjne RS-232 oprogramowanie pod WINDOWS Wykład 3 WINDOWS - struktura System Processes Server Processes Environment Subsystem User Applications RegDB Subsystem DLLs Executive Graphics (Win32k)

Bardziej szczegółowo

Programowanie Procedurale. Pliki w języku C++

Programowanie Procedurale. Pliki w języku C++ Programowanie Procedurale. Pliki w języku C++ Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 10 Bożena Woźna-Szcześniak (AJD) Programowanie Procedurale. Pliki w języku C++

Bardziej szczegółowo

۰ Elementem jednostkowym takiego pliku jest bajt. ۰ Format pliku binarnego: [bajty pliku][eof]

۰ Elementem jednostkowym takiego pliku jest bajt. ۰ Format pliku binarnego: [bajty pliku][eof] 1 Plik jest wydzielonym fragmentem pamięci (najczęściej dyskowej) posiadającym nazwę. Z punktu widzenia C plik jest ciągiem bajtów, z których każdy może zostać oddzielnie odczytany. Zgodnie ze standardem

Bardziej szczegółowo

Class1.vb. _Dlugosc_stopnia = value End Set End Property Public Property Faza As Single Get Return _Faza End Get

Class1.vb. _Dlugosc_stopnia = value End Set End Property Public Property Faza As Single Get Return _Faza End Get Tematy: Xml Zapis i odczyt stopnia przy pomocy serializacji. Zapis i odczyt całego wału przy pomocy własnych procedur. Zamierzamy dodać do aplikacji nowe funkcjonalności: 1. Zapis i odczyt pojedynczego

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

Plik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF.

Plik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF. Pliki w C++ Plik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF. Z każdym strumieniem związany jest wskaźnik bieżącej

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

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

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. Podstawy programowania Programowanie wyrażeń 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. W językach programowania są wykorzystywane

Bardziej szczegółowo

Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:

Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików: Pliki W celu wykonania jakiejkolwiek operacji na istniejącym pliku, plik ten musi zostać otwarty, natomiast jeśli plik jeszcze nie istnieje, to musi zostać utworzony. Plik może zostać otwarty w trybie:

Bardziej szczegółowo

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4 Politechnika Łódzka Instytut Systemów Inżynierii Elektrycznej Laboratorium cyfrowej techniki pomiarowej Ćwiczenie 4 Zapis danych do pliku w programie LabVIEW 1. Zapis i odczyt sygnałów pomiarowych Do zapisu

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

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

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Programowanie systemów informatycznych laboratorium. Ćw. 3: Akwizycja danych. RS 232 cd. 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawową metodą akwizycji danych z wykorzystaniem protokołu komunikacji RS - 232. 2) Zakres niezbędnych wiadomości - Akwizycja danych - Zapis do

Bardziej szczegółowo

Struktury. Przykład W8_1

Struktury. Przykład W8_1 Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla

Bardziej szczegółowo

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Podstawy programowania Ćwiczenie Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Tematy ćwiczenia algorytm, opis języka programowania praca ze środowiskiem, formularz, obiekty

Bardziej szczegółowo

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

PRZYKŁADY OPERACJI PLIKOWYCH z wykorzystaniem biblioteki <stdio.h> PRZYKŁADY OPERACJI PLIKOWYCH z wykorzystaniem biblioteki Pliki TEKSTOWE zawierające ciągi liczb: TXT- 1: Kalkulator sumowanie dwóch liczb zapisanych w pliku tekstowym ( fopen, fscanf, fprintf,

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

Języki programowania. Karolina Mikulska-Rumińska Pokój 573, tel Konsultacje wtorek 9-10.

Języki programowania. Karolina Mikulska-Rumińska   Pokój 573, tel Konsultacje wtorek 9-10. Języki programowania Karolina Mikulska-Rumińska E-mail: karolamik@fizyka.umk.pl Pokój 573, tel. 3346 Konsultacje wtorek 9-10. Pliki Dwa rodzaje plików: Tekstowe, Binarne Aby otworzyć plik należy najpierw

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

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych

Bardziej szczegółowo

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

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}; INSTRUKCJA PUSTA Nie składa się z żadnych znaków i symboli, niczego nie robi Przykłady: for i := 1 to 10 do {tu nic nie ma}; while a>0 do {tu nic nie ma}; if a = 0 then {tu nic nie ma}; INSTRUKCJA CASE

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

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

Operacje na plikach (niskiego poziomu) < IO.H > OPERACJE WEJŚCIA WYJŚCIA (część b) Operacje wejścia / wyjścia odczyt i zapis danych do róŝnych zewnętrznych urządzeń lub nośników pamięciowych komputera: np. klawiatury, ekranu monitora, dyskietki, czytnika

Bardziej szczegółowo

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

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne

Bardziej szczegółowo

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego 1 /24 Pisanie pojedynczych znaków z klawiatury do pliku #include void main(void) { FILE *fptr; // wkaznik do pliku, tzw. uchwyt

Bardziej szczegółowo

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

4. Pliki Informacje ogólne o dostępie do plików w PHP Sprawdzanie istnienia pliku file_exists() 4. Pliki 4.1. Informacje ogólne o dostępie do plików w PHP Jak praktycznie każdy język programowania, PHP zapewnia dostęp do systemu plików znajdujących się na komputerze, na którym uruchamiany jest skrypt,

Bardziej szczegółowo

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

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym

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

Język C++ wykład VIII

Język C++ wykład VIII Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,

Bardziej szczegółowo

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

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

Bardziej szczegółowo

Informatyka 1. Przetwarzanie tekstów

Informatyka 1. Przetwarzanie tekstów Informatyka 1 Wykład IX Przetwarzanie tekstów Robert Muszyński ZPCiR ICT PWr Zagadnienia: reprezentacja napisów znakowych, zmienne napisowe w Sun Pascalu, zgodność typów, operowanie na napisach: testowanie

Bardziej szczegółowo

W języku C każdy plik fizyczny jest ciągiem bajtów, z których każdy może być niezależnie odczytany. Borland 01234

W języku C każdy plik fizyczny jest ciągiem bajtów, z których każdy może być niezależnie odczytany. Borland 01234 Dr inż. Robert Wójcik Zakład Podstaw Informatyki i Teleinformatyki Instytut Cybernetyki Technicznej, Politechnika Wrocławska Wykład 15 15. Obsługa plików 15.1. Pliki tekstowe i binarne 15.2. Standardowa

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

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

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

MATERIAŁY POMOCNICZE PODSTAWY PROGRAMOWANIA Na podstawie: Programowanie w C - Stworzone na Wikibooks, bibliotece wolny podręczników

MATERIAŁY POMOCNICZE PODSTAWY PROGRAMOWANIA Na podstawie: Programowanie w C - Stworzone na Wikibooks, bibliotece wolny podręczników MATERIAŁY POMOCNICZE PODSTAWY PROGRAMOWANIA Na podstawie: Programowanie w C - Stworzone na Wikibooks, bibliotece wolny podręczników Funkcja getchar() Jest to bardzo prosta funkcja, wczytująca 1 znak z

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

Tablice, DataGridView

Tablice, DataGridView Tablice, DataGridView Gdy rośnie liczba danych do przechowywania w programie, a następnie ich obrobienia - pojawiają się nowe struktury danych (moŝna by powiedzieć pojemniki na dane) zwane tablicami. Tablica

Bardziej szczegółowo

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

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego Pascal 1. Pliki tekstowe Przykład 1.1. Zapis do pliku tekstowego {deklaracja zmiennej tekstowej 'plik'} plik: text; {skojarzenie zmiennej plikowej 'plik' z plikiem na dysku (podajemy lokalizacje)} {tworzenie

Bardziej szczegółowo

Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min)

Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min) Zadanie5_28 Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min) Opis zadania Wykorzystaj gotowy projekt Nowe auto, a nastpnie zaprojektuj klas bazow NoweAuto

Bardziej szczegółowo

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku Lista 7 Zad. 1 Pierwsza wersja programu 1. Przygotuj plik do w: plik tekstowy z pojedynczą liczbą. Umieść go w tym samym folderze, co projekt (*.cpp). 2. Nazwa pliku name nazwa zmiennej może być dowolna

Bardziej szczegółowo

Pliki wykład 2. Dorota Pylak

Pliki wykład 2. Dorota Pylak Pliki wykład 2 Dorota Pylak Struktura programu działającego na plikach 1) Dyrektywa preprocesora #include //zapewnia dostęp do strumieni ifstream i ofstream 2) deklaracja zmiennej (strumienia)

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

Formatowaniem nazywamy proces przekształcenia danych z postaci binarnej do postaci tekstowej lub proces przekształcenia danych w odwrotnym

Formatowaniem nazywamy proces przekształcenia danych z postaci binarnej do postaci tekstowej lub proces przekształcenia danych w odwrotnym Formatowanie Podstawy programowania Formatowaniem nazywamy proces przekształcenia danych z postaci binarnej do postaci tekstowej lub proces przekształcenia danych w odwrotnym kierunku. W przypadku wprowadzenia

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

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

Operacje wejścia/wyjścia (odsłona druga) - pliki Operacje wejścia/wyjścia (odsłona druga) - pliki Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały

Bardziej szczegółowo

Spis treści JĘZYK C - PLIKI BINARNE. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF30

Spis treści JĘZYK C - PLIKI BINARNE. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF30 Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1D300 017 (studia stacjonarne)

Bardziej szczegółowo

akademia androida Składowanie danych część VI

akademia androida Składowanie danych część VI akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.

Bardziej szczegółowo

Języki i metody programowania I

Języki i metody programowania I Języki i metody programowania I dr inż. Piotr Szwed Katedra Informatyki Stosowanej C2, pok. 403 e-mail: pszwed@agh.edu.pl http://home.agh.edu.pl/~pszwed/ Aktualizacja: 2013-01-25 11. Biblioteka wejścia

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

Formatowane (tekstowe) wejście/wyjście. Binarne wejście/wyjście.

Formatowane (tekstowe) wejście/wyjście. Binarne wejście/wyjście. Formatowane (tekstowe) wejście/wyjście. Binarne wejście/wyjście. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka 2018-03-27 09:06:38 +0200 Część I Formatowane (tekstowe) wejście/wyjście Otwarcie pliku

Bardziej szczegółowo

Stałe i zmienne znakowe. Stała znakowa: znak

Stałe i zmienne znakowe. Stała znakowa: znak Stałe i zmienne znakowe. Stała znakowa: znak Na przykład: a, 1, 0 c Każdy znak jest reprezentowany w pamięci przez swój kod. Kody alfanumerycznych znaków ASCII to liczby z przedziału [32, 127]. Liczby

Bardziej szczegółowo

Argumenty wywołania programu, operacje na plikach

Argumenty wywołania programu, operacje na plikach Temat zajęć: Argumenty wywołania programu, operacje na plikach Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (Zmienne statyczne) W języku C można decydować o sposobie przechowywania zmiennych. Decydują

Bardziej szczegółowo

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

Pliki. Ze względu na typ zawartych w nich danych rozróżnia się trzy podstawowe rodzaje plików: Pliki Dotychczas operowaliśmy danymi, które zapamiętywane były w pamięci operacyjnej komputera (RAM). Program Turbo Pascal umożliwia zapisywanie i odczyt danych, co zapewnia możliwość wielokrotnego ich

Bardziej szczegółowo