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()

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

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

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

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

Ć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

Ć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

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

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

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

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

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

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

۰ 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

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

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

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

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

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

Zajęcia 9: operacje na plikach tekstowych

Zajęcia 9: operacje na plikach tekstowych Zajęcia 9: operacje na plikach tekstowych Python dla kognitywistów Marcin Jukiewicz Marcin Jukiewicz Zajęcia 9: operacje na plikach tekstowych 1 / 21 Obsługa plików tekstowych Dotychczas dane wprowadzaliśmy

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

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

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

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

Programowanie RAD Delphi

Programowanie RAD Delphi Programowanie RAD Delphi Dr Sławomir Orłowski Zespół Fizyki Medycznej, Instytut Fizyki, Uniwersytet Mikołaja Kopernika w Toruniu Pokój: 202, tel. 611-32-46, e-mial: bigman@fizyka.umk.pl Delphi zasoby Aplikacje

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

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

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych;

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

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie: JavaScript Cookies (3x45 minut) Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.

Bardziej szczegółowo

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

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, rok

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

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

PASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka PASCAL Kompendium Środowisko TURBO PASCAL Skróty klawiaturowe Edycja kodu F1 Pomoc spis treści CTRL + F1 Pomoc kontekstowa SHIFT + strzałki Zaznaczanie bloku CTRL + INSERT Skopiowanie zaznaczonego bloku

Bardziej szczegółowo

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Przykład: $ ls more Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Tworzenie łącza #include int pipe(int filedes[2]); Przykład: int

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część ósma Tablice znaków i przetwarzanie napisów Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część trzynasta Tablice struktur, pliki struktur Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści

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

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

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

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

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

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji? Zadanie 01 W przedstawionym ponizej programie w jezyku ANSI C w miejscu wykropkowanym brakuje jednej linii: #include... int main() { printf("tralalalala"); return 0; } A. B. "iostream" C.

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

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu. Wstęp Java Zadanie Celem laboratorium jest zapoznanie się z podstawami platformy oraz języka Java. W ramach zadania należy przygotować aplikację zarządzania notatkami użytkownika obsługiwaną z konsoli.

Bardziej szczegółowo

Ilość cyfr liczby naturalnej

Ilość cyfr liczby naturalnej Ilość cyfr liczby naturalnej Użytkownik wprowadza liczbę naturalną n. Podaj algorytm znajdowania ilości cyfr liczby n. (Np.: po wprowadzeniu liczby 2453, jako wynik powinna zostać podana liczba 4). Specyfikacja

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

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.programowanie.siminskionline.pl Niniejsze

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Wykład 6 Dziedziczenie cd., pliki

Wykład 6 Dziedziczenie cd., pliki Wykład 6 Dziedziczenie cd., pliki Autor: Zofia Kruczkiewicz 1. Dziedziczenie cd. 2. Pliki - serializacja Zagadnienia 1. Dziedziczenie aplikacja Kalkultory_2 typu Windows Forms prezentująca dziedziczenie

Bardziej szczegółowo

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu Programowanie V Dariusz Skibicki Wydział Inżynierii Mechanicznej Uniwersytet Technologiczno-Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy dariusz.skibicki(at)utp.edu.pl Programowanie Projektowanie

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Programowanie telefonów z Windows Phone 7, cz. 4

Programowanie telefonów z Windows Phone 7, cz. 4 Programowanie telefonów z Windows Phone 7, cz. 4 Piotr M. Szczypiński Instytut Elektroniki Politechniki Łódzkiej http://www.eletel.p.lodz.pl/pms/ piotr.szczypinski@p.lodz.pl Budynek B9, II piętro, pokój

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część piąta Proste typy danych w języku Pascal Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C Opublikowano w: WEREWKA J..: Podstawy programowana dla automatyków. Skrypt AGH Nr 1515, Kraków 1998 20. i łączenie podprogramów a z programem napisanym w Ze względu na duże rozpowszechnienie języka, szczególnie

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

Wprowadzenie Tablica jednowymiarowa Tablice wielowymiarowe Algorytmy Rekordy Pliki Zadania Bibliografia

Wprowadzenie Tablica jednowymiarowa Tablice wielowymiarowe Algorytmy Rekordy Pliki Zadania Bibliografia Program Rozwojowy Potencjału Dydaktycznego Politechniki Świętokrzyskiej w Kielcach: kształcenie na miarę sukcesu. Priorytet IV Szkolnictwo wyższe i nauka. Działanie 4.1 Wzmocnienie i rozwój potencjału

Bardziej szczegółowo

Prawidłowa konstrukcja (3 x 4) char** tab = new char*[3]; for (size_t i = 0; i < 3; i++) tab[i] = new char[4];

Prawidłowa konstrukcja (3 x 4) char** tab = new char*[3]; for (size_t i = 0; i < 3; i++) tab[i] = new char[4]; Prawidłowa konstrukcja (3 x 4) char** tab = new char*[3]; for (size_t i = 0; i < 3; i++) tab[i] = new char[4]; STOS STERTA tab for (size_t i = 0; i < 3; i++) delete[] tab[i]; delete[] tab; 1. Zrealizować

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Jak Windows zarządza pamięcią?

Jak Windows zarządza pamięcią? Jak Windows zarządza pamięcią? System Windows definiuje dwa typy pamięci, często mylone przez użytkowników. Pamięć fizyczna (pamięc RAM zainstalowana w komputerze) Pamięć widziana przez daną aplikację

Bardziej szczegółowo

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych Jacek Matulewski, Sławek Orłowski http://www.phys.uni.torun.pl/~jacek/ Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych Wersja α Ćwiczenia Toruń, 20 grudnia 2005 Najnowsza wersja tego dokumentu

Bardziej szczegółowo

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

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

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

C++ - [3-5] Pliki i strumienie w C++ Slajd 1 z 13 C++ - [3-5] Pliki i strumienie w C++ Nysa 2004-2013. Autor: Wojciech Galiński. wersja dnia 19 maja 2013 r. Slajd 2 z 13 Klasy i obiekty do obsługi plików Aby korzystać z obiektów do obsługi

Bardziej szczegółowo

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

Spis treści OBSŁUGA PLIKÓW W JĘZYKU C++ Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32 Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1C300 016 (studia stacjonarne)

Bardziej szczegółowo

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu

Bardziej szczegółowo

Jerzy Nawrocki, Wprowadzenie do informatyki

Jerzy Nawrocki, Wprowadzenie do informatyki Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Cel wykładu Programowanie imperatywne i język C Zaprezentować paradygmat programowania imperatywnego

Bardziej szczegółowo

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Wykład 3 ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Waldi Ravens J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 75 / 146 deklaracje zmiennych instrukcja podstawienia

Bardziej szczegółowo

Ćwiczenie nr 8. Temat: Operacje na plikach - zapis i odczyt danych.

Ćwiczenie nr 8. Temat: Operacje na plikach - zapis i odczyt danych. Ćwiczenie nr 8 Temat: Operacje na plikach - zapis i odczyt danych. Zagadnienia: Zasady pracy na plikach dyskowych. otwarcie pliku do odczytu i zapisu (tryb otwarcia), wykonanie operacji odczytu i zapisu,

Bardziej szczegółowo

Visual Basic for Applications. Wstęp

Visual Basic for Applications. Wstęp Visual Basic for Applications Materiały źródłowe: http://www.vbamania.estrefa.pl 2008-01-14 Wstęp Visual Basic for Applications to język programowania, dołączony do wielu aplikacji. Wspierają go między

Bardziej szczegółowo

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

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

Strumienie oraz operacje na plikach

Strumienie oraz operacje na plikach 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,

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

1.1. System otwartych baz danych ODBC. System otwartych baz danych ODBC. Interfejs ODBC. Interfejs ODBC. System otwartych baz danych ODBC

1.1. System otwartych baz danych ODBC. System otwartych baz danych ODBC. Interfejs ODBC. Interfejs ODBC. System otwartych baz danych ODBC 1 Katedra Optoelektroniki i Systemów Elektronicznych 2 Oprogramowanie Systemów Elektronicznych Zagadnienia: Temat wykładu 1. Interfejs ODBC 2. 3. 3 Interfejs ODBC 4 Interfejs ODBC ODBC (Open DataBase Connectivity)

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

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

Podstawy Programowania semestr drugi. Wykład czternasty

Podstawy Programowania semestr drugi. Wykład czternasty Wykład czternasty 1. Polimorfizm Ostatni wykład zakończyliśmy stwierdzeniem, że możemy obiektowi dowolnej klasy przypisa ć obiekt klasy dziedziczącej po tej klasie. Przypisanie takie obejmuje jednak jedynie

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Zmienne Proste typy danych Strukturalne typy danych Witold Marańda maranda@dmcs.p.lodz.pl 1 Zmienne Liczby (i struktury danych) występują w algorytmach i programach komputerowych

Bardziej szczegółowo

Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce.

Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce. Przygotować program tworzący tablicę dwuwymiarową zawierającą zestawy 10 2, 10 4, 10 6 liczb losowych zmiennoprzecinkowych. Korzystając z funkcji bibliotecznych uporządkować zawartość każdego (a) wiersza

Bardziej szczegółowo

Delphi Laboratorium 3

Delphi Laboratorium 3 Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,

Bardziej szczegółowo

12. OPERACJE NA PLIKACH

12. OPERACJE NA PLIKACH 12. OPERACJE NA PLIKACH PHP, jako język skryptowy moŝe wykonywać się po stronie serwera, w tym takŝe wykonywać operację na plikach. W lekcji z pętlami mieliśmy juŝ przypadek pobrania z pliku odpowiednich

Bardziej szczegółowo

#include void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu

Bardziej szczegółowo

Bezpieczne uruchamianie apletów wg

Bezpieczne uruchamianie apletów wg Bezpieczne uruchamianie apletów wg http://java.sun.com/docs/books/tutorial/security1.2/ Zabezpieczenia przed uruchamianiem apletów na pisanych przez nieznanych autorów 1) ograniczenie możliwości odczytywania,

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Kiedy i czy konieczne?

Kiedy i czy konieczne? Bazy Danych Kiedy i czy konieczne? Zastanów się: czy często wykonujesz te same czynności? czy wielokrotnie musisz tworzyć i wypełniać dokumenty do siebie podobne (faktury, oferty, raporty itp.) czy ciągle

Bardziej szczegółowo

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Instrukcje Język Basic został stworzony w 1964 roku przez J.G. Kemeny ego i T.F. Kurtza z Uniwersytetu w Darthmouth (USA). Nazwa Basic jest

Bardziej szczegółowo

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, 2015. Wydział Matematyki Stosowanej Politechniki Śląskiej

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, 2015. Wydział Matematyki Stosowanej Politechniki Śląskiej Laboratorium 1 - Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Punkty Na laboratorium można zdobyć 60 punktów. Ocena ogólna z zajęć:

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

KURS C/C++ WYKŁAD 6. Wskaźniki

KURS C/C++ WYKŁAD 6. Wskaźniki Wskaźniki KURS C/C++ WYKŁAD 6 Każda zmienna ma unikalny adres wskazujący początkowy obszar pamięci zajmowany przez tą zmienną. Ilość pamięci zajmowanej przez zmienną zależy od typu zmiennej. Adres można

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 7 strlen size_t strlen(char const *s); Oblicza długość napisu wskazywanego przez s Przykładowy

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo