Predmet:Re: Import iz txt
[sifra] -- naprimjer broj 1 ide u polje 1
[grupa] -- naprimjer broj 1 ide u polje 1
[korisnik] -- naprimjer broj 1 ide u polje 1
meni ovo nije uopce jasno. Ocekivao sam da sifra ide u polje 1, grupa u polje 2 i korisnik u polje 3
ako bi ih razdvojili zarezom (,) imali bi razgraniceni teks fajl. Zapravo imamo dvije vrste tekstualnih fajlova: fiksne sirine i fajlove razgranicene sirine. Razgraniciti ih mozemo nekim znakom a najcesce se koristi zarez (,). CSV fajl.
Imamo tri metode za pristup podacima.
direktna, ukoliko su svi zapisi u datoteci jednake dužine (veličine).
sekvencijalna (slijedna): pojedini zapisi u datoteci različitih su duljina, pa da bi se došlo do n-tog zapisa, potrebno je pročitati svih n-1 zapisa prije njega.
binarni pristup, za binarni pristup potrebno je tocno znati kako su podaci uredeni , da bi se vratili ispravno. Binarni podaci se cesto spremaju u privatnom formatu (MDB) sto otezava njihovo otvaranje i citanje.
metod sekvencijalnog pristupa najpogodniji je za txt fajlove.
vb u txt fajlu cita samo jednu liniju podataka i rasclanjiva je u njena polja.
sintaksa za citanje txt fajlova u sekvencijalnom modu:
open imeFajla for mode as [#]brojFajla [Len=BufferSize]
imeFajla-putanja do txt fajla
mode-output,append,binary ili random
buffersize-broj bajtova koje cita vb pri svakom pristupu fajlu (ovo se izostavlja)
mode:
input-samo citanje, bez unosa
output-suprotno inputu
append-fajl postoji i samo se dodaju podaci u fajl bez citanja
binary-specijalni karakteri (prelaz u novi red) se nevide jer ih vb tretira kao svaki drugi bajt
random-otvaranje svih fajlova
kod za otvaranje razgranicenog txt fajla i citanja linije podataka:
funkcija InStr() locira zarez u string promijenjivoj strData.
PreuzmiIzvorni kd (Visual Basic):sub procitaj()
dim strData as string
dim FF as integer
dim pocetak as integer
dim kraj as integer
FF=FreeFile()
open App.Path & "\ImeFajla.txt" For INPUT As #FF
Line INPUT #FF,strData
Close "FF
pocetak=Instr(1,strData,",")
kraj=Instr(pocetak+1,strData,",")
sifra=Left(strData,pocetak-1)
grupa=Mid(strData,pocetak+1,kraj-pocetak-1)
pocetak=Instr(kraj,strData,",")
kraj=Instr(pocetak+1,strData,","
korisnik=Mid(strData,pocetak+1,kraj-pocetak-1)
end sub
ja bi podatke u txt fajlu uredio na nacin:
sifra,korisnik,grupa
i citao ih uz pomoc gore navedenog koda
mozda je staromodan nacin ali bi ja tako to napravio
zivot je moja domovina.
Ovaj post je ureden
1
puta. Posljednja izmjena 26.06.2015 10:20 od strane Avko.