Prikazi cijelu temu 11.02.2015 13:48
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Lokacija:Tuzla


Predmet:Re: VB6 open binary file
Hehe nije to zbog toga.
Ti zapisujes duzinu stringa i nema to veze ni sa cim.
Moj fajl je veci jer sam ja stavio stringove radi nekih drugih razloga.
String je duzi zapis od broja a u prvom slucaju sam odredio duzine stringova unaprijed pa i to zauzima prostor.
Rekao si da imas samo 50 pa se nisam oko togabaktao jer to je veoma malo podataka pa je bitnija struktura podataka.
Druga stvar je da imas desetke hiljada.

evo ti moj kod ako hoceas malu bazu:
PreuzmiIzvorni kôd (HTML):
  1. Type osoba
  2.     maticniBr As Long
  3.     ime As String
  4.     prezime As String
  5.     datumR As Date
  6.     adresa As String
  7.     telefon As Double
  8. End Type
  9.  
  10. Function saveBinFile()
  11.     Dim O As osoba
  12.     Dim maticni As Long 'vrijednost kucice
  13.     Dim strSize As Long
  14.  
  15.      Open "c:\popis.bin" For Binary Lock Read Write As 1
  16.     For f = 1 To 50
  17.         Worksheets("list1").Select
  18.         maticni = Cells(f + 1, 1)
  19.         O.maticniBr = maticni
  20.         O.ime = Cells(f + 1, 2)
  21.         O.prezime = Cells(f + 1, 3)
  22.         O.datumR = Cells(f + 1, 4)
  23.         Worksheets("list2").Select
  24.         O.adresa = Application.WorksheetFunction.VLookup(maticni, Range("A2:e51"), 4, False)
  25.         O.telefon = Str(Application.WorksheetFunction.VLookup(maticni, Range("A2:e51"), 5, False))
  26.          Put 1, , O
  27.     Next f 'sljedeci red
  28.     Close 1 'zatvorimo datoteku
  29. End Function
  30.  
  31. Function UcitajRed(KojiRed As Integer)
  32.   Dim RedP As osoba 'red podataka za ososubu
  33.   Dim t As osoba
  34.   Dim temp
  35.   Dim I As Integer
  36.  
  37.   Open "c:\popis.bin" For Binary As #1
  38.   For I = 1 To KojiRed
  39.     Get #1, , RedP
  40.   Next I
  41.  temp = Trim(RedP.ime) & " " & Trim(RedP.prezime) & vbCr & "Rodjen: " & Trim(RedP.datumR) _
  42. & vbCr & "Adresa:" & Trim(RedP.adresa) _
  43. & vbCr & "Matcini br:" & Trim(RedP.maticniBr) & vbCr & "Tel:" & Trim(RedP.telefon)
  44.  Close #1
  45.  MsgBox temp
  46. End Function

Eto sad manje nego tvoje.
Tacno onoliko koliko uzimaju brojevi.
Drugo sto iz tvoje nemozes nista ucitati.
Unaprijed odredivanje reda podataka ide sa len naredbob i to za sve redove.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.