1 / 21

Darbs ar datnēm

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.

taima
Download Presentation

Darbs ar datnēm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Datu sasaiste 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; BeginAssign (datne, ‘c:\mape\dati.txt’);

  4. Datnes atvēršana un aizvēršana 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ā.

  5. Datu nolasīšana un ieraksts 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ā.

  6. Datnes atvēršana un ieraksts datnē 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.

  7. Datnes atvēršana un ieraksts datnē 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

  8. 2.uzdevuma risinājums uses crt; var dat1,dat2:text; x,y :integer; BEGIN clrscr; 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.

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

  10. 3.uzdevuma risinājums uses crt; var dat1,dat2:text; x,y,z,L:integer; BEGIN assign(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.

  11. Funkcija EOF 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).

  12. Piemērs ar funkciju EOF 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; BEGIN clrscr; assign(dat1,'c:\dati\text.txt'); reset(dat1); While NOT eof(dat1) do BEGIN Read(dat1,x); Write(x); END; readln; close(dat1); END. Kamēr nav pēdējais datnes elements..., ...nolasi kārtējo elementu no datnes un izvadi uz ekrāna

  13. Papildus funkcijas teksta datņu apstrādei 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.

  14. Piemērs ar APPEND 4.uzdevums ar datnes papildināšanu. Izveidojiet datni mapē C:\DATItext.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.

  15. Piemērs ar APPEND (risinājums) uses crt; var dat1:text; x:string; BEGIN clrscr; assign(dat1,'c:\dati\text.txt'); append(dat1); write('Ievadiet turpinajumu teikumam PAVASARIS IR '); Readln(x); write(dat1,x); readln; close(dat1); END.

  16. Piemērs ar EOLN 5.Uzdevums. Divu teksta datņu satura savienošana. Izveidojiet divas datnes mapē C:\DATItext1.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”.

  17. Piemērs ar EOLN (risinājums) 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.

  18. Uzdevums izmantojot masīva elementus 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).

  19. 6.uzdevuma risinājums uses crt; var dat1,dat2:text; N,N1,i :integer; a:array [1..50] of integer; BEGIN clrscr; 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.

  20. Paldies par uzmanību!

More Related