datoteka, – baze podataka, – registara, i – interne...

54
Datoteke Podaci se u toku izvršavanja programa nalaze u radnoj, operativnoj memoriji. Na disku se čuvaju u obliku: – Datoteka, – Baze podataka, – Registara, i – Interne strukture.

Upload: others

Post on 29-Aug-2019

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Datoteke

• Podaci se u toku izvršavanja programa nalaze u radnoj, operativnoj memoriji.

• Na disku se čuvaju u obliku:– Datoteka,– Baze podataka,– Registara, i– Interne strukture.

Page 2: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Vrste datoteka

• Sekvencijalne• Direktni pristup• Binarne datoteke

Page 3: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Primena datoteka

Page 4: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Datoteke

• Podaci u aplikaciji moraju efikasnoda koriste disk (npr., .mdb fajlovi suogromni). Baze podataka po praviluzauzimaju znatno više memorijskogprostora nego obične sekvencijalne datoteke, naročito kada je reč o malom broju podataka koje trebasačuvati.

Page 5: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

• Aplikacija se mora distribuirati nanajefikasniji način, na primer preko Interneta, poželjno je dadatoteke budu male i da se lakopreuzimaju (bazama trebaju DLL datoteke pa će veličina datotekebiti prevelika).

Page 6: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

• -Podaci su već u datoteci. Vrlo čestosu podaci koje aplikacija treba daobradi već sačuvani u obliku datoteke. Recimo, podaci se prikupljaju prekonekog akvizicionog sistema. Normalno je da i nova aplikacijapodatke nakon obrade sačuva u obliku datoteke.

Page 7: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

• -Neka druga aplikacija treba da uveze iliobradi podatke. Ako iste podatke trebada obrađuje neka druga aplikacija u centralnom (main frame) računaru ili naprimer Excel, pogodnije je da podacibudu sačuvani u obliku sekvencijalne datoteke.

• -Podatke je potrebno pregledati u editoru teksta (dnevnik grešaka).

Page 8: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Naredbe za rad sa datotekama u VB6

• • Open FileOpen• • Close FileClose• • FreeFile• • Print # PrintLine• • Input # Input, LineInput• • Write # WriteLine• • Put # FilePut• • Get # FileGet

Page 9: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Naredba Open• Open FileName [For Mode] [AccessRestriction]

[LockType] As [#] Channel% [Len = RecLength ]• Open "ReadMe.Txt" As #1

• Public Sub FileOpen( _ ByVal FileNumber As Integer, _ ByVal FileName As String, _ ByVal Mode As OpenMode, _ Optional ByVal Access As OpenAccess = _

OpenAccess.Default, _ Optional ByVal Share As OpenShare = _

OpenShare.Default, _ Optional ByVal RecordLength As Integer = -1 _

)

Page 10: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Naredba Open

• Open FileName [For Mode] [AccessRestriction][LockType]As[#]

Channel% [Len = RecLength ]

• Sve naredbe za otvaranje datoteka moraju sadržatiime i broj datoteke, a ostali parmatri su opcionalni. Jedan primer naredbe Open mogao bi biti:

• Open "ReadMe.Txt" As #1

Page 11: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Otvara datoteku i za čitanje i za upis saslučajnim ili direktnim pristupom.

Random

Otvara datoteku za sekvencijalni upisstartujući od početka datoteke. ako datotekaveć postoji i ima podatke oni će biti prebrisani(Overwrite)

Output

Otvara datoteku za sekvencijalno čitanjestartujući od početka datoteke. Podacima se pristupa onim redosledom kojim su upisivani.

Input

U Binary modu može se pristupiti podacimana nivou bajta. Znači mogu se čitati i upisivatipojedinačni bajtovi (znak po znak).

Binary

Otvara datoteku sa ciljem sekvencijalnogdodavanja zapisa na njen kraj. Ako datotekane postoji Visual Basic je prvo kreira

Append

Page 12: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

primer

Open"c:\profesori.txt" For Random As#2 Len = Len(Profesor)

Put #2, , ProfesorClose #2

Page 13: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Funkcija FreeFile

• IntFileNumber = FreeFile• Open "ReadMe.Txt" For Output AsintFileNumber

Page 14: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

• Zatvaranje datoteke Close (FileClose)

FileClose(1) ili FileClose(intFileNumber)

Open "c:\profesori.txt" For Random As #2 Len = Len(Profesor)Put #2, , Profesor

Close #2

• Slobodni broj datoteke FreeFile

IntFileNumber = FreeFileFileOpen(intFileNumber, "c:/file.txt", OpenMode.Output)

Page 15: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

'Programski kôd za rad sa datotekama!Dim intFileNumIn As IntegerDim intFileNumOut As IntegerDim InputFile As StringDim OutputFile As String

'Postavljanje imena ulazne i izlazne datotekeInputFile = "CheckProcess.Dat"OutputFile = "CancelledChecks.Dat“

'Otvaranje ulazne datotekeintFileNumIn = FreeFile 'Preuzimanje raspoloživog broja datoteke

Open InputFile For Input As intFileNumIn

'Otvaranje izlazne datotekeintFileNumOut = FreeFile 'Preuzimanje raspoloživog broja datoteke

Open OutputFile For Output As intFileNumOut''Zatvaranje datoteka

Close intFileNumInClose intFileNumOut

Page 16: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Naredbe za pristup podacima u sekvencijalnim datotekama

• PrintLine (Print), • WriteLine (Write), • Input i LineInput

Page 17: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Neredba Print• Print #intFileNum, [OutputList ]

Zadaje ulaznu tačku za sledeći znak (karakter) koji treba da se upiše.

CharPos

Numerički ili string izraz koji sadrži podatak koji treba da se upiše u datoteku.

Expression

Koristi se za postavljanje podatka na tačno određenu poziciju -kolonu koja je zadata rednim brojem kolone number. Ako se ovaj broj ne zada, Tab će se pozicionirati na podatak koji je na početku sledeće zone za upis (sledeći zapis).

Tab(number)

Služi za ubacivanje number razmaka (spaces) u izlaznu datoteku. Spc(number)

Opis Funkcija

Page 18: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Dim intFileNumOut As IntegerDim OutputFile As StringDim intCtr As Integer

'Postavi imena za ulaznu i izlaznu datoteku

OutputFile = "c:\PrintDemo.Txt"'Uzmi broj datoteke koji je na raspolaganju

intFileNumOut = FreeFileOpen OutputFile For Output As intFileNumOutFor intCtr = 1 to 10

Print # intFileNumOut, intCtrNext intCtr

Close intFileNumOut

Page 19: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Prikaz podataka upisanih u datoteku

Page 20: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Prikaz podataka upisanih u datoteku

Page 21: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog
Page 22: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Naredba Write

Pretvoriti naredbu:• Print # intFileNumOut, intCtr

U naredbu: • Write # intFileNumOut, intCtr;

Page 23: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Write # intFileNumOut, intCtr;

Page 24: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog
Page 25: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Write # intFileNumOut, intCtr;

Page 26: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Naredba InputInput # intFileNum, variable1 [,variable2][, ...variableN]

Dim intFileNumIn As IntegerDim InputFile As StringDim intCtr As IntegerDim intData As Integer

InputFile = "c:\PrintDemo.Txt“intFileNumIn = FreeFileOpen InputFile For Input As intFileNumInFor intCtr = 1 to 10

Input # intFileNumIn, intDataMsgBox “Pročitani broj je: " & STR(intData)

Next intCtrClose intFileNumIn

Page 27: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

"c:\Temp.txt" sa podacima Godina, Mesec, Dan i IzmerenaTemperatura

Private Sub SmestiTemperaturu(Godina As _Integer, Mesec As Integer, Dan As Integer, _ Temperatura As Double)Open "c:\Temp.txt" For Append As #1

‘Otvaranje datoteke za dodavanjeWrite #1, Godina, Mesec, Dan, Temperatura

Close #1End Sub

Page 28: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Private Function OcitajTemperaturu(Godina As Integer, _Mesec As Integer, Dan As Integer) As Double

Dim God As IntegerDim Mes As IntegerDim Danoc As IntegerDim Temp As DoubleOpen "c:\Temp.txt" For Input As #1

Do While Not EOF(1)Input #1, God, Mes, Danoc, TempIf God = Godina And Mes = Mesec And Danoc = Dan Then

OcitajTemperaturu = TempExit Do

End IfLoopClose #1End Function

Page 29: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Datoteke sa proizvoljnim pristupom (Random-Access)

• FileOpen(FileNumber, FileName, OpenMode.Random, , , RecordLength)

• Naredbe za direktni pristup:

Put FilePutGet FileGet

Put intFileNum, [intRecordNum,] VariableGet intFileNum, [intRecordNum,] Variable

Page 30: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Dim intFileNumOut As IntegerDim OutputFile As StringDim intCtr As Integer

'Postavi ime za izlaznu datotekuOutputFile = "c:\PrintDemo.Pod"intFileNumOut = FreeFile 'Uzmi broj datoteke koji je

na raspolaganju'Otvaranje izlazne datoteke

Open OutputFile For Random As intFileNumOutFor intCtr = 1 To 10

Put #intFileNumOut, , intCtrNext intCtrClose #intFileNumOut 'Zatvaranje izlazne datoteke

Page 31: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Binarna datoteka otvorena u Notepad-u

Page 32: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Binarna datoteka / frhed

Page 33: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Binarna datoteka

Page 34: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Dim intFileNumIn As IntegerDim InputFile As StringDim intRecordNum As IntegerDim intData As Integer

'Postavi ime za ulaznu datotekuInputFile = "c:\PrintDemo.Pod“

'Otvaranje ulazne datotekeintFileNumIn = FreeFile 'Uzmi broj datoteke koji je na raspolaganju

Open InputFile For Random As intFileNumInintRecordNum = 6Get # intFileNumIn, intRecordNum, intDataMsgBox "The Number is: " & CSTR(intData)

Close intFileNumIn

Page 35: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Objekti - kontrole za rad sadatotekama

(DriveListBox, DirListBox, FileListBox)• Kontrola DriveListBox omogućava izbor

željenog memorijskog uređaja, diska, diskete, trake ili optičkog diska.

• Kontrola DirListBox omogućava izbordirektorijuma (folder) na uređaju izabranom u kontroli DriveListBox. To se postižepostavljanjem svojstva Dir.Path, na vrednostDrive.Drive, u proceduri događaja Promenauređaja – Drive1_Change( ):

Page 36: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Private Sub Drive1_Change()• Dir1.Path =Drive1.DriveEnd Sub

• Kontrola FileListBox omogućava izbordatoteke (File), na direktorijumu (folderu) izabranom u kontroli DirListBox, u proceduridogađaja Promena direktorijuma –Dir1_Change( ):

Private Sub Dir1_Change()• File1.Path = Dir1.PathEnd Sub

Page 37: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Kontrole za rad sa datotekama (DriveListBox, DirListBox, FileListBox)

Page 38: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Private Sub Drive1_Change()Dir1.Path =Drive1.Drive

End Sub

Private Sub Drive1_SelectedIndexChanged( _ ByVal eventSender As System.Object, _ ByVal eventArgs As System.EventArgs) _ Handles Drive1.SelectedIndexChanged

Dir1.Path = Drive1.DriveEnd Sub

Page 39: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Private Sub Dir1_Change()File1.Path = Dir1.Path

End Sub

Private Sub Dir1_Change(_ ByVal eventSender As System.Object, _ ByVal eventArgs As System.EventArgs) _ Handles Dir1.Change

File1.Path = Dir1.PathEnd Sub

Page 40: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Private Sub File1_Click()SelectedFile=File1.Path & “\”File1.FilenameImage1.Picture = LoadPicture(SelectedFile)

End Sub

Private Sub File1_DoubleClick(ByVal sender AsObject, ByVal e As System.EventArgs) _ Handles File1.DoubleClick

Dim result As Integerputanja = File1.Path & "\" & File1.FileNameresult = ShellExecute(Me.Handle.ToInt32, "open", _ putanja, CStr(Nothing), CStr(Nothing), _ SW_SHOWNORMAL)

End Sub

Page 41: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Obrada stringova• Left – izdvaja prvih n levih karaktera stringa

rez = Left (testString, n)o rez- rezultato testString- string nad kojim se izvršava funkcijao m i n – parametri funkcija

Primer: rez=Left(“knjiga”, 2) daje kao rezultat rez=”kn”•

Right – izdvaja poslednjih n desnih karaktera stringarez = Right ( testString, n)

Primer: rez=Right(“knjiga”, 2) daje kao rezultatrez=”ga”

Page 42: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

• LTrim – uklanja samo početne prazne znakovestringa

rez = LTrim (testString)Pr.: rez=LTrim(“ knjiga ”) daje kao rezultat rez=“knjiga

• RTrim - uklanja samo krajnje prazne znakove stringarez = RTrim (testString)

Pr.: rez=RTrim(“ knjiga ”) daje kao rezultat rez=“knjiga”

• Trim – uklanja početne i krajnje prazne znakovestringa

rez = Trim (testString)Primer: rez=Trim(“ knjiga ”) daje kao rezultat

rez=“knjiga”

Page 43: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

• UCase – pretvara mala slova u velika slovarez = UCase (testString)

Primer: rez=Trim(“Knjiga”) daje kao rezultatrez=“KNJIGA”

• LCase - pretvara velika slova u mala slovarez = LCase(testString)

Primer: rez= LCase(“Knjiga”) daje kao rezultatrez=“knjiga”

Page 44: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

• Mid - izdvaja n karaktera stringa počevši od pozicije m, gde je m ceo broj i m>0. Ako se izostaviparametar n onda izdvaja sve karaktere od pozicije m do kraja stringa.

rez = Mid( testString, m[, n])Pr.: rez=Mid(“Knjiga”, 2, 2) daje kao rezultat rez=“nj”

rez=Mid(“Knjiga”, 2, 4) daje kao rezultatrez=“njig”

rez=Mid(“Knjiga”, 2) daje kao rezultat rez=“njig”

Ova funkcija može se koristiti i za zamenu znakova u stringu:

Mid ( testString, m[, n]) = zamenitelj

• Len – daje kao rezultat dužinu stringa, tj. broj odkoliko karaktera se sastoji string.

rez = Len( testString)

Page 45: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

• Format – daje kao rezultat string po zadatomformatu. Koristi se za formatiranje: novca(FormatCurrency), brojeva (FormatNumber i Round), procenata (FormatPercent), datuma i vremena (FormatDateTime).

rez = Format ( testString, "####.0" )Primer: rez=Format(“123”, “#.0”) daje rezultat

rez=”123.0”.

• Chr – daje kao rezultat karakter čiji je ASCII kôdzadat.

rez=Chr(broj)Primer: rez=Chr(65) daje kao rezultat rez=”A”.

• Asc – daje kao rezultat ASCII kôd jednog karaktera(tabela ASCII kodova Prilog).

rez = Asc( testkarakter )

Page 46: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

• Space – daje kao rezultat n praznih mestarez=Space(n)

Primer: rez=Space(4) daje kao rezultatrez=” “

• StrReverse – obrće karaktere stringarez = StrReverse ( testString)

Primer: rez=StrReverse(“knjiga”) daje kaorezultat rez=”agijnk“

• Str, CStr i Val – pretvara broj ili izraz u string i obrnuto.

Page 47: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Inače svakom znaku, karakteru, odgovara određeniASCII kôd, ceo broj bez znaka (vidi Prilog), pa se nizovi znakova mogu porediti kao brojevi i pri tome jerezultat poređenja tačan (True) ili netačan (False):

“A”< “B” tačan“A”> “B” netačan“B”> “A” tačan“AAA”< “AA” netačan“AA”< “B” tačan“Milen”< “Milena” tačanZnakovi se pretvaraju u brojeve (ASCII kôd) i obrnuto

pomoću funkcija: AskiKod%=Asc(znak$) i znak$=Chr(AskiKod%).

Page 48: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

BrLinija%=0BrSlovaUTekstu%=Len(txtPoruka.Text) For i%=1 To BrSlovaUTekstu%Slovo$=Mid(txtPoruka.Text,i%,1)

‘izdvaja slovo na i-tom mestuIf Slovo$=Chr(13) Then

‘proverava da li je i-ti znak CRBrLinija%= BrLinija%+1I%=i%+1 ‘preskače LF

End IfNext i%If BrSlovaUTekstu%>0 And BrLinija%=0 ThenBrLinija%=1Ovaj red je dodat da koriguje rezultat u slučaju da

tekst ima jedan red i da na kraju nije stavljen znak za kraj reda.

Page 49: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Šifra$=”“ ‘In.praznog str.

BrSlova%=Len(txtPoruka.Text)For i%=1 To BrSlova%Znak$=Mid(txtPoruka.text, i%, 1)Šifra$=Šifra$ & Chr(Asc(Znak$)+1)

‘Ascii kod znaka poveća za 1

‘i ponovo pretvori u znak i ‘doda ga u string Šifra$

Next i%txtŠifraPoruke.Text=Šifra$

Page 50: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

deŠifra$=”“ ‘In.pr. Str.za Šifrat

BrSlova%=Len(Šifra$)For i%=1 To BrSlova%

Znak$=Mid(Šifra$, i%, 1)deŠifra$=deŠifra$+Chr(Asc(Znak$)-1)

‘Ascii kod znaka smanji za

‘jedan, ponovo pretvori u znak i ‘doda ga stringu deŠifra$

Next i%txtDeŠifraPoruke.Text=deŠifra$

Page 51: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Dim Šifrat() As Integer‘deklarisanje dinamičkog niza

Dim BrSlova As IntegerDim Ključ As Integer

Private Sub Šifriranje()Ključ=InputBox(“Upišite ključ za šifriranje”, ,1)If Ključ=“” Then Exit SubBrSlova=Len(txtPoruka.Text)ReDim Šifrat(BrSlova)

For i%=0 To BrSlova-1Znak$=Mid(txtPoruka.Text, i%+1,1)Šifrat(i%)=Asc(Znak$) Xor Ključ

Next i%End Sub

Page 52: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Private Sub DeŠifriranje()

Tekst$=“”Ključ=InputBox(“Upišite ključ za šifriranje”, ,1)If Ključ=“” Then Exit Sub

For i%=0 To BrSlova-1Tekst$=Tekst$ & Chr(Šifrat(i%)

Xor Ključ)Next i%

TxtDesifra.Text=Tekst$ ‘Prikaz dešif. teksta u polju

End Sub

Page 53: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Dim Šifrat() As IntegerDim BrSlova As IntegerDim Ključ As IntegerPrivate Sub Šifriranje()

Ključ=InputBox(“Upišite ključ”, ,1)If Ključ=“” Then Exit SubBrSlova=Len(txtPoruka.Text)ReDim Šifrat(BrSlova)Open “C:\Šifrat.txt“ For Output As #1For i%=0 To BrSlova-1

Znak$=Mid(txtPoruka.Text, i%+1,1)Print #1, Asc(Znak$) Xor Ključ

Next i%End Sub

Page 54: Datoteka, – Baze podataka, – Registara, i – Interne strukture.download.tutoriali.org/Tutorials/Razno/Datoteke.pdf · Baze podataka po pravilu zauzimaju znatno više memorijskog

Open “C:\Šifrat.txt“ For Input As #1Ključ=InputBox(“Upišite ključ za

šifriranje”, ,1)Tekst$=“”Ključ=“” Then Exit Sub

Do while not EOF(1)Input #1, BrojTekst$=Tekst$ & Chr(Broj Xor Ključ)Loop

TxtDesifra.Text=Tekst$

‘Prikaz dešifriranog teksta u polju