Hetedik témakör kiegészítés:



Hasonló dokumentumok
Megoldott feladatok. Informatika

Objektumorientált programozás C# nyelven III.

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

PASzSz. Dr. Kotsis Domokos

Számítógépes grafika

Delphi programozás IV.

Algoritmizálás és adatmodellezés tanítása 1. előadás

Alap számológép alkalmazás

Programozás alapjai. 5. előadás

8.4 Többszálú alkalmazások készítése

Tervezzük meg a program menürendszerét! A TForm1 osztály deklarációja:

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

S z á m í t ó g é p e s a l a p i s m e r e t e k

Számítógépes grafika

Rendezések. A föltöltés nemcsak az r-re vonatkozik, hanem az s-re is. Ez használható föl a további rendezések

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Adatbázis kezelés Delphiben. SQL lekérdezések

1. A feladatról. 2. Az áramkör leírása. Mechatronika, Optika és Gépészeti Informatika Tanszék D528. Léptetőmotor vezérlése

.NET alapszolgáltatások 2.

F# (efsárp) példaprogramok

Input Output Műveletek

Táblázatok fontosabb műveletei 1

3. Gyakorlat ellenőrzés nélküli osztályozás

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Programozási alapismeretek (M1,M2)

Objektumorientált programozás C# nyelven

libgdx alapok, első alkalmazás

Vizuális, eseményvezérelt programozás I.

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

Algoritmizálás + kódolás C++ nyelven és Pascalban

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Ködös határ (Félreértés, hiba)

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Informatika terméktervezőknek

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Érdekes informatika feladatok

VBA. Visual Basic for Applications

Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék. Önálló laboratórium

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék

Szoftvertechnológia alapjai Java előadások

II. év. Adatbázisok és számítógépek programozása

4. Példa: Másodfokú egyenlet megoldása (program2_1.vi)

A feladat. A főprogram

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

9. Entitás modulok. Nagy Gusztáv: Drupal 7 alapismeretek Fejlesztői verzió: október 6.

Access adatbázis elérése OLE DB-n keresztül

15. Programok fordítása és végrehajtása

Máté: Számítógépes grafika alapjai

Option Explicit Option Base 1

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Fordítóprogramok szerkezete avagy Mi történik Pascalban mikor F9-et nyomunk?

Programozási alapismeretek (M1,M2)

C# gyorstalpaló. Készítette: Major Péter

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

VISUAL BASIC ALAPISMERETEK

PromoCoder_7031/Lx3 rendszer használati utsítás v1.1

Kezdő lépések a Lazarus környezetben

Máté: Assembly programozás

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

2D pontkód szerkezete az Általános Nyomtatványkitöltő programban 1.3

1. FELADAT Mező neve Mező típusa Mező hossza TermékID Tényleges eladás Hónap Mező neve Mező típusa

Sztringkezelő függvények. A string típusú változók kezelése, használata és szerepük a feldolgozás során

Operációs Rendszerek II. labor. 2. alkalom

3.1 A Windows alkalmazás (project) felépítése

Programozás alapjai Free Pascal

Debreceni Egyetem Informatikai Kar TANULÓI NYILVÁNTARTÓ SZOFTVER FIREBIRD ADATBÁZIS ALKALMAZÁSÁVAL

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Szkriptnyelvek. 1. UNIX shell

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

ANDROID ALKALMAZÁSFEJLESZTÉS

Útbaigazítás a könnyű működtetéshez

Fájl rendszer. Fájl koncepció Elérési módok Könyvtár szerkezet Védelem Konzisztencia szemantika

megjelenítés EDGED FACES átállítjuk a szegmensek számát 5x5x5-re

3.2. Az alkalmazások ablaka

ELTE SAP Excellence Center Oktatóanyag 1

Fájlok, stream-ek. Fájlok és könyvtárak Stream-ek csoportosítása A stream-ek osztályhierarchiája Stream-ek használata

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Objektum Orientált Szoftverfejlesztés (jegyzet)

B I T M A N B I v: T M A N

8.3 Alkalmazások közötti kapcsolatok

A Turbo Vision ismertetése

E- Laboratórium 3 Az ABB robotok alkalmazásai Elméleti leírás

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

discosnp demo - Peterlongo Pierre 1 DISCOSNP++: Live demo

ÁLTALÁNOS WEBLAPSZERKESZTÉSI TUDNIVALÓK ÁLTALÁNOS HTML KÓDOLÁSI TUDNIVALÓK

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

Adattípusok. Nincs adat. DHI Prága oktatási anyagainak felhasználásával. Nincs adat Papír alapú adatok Digitális adatok. Felmérés, GPS.

Database Systems II. ZH összefoglaló

Bakalárska práca Bakalár munka

1. FELADAT Mez neve Mez típusa Mez hossza TermékID Tényleges eladás Hónap Mez neve Mez típusa

Tartalomjegyzék Általános ismeretek a programról A táblázatok használata Az objektumtípusok áttekintése Részletes leírás Statisztikai jelentés 129

BASH script programozás II. Vezérlési szerkezetek

Delphi programozás III.

Az első fájlos program

Átírás:

2013.04.28. PASzSz

Hetedik témakör kiegészítés: Text-, INI-, bináris file-ok, Nyomtatás Lazarusban Készítette: Dr. Kotsis Domokos Vámossy Zoltán Maschek Ádám Monostori Ádám 2013.04.28. 2

Fájlkezelés Lazarusban Text fájlok INI fájlok Bináris fájlok

Text fájlok Sorokból állnak Sor=nyomtatható karakterek+sorvége jel Sorvége jel DOS/Win alatt 2 byte: #13#10 Ember számára olvasható

Text fájlok használata ->TP Fájlváltozó létrehozása Megnyitás (írásra/olvasásra) Írás/olvasás Lezárás

Példa Az alkalmazás bezárásakor mentsük el a főformunk pozícióját és méretét egy textfájlba. Megnyitáskor használjuk ezt a fájlt, hogy a formot kirakjuk. A property-k kiírási sorrendje legyen: Left, Top, Width, Height (mindegyik új sorban).

Példa - kiírás Fájlváltozó létrehozása: Var F: Text; vagy F: TextFile; Hozzárendelés fájlhoz: Assignfile(F, formadatok.txt ); Megnyitás írásra: Rewrite(F);

Adatok kiírása: Writeln(F, Left); Writeln(F, Top); Fájl bezárása: CloseFile(F); Példa - kiírás Mindez a form OnClose eseményére történjen.

Példa - beolvasás Fájlváltozó létrehozása: Var F: Text; vagy F: TextFile; Hozzárendelés fájlhoz: Assignfile(F, formadatok.txt ); Megnyitás olvasásra: Reset(F); Ha nem létezik a fájl, kivétel keletkezik!

Példa - beolvasás ROSSZ! Adatok beolvasása: Readln(F,Form1.Left,Form1.Top, ); Readln(F,l); Left:=StrToInt(l); Fájl bezárása: CloseFile(F); Mindez a form OnCreate eseményére történjen.

INI fájlok Kétszintű, hierarchikus felépítés: [section] key=value Tárolható string, integer, boolean, stb., de mindegyik stringként. Alapértelmezésben a %Windows% könyvtárban jön létre.

INI fájlok használata Uses részbe IniFiles!!! Inifájl változó létrehozása Inifájl helyfoglalása TIniFile.Create( fn ) osztálymetódussal + fájlnév hozzárendelése egy lépésben Írás/olvasás Felszabadítás

Példa Az alkalmazás bezárásakor mentsük el a főformunk pozícióját és méretét egy INIfájlba. Megnyitáskor használjuk ezt a fájlt, hogy a formot kirakjuk. A property-k kiírási sorrendje mindegy!!!

Példa - kiírás var inifile:tinifile; Aktuális könyvtár! begin inifile:=tinifile.create('.\formsettings.ini'); try inifile.writeinteger('form1','left', Section,key,value Left); inifile.writeinteger('form1','top', Top); inifile.writeinteger('form1','width', Width); inifile.writeinteger('form1','height', Height); finally inifile.free; end; Ne feledjük: Uses,IniFiles,

Példa - beolvasás var inifile:tinifile; begin inifile:=tinifile.create('.\formsettings.ini'); try Left:=inifile.ReadInteger('form1','left',100); Top:=inifile.ReadInteger('form1','top',100); Width:=inifile.ReadInteger('form1','width',100); Height:=inifile.ReadInteger('form1','height',100); finally inifile.free; end; Default érték!

INIfájlok előnyei A kulcs érték párok sorrendje nem számít Hibatűrő (default értékek)

Bináris (raw, untyped) fájlok Karakterek (bájtok) véges hosszú sorozataként tekinthetőek Ált. ember számára olvashatatlanok

Bináris fájlok használata FileStreamek segítségével

FileStreamek használata Változó létrehozása Helyfoglalás (Create) Írási, olvasási műveletek Felszabadítás

Változók létrehozása var sf,df:tfilestream; cpd:longint; buf:array[1..1024]of byte;

Helyfoglalás (Create) sf:=tfilestream.create(filenév,mód);... df:=tfilestream.create(filenév, mód);

Open/SaveDialog Filename a file nevét adja Filter a megjelenítendő fájlokat szűrhetjük Options - Title a dialógusablak felirata Execute megjeleníti a dialógusablakot

Legegyszerűbb dialógusok if OpenDialog1.Execute then begin megy := true; Edit3.Text := OpenDialog1.FileName; end; if SaveDialog1.Execute then begin megy := true; Edit4.Text:=SaveDialog1.FileName; end;

Megnyitási módok fmcreate új file létrehozása, ha kell fmopenread megnyit egy file-ot read-only-ra fmopenwrite megnyit egy file-ot write-only-ra fmopenreadwrite megnyit egy file-ot read-write-ra

Írási, olvasási műveletek cpd:=sf.read(buf,sizeof(buf)); df.write(buf,cpd);

Felszabadítás FreeAndNil(df); FreeAndNil(sf);

Példa Készítsünk fájlmásoló programot! Használjunk Open/SaveDialog komponenseket és FileStreamet!

ProgressBar (a Common Contros fülön) Max a maximalis kitérés Min a kezdőpozíció Step Egy lépés nagysága Position aktuális kitérés Smooth folyamatos progress StepIt egy step-nyivel növeli a progressbar pozícióját StepBy(count) count-nyival növeli

Forrás, cél meghatározása procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then begin Edit1.Text := OpenDialog1.FileName; end; end; procedure TForm1.Button2Click(Sender: TObject); begin if SaveDialog1.Execute then begin Edit2.Text := SaveDialog1.FileName; end; end;

Forrás, cél beállítása procedure TForm2.Button1Click(Sender: TObject); var sf,df:tfilestream; cpd:longint; buf:array[1..1024]of byte; begin Edit1.Hide; Edit2.Hide; Button2.Enabled:=false; sf:=tfilestream.create(edit1.text,fmopenread or fmsharedenywrite); try Progressbar1.Max:=sf.size; df:=tfilestream.create(edit2.text,fmcreate or fmsharedenyread);

Másolás, felszabadítás try repeat cpd:=sf.read(buf,sizeof(buf)); df.write(buf,cpd); ProgressBar1.Stepby(cpd); Application.ProcessMessages; until cpd<sizeof(buf); finally FreeAndNil(df); end; finally FreeAndNil(sf); Button2.Enabled := true; end; end;

Tudnivaló Ugyanez rövidebben, gyorsabban: df.copyfrom(sf,0); Átmásolja a teljes fájlt egy lépésben!!! Viszont így nem tudjuk a folyamatot nyomon követni.

Nyomtatás

Szükséges deklarációk uses Classes, FileUtil, Dialogs, PrintersDlgs, Printers, Var hprinter:tprinter;

A PrintDialog használata hprinter:=printer; printdialog1.options:=[popagenums,podisableprinttofile]; tovabb:=printdialog1.execute; //igaz, ha választottunk printert np:=printdialog1.frompage; xp:=printdialog1.topage; e:=not (printdialog1.printrange=prpagenums); if tovabb then begin printer.orientation:=poportrait; //vagy polandscape

Nyomtatás hprinter.begindoc; hprinter.canvas.font.style:=[]; hprinter.canvas.font.size:=11; hprinter.canvas.font.style:=[fsbold]; hprinter.canvas.textout(x,y,text); hprinter.enddoc; A koordináták