Prikazi cijelu temu 08.02.2015 15:40
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Lokacija:zagreb


Predmet:Re: VB6 open binary file
vidim ima tu ljudi koji oce pomoc pa cu iskoristiti to Smiling
imamo u excel-u list1 i list2
na list1 - maticni broj, ime, prezime, datum rodenja
na list2 - maticni broj, ime, prezime, adresa, telefon



u vba napisao sam kod koji sprema u popis.bin datoteku. uz pomoc maticnog broja nade odredenu osobu na list2 i doda podatke evo kod:
  1. Type osoba
    maticniBr As Long
    ime As String
    prezime As String
    datumR As Date
    adresa As String
    telefon As Double
    End Type
    Sub saveBinFile()
    Dim O As osoba
    Dim maticni As Long 'vrijednost kucice
    Dim strSize As Long

    'stvoriti novu datoteku i otvoriti ju za binarni pristup
    Open "c:\popis.bin" For Binary Lock Read Write As 1

    'idemo od prvog zapisa do zadnjeg
    'ovdje bi mogli odrediti zadnji zapis sa redEnd=(Cells(1, Columns.Count).End(xlToLeft).Column
    For f = 1 To 50
    'aktiviramo prvi list na kojem imamo maticni, ime, prezime i datum rod
    Worksheets("list1").Select
    maticni = Cells(f + 1, 1)
    O.maticniBr = maticni
    O.ime = Cells(f + 1, 2)
    O.prezime = Cells(f + 1, 3)
    O.datumR = Cells(f + 1, 4)

    'aktiviramo drugi list na kojem imamo adresu i telefon nademo uz pomoc naredbe vlookup i maticnog broja
    Worksheets("list2").Select
    O.adresa = Application.WorksheetFunction.VLookup(maticni, Range("A2:e51"), 4, False)
    O.telefon = Application.WorksheetFunction.VLookup(maticni, Range("A2:e51"), 5, False)

    'upisujemo nadene podatke u f red
    Put 1, , O.maticniBr 'netrebamo duzinu jer se radi o broju
    strSize = Len(O.ime) 'trebamo duzinu jer se radi o stringu
    Put 1, , strSize
    Put 1, , O.ime
    strSize = Len(O.prezime) 'trebamo duzinu jer se radi o stringu
    Put 1, , strSize
    Put 1, , O.prezime
    Put 1, , O.datumR 'netrebamo duzinu jer se radi o datumu
    strSize = Len(O.adresa) 'trebamo duzinu jer se radi o stringu
    Put 1, , strSize
    Put 1, , O.adresa
    Put 1, , O.telefon 'netrebamo duzinu jer se radi o broju

    Next f 'sljedeci red

    Close 1 'zatvorimo datoteku
    End Sub

za telefon nije htijelo prihvatiti niti Long niti Integer vec samo Double
pitanje je:
dali je ovo u redu. radi to ali me zanima dali se to tako radi ili ima neki bolji algoritam, neki pravilniji nacin.
zivot je moja domovina.