Prikazi cijelu temu 26.06.2015 11:17
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Lokacija:zagreb


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 kôd (Visual Basic):
  1. sub procitaj()
  2. dim strData as string
  3. dim FF as integer
  4. dim pocetak as integer
  5. dim kraj as integer
  6. FF=FreeFile()
  7. open App.Path & "\ImeFajla.txt" For INPUT As #FF
  8. Line INPUT #FF,strData
  9. Close "FF
  10.  
  11. pocetak=Instr(1,strData,",")
  12. kraj=Instr(pocetak+1,strData,",")
  13. sifra=Left(strData,pocetak-1)
  14. grupa=Mid(strData,pocetak+1,kraj-pocetak-1)
  15. pocetak=Instr(kraj,strData,",")
  16. kraj=Instr(pocetak+1,strData,","
  17. korisnik=Mid(strData,pocetak+1,kraj-pocetak-1)
  18. 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 11:20 od strane Avko.