darbs ar datnēm

21
Darbs ar datnēm Daugavpils Valsts ģimnāzija Edgars Pudulis Vienošanās Nr. 2008/0001/1DP/1.2.1.2.2./08/IPIA/VIAA/ 002

Upload: taima

Post on 02-Feb-2016

110 views

Category:

Documents


0 download

DESCRIPTION

Vienošanās Nr. 2008/0001/1DP/1.2.1.2.2./08/IPIA/VIAA/002. Darbs ar datnēm. Daugavpils Valsts ģimnāzija Edgars Pudulis. Ievads. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Darbs ar datnēm

Darbs ar datnēm

Daugavpils Valsts ģimnāzija

Edgars Pudulis

Vienošanās

Nr. 2008/0001/1DP/1.2.1.2.2./08/IPIA/VIAA/002

Page 2: Darbs ar datnēm

Ievads

Atverot Windows katalogu C diskā var redzēt, ka operētājsistēma sastāv no daudzām datnēm, kas noteiktā momentā tiek ielādētas brīvpiekļuves atmiņā. Piemēram nospiežot Start Programs Microsoft Word, tiek aktivizēta datne, kas atrodas

C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE10 mapē ar nosaukumu winword.exe

Page 3: Darbs ar datnēm
Page 4: Darbs ar datnēm

Lai varētu nolasīt un ierakstīt datus no datnēm, sākumā datne jāsasaista ar datnes mainīgo. Izmantojot šo mainīgo varēs piekļūt datnē esošajiem datiem. Datus un datni sasaista ar Assign palīdzību. Tā vispārīgais pieraksts: Assign (<datnes mainīgais>, <datnes nosaukums>);

Datnes nosaukumā jānorāda pilns ceļš uz datni. Piemēram:             Var datne: Text; Begin Assign (datne, ‘c:\mape\dati.txt’);

Datu sasaiste

Page 5: Darbs ar datnēm

Reset (<datnes mainīgais>); - atver sasaistīto datni datu nolasīšanai (šajā gadījumā datnei jau ir jābūt izveidotai). Atverot datni kursors ir tās sākumā.

Rewrite (<datnes mainīgais>); - atver un izveido jaunu datni, gadījumā, ja tāda datne jau eksistē, tās saturs tiek izdzēsts

Close (<datnes mainīgais>); - aizver datni, šo komandu ieteicams vienmēr lietot programmas noslēgumā.

Datnes atvēršana un aizvēršana

Page 6: Darbs ar datnēm

Readln(<datnes mainīgais, <programmas mainīgie>) – datu nolasīšanas komanda no datnēm, vienlaicīgi var nolasīt arī vairākus mainīgos. Piemēram: Readln(datne,x,y,z,c);

Write(<datnes mainīgais>,mainīgie) – datu ierakstīšanas komanda datnē. Piemēram:Write(datne, x,’ ‘,y) – ievadām rezultātus datnē atdalot tos ar tukšuma simbolu.

Var izmantot arī Writeln, tad mainīgie datnē tiks ievadīti nevis rindā, bet kolonnā.

Datu nolasīšana un ieraksts

Page 7: Darbs ar datnēm

1.uzdevums: Teksta datne text.txt, kas atrodas C:\DATI satur divus skaitļus, kas viens no otra atdalīti ar tukšuma simbolu. Izvadīt uz ekrāna abus skaitļus un šo skaitļu summu.Risinājums: uses crt;var datne:text; x,y :integer; begin clrscr; assign(datne,'c:\dati\text.txt'); reset(datne); readln(datne,x,y); write(x,' ',y,' ',x+y);readln;close(datne);end.

Datnes atvēršana un ieraksts datnē

Page 8: Darbs ar datnēm

Nedaudz papildināsim jau iepriekš minēto uzdevumu ar papildus darbībām

2.uzdevums: Teksta datne text.txt, kas atrodas mapē C:\DATI , satur divus skaitļus, kas viens no otra atdalīti ar tukšuma simbolu. Izvadīt uz ekrāna abus skaitļus, bet šo skaitļu reizinājumu izvadīt šīs pašas mapes DATI jaunā datnē rezult.txt

Datnes atvēršana un ieraksts datnē

Page 9: Darbs ar datnēm

uses crt;var dat1,dat2:text; x,y :integer;BEGINclrscr; assign(dat1,'c:\dati\text.txt'); assign(dat2,'c:\dati\rezult.txt'); reset(dat1); readln(dat1,x,y); write(x,' ',y); rewrite(dat2); write(dat2,x*y);readln;close(dat1); close(dat2);END.

2.uzdevuma risinājums

Page 10: Darbs ar datnēm

3.uzdevums

3.uzdevums: Teksta datne text1.txt, kas atrodas C:\DATI satur trīs skaitļus, kas viens no otra atdalīti ar tukšuma simbolu. Izvadīt datnē rezult.txt lielāko no šiem skaitļiem.

Page 11: Darbs ar datnēm

3.uzdevuma risinājumsuses crt;var dat1,dat2:text; x,y,z,L:integer;BEGINassign(dat1,'c:\dati\text.txt');assign(dat2,'c:\dati\rezult.txt');reset(dat1); rewrite(dat2);readln(dat1,x,y,z); If x>y then L:=x else L:=y; If z>L then L:=z;write(dat2,L);close(dat1); close(dat2);END.

Page 12: Darbs ar datnēm

Eof (<datnes mainīgais>); funkcija, kuru izmanto strādājot ar datnēm, kas palīdz noteikt kursora atrašanās vietu.  Visbiežāk uzdevumos izmanto tāpēc, lai noteiktu datnes beigas jeb pēdējo elementu.          

Funkcija Eof pieņem vērtību True (patiess), ja kursors atrodas datnes beigās, vai arī gadījumā, ja datne ir tukša.

Visos pārējos gadījumos funkcija pieņem vērtību False (aplams).

Funkcija EOF

Page 13: Darbs ar datnēm

4.uzdevums. Datne C:\DATI satur teksta virkni, nolasīt no datnes un izvadīt šo tekstu uz ekrāna.uses crt;var dat1:text; x:char;BEGINclrscr; assign(dat1,'c:\dati\text.txt'); reset(dat1); While NOT eof(dat1) do

BEGIN Read(dat1,x); Write(x); END;

readln;close(dat1);END.

Piemērs ar funkciju EOF

Kamēr nav pēdējais datnes elements...,

...nolasi kārtējo elementu no datnes un izvadi uz ekrāna

Page 14: Darbs ar datnēm

Append (<datnes mainīgais>); izmanto teksta datņu atvēršanai. Šī procedūra atver eksistējošu datni datu ievadam datnes beigās. Atverot datni ar šo komandu, kursors atrodas datnes beigās nevis sākumā kā tas notiek ar RESET. Šo procedūru lieto, ja nepieciešams papildināt kādu datni.

Eoln (<datnes mainīgais>); izmanto lai noteiktu, vai ir sasniegtas datnē ierakstītas teksta rindiņas beigas. Funkcija Eoln atgriež vērtību True, ja kursors atrodas kādas teksta datnes rindas beigās vai arī ja datne ir tukša, bet visos citos gadījumos - vērtību False.

Papildus funkcijas teksta datņu apstrādei

Page 15: Darbs ar datnēm

4.uzdevums ar datnes papildināšanu.

Izveidojiet datni mapē C:\DATI text.txt un ierakstiet šajā datnē tekstu “Pavasaris ir “.

Papildināt šo ierakstu ar jebkuru turpinājumu, kurš tiek ievadīts no tastatūras, piemēram, “jauks gadalaiks”.

Pēc programmas izpildes atveriet datni text.txt un pārliecinieties vai tā ir papildināta ar Jūsu ievadīto tekstu.

Piemērs ar APPEND

Page 16: Darbs ar datnēm

uses crt;var dat1:text; x:string;BEGINclrscr; assign(dat1,'c:\dati\text.txt'); append(dat1);write('Ievadiet turpinajumu teikumam PAVASARIS IR '); Readln(x); write(dat1,x);readln;close(dat1);END.

Piemērs ar APPEND (risinājums)

Page 17: Darbs ar datnēm

5.Uzdevums. Divu teksta datņu satura savienošana.

Izveidojiet divas datnes mapē C:\DATI text1.txt un text2.txt ierakstiet pirmajā datnē tekstu

“Pavasaris ir “, bet otrajā datnē “jauks gadalaiks”.

Papildiniet pirmo datni ar otrās datnes tekstu.

Pēc programmas izpildes atveriet datni text.txt, kurai ir jāsatur teikums “Pavasaris ir jauks gadalaiks”.

Piemērs ar EOLN

Page 18: Darbs ar datnēm

uses crt; var dat1,dat2:text; x:char;BEGIN assign(dat1,'c:\dati\text1.txt'); assign(dat2,'c:\dati\text2.txt'); append(dat1); reset(dat2);while NOT eoln(dat2) do

BEGIN read(dat2,x); write(dat1,x); END;

readln;close(dat1); close(dat2);end.

Piemērs ar EOLN (risinājums)

Page 19: Darbs ar datnēm

6.uzdevums: Teksta datnē text.txt, kas atrodas mapē C:\DATI, pirmajā rindā ir ierakstīts masīva A elementu skaits N un caur vienu tukšuma simbolu skaitlis N1. Katrā nākošajā rindā (vienā kolonnā) ir ierakstīti masīva A elementi no 1 līdz N.

Izvadīt šīs mapes DATI jaunā datnē rezult.txt katra masīva elementa reizinājumu ar skaitli N1 vienā kolonnā (katrā rindā savs skaitlis).

Uzdevums izmantojot masīva elementus

Page 20: Darbs ar datnēm

uses crt;var dat1,dat2:text; N,N1,i :integer;a:array [1..50] of integer;BEGINclrscr; assign(dat1,'c:\dati\text.txt'); assign(dat2,'c:\dati\rezult.txt'); reset(dat1); rewrite(dat2); readln(dat1,N,N1); for i:=1 to N do BEGIN readln(dat1,a[ i ]); writeln(dat2,a[ i ]*N1); END;readln;close(dat1); close(dat2);END.

6.uzdevuma risinājums

Page 21: Darbs ar datnēm

Paldies par uzmanību!