yup, file data random emang ga pake delimiter, ok, kalau memang semua data mas betmen yg banyak itu mempunyai panjang yg sesuai dg type datanya (mungkin ditambahkan dg fungsi space kalau kurang panjang) kita bisa pake file random tadi aja sebagai solusinya. jadi data yg di variable itu kita simpan sebagai temporary random file baru di load ke udt :)
 
berikut contoh kodenya:
 
'---------------------------------------------------------------------------------

Option Explicit
Private Type dtBioData
      NIM   As String * 3
      Nama As String * 5
      Alamat As String * 7
End Type

Private tBioData As dtBioData

'contoh data, 6 record, 3 field per record
Private Const m_const_sData As String = "id1nama1alamat1id2nama2alamat2id3nama3alamat3id4nama4alamat4id5nama5alamat5id6nama6alamat6"

Sub withrandomfile()
    Dim fHnd As Long, nFLen As Byte, nRecordCount As Long, i As Long, bByte() As Byte, fHnd2 As Long, bTmpByte() As Byte
   
    '----simpan data di variable ke dalam file temp-----
    fHnd = FreeFile
   
    Open "c:\tmp" For Random As fHnd Len = Len(m_const_sData) + 2
    Put fHnd, 1, m_const_sData
    Close fHnd
   
    fHnd = FreeFile
    Open "c:\tmp" For Binary As fHnd
    ReDim bByte(1 To LOF(fHnd)) As Byte
    ReDim bTmpByte(1 To LOF(fHnd) - 2) As Byte
    Get fHnd, , bByte
'
    fHnd2 = FreeFile
    Open "c:\testdata" For Binary As fHnd2
    For i = 3 To UBound(bByte)
        bTmpByte(i - 2) = bByte(i)
    Next i
    Put fHnd2, , bTmpByte
   
    Close fHnd, fHnd2
       
    '----buka file tadi dan simpan ke dalam user data type----
   
    fHnd = FreeFile
    nFLen = Len(tBioData)
   
    Open "c:\testdata" For Random As fHnd Len = nFLen
    nRecordCount = LOF(fHnd) / nFLen
   
    For i = 1 To nRecordCount
        Get fHnd, i, tBioData
        Debug.Print tBioData.NIM & " : " & tBioData.Nama & " : " & tBioData.Alamat
    Next i
   
    Close fHnd
   
    '----hapus semua file temp
    Kill "c:\tmp"
    Kill "c:\testdata"
End Sub

'---------------------------------------------------------------------------------
 
best regards
[wwn]
 
On 5/9/06, su_betmen nusaputra <[EMAIL PROTECTED]> wrote:
Mas wawan, terima kasih buat tanggapannya
 
Yg jd masalah adalah, bukan array-nya atBioData() as dtBioData
Tp isi dari dtBioDatanya yg banyak
 
Misal
Type dtBioData
            Nim as String
            Nama as String
            ……
            Nama Mbahnya Tetangga as String
End Type
 
Jd isi dtBioDatanya yg banyak banget, yg klo di split satu2 akan cukup bikin pegel dan hal ini sering digunakan dgn type yg berbeda-beda, jd saya skr sdg cari cara yg lebih simpel.
 
Selama ini klo buat dbase berbasis teks, tdk perlu pake delimiter dan cara bacanya jg ngga perlu di split dulu. langsung aja pada metode open teks filenya kita bagi sesuai dgn panjang atBioData-nya ... baca secara random mas ... tahu kan maksudnya ...
 
gmn ya ... ada ide lain ngga?
soalnya program saya jd sangat tidak efisien nih :( meski sudah jalan dgn baik


Wahana Programmer Groups Links

<*> Untuk mengunjungi sponsor milis ini, klik link berikut:
    http://wahanaprogrammer.net

<*> Untuk menghubungi owner milis ini, kirim email ke:
    [EMAIL PROTECTED]

<*> Konsultasi pemrogramman bisa chat disini:
    Yahoo! Messenger: wahanaprogrammer




SPONSORED LINKS
Programmer Indonesia Basic programming language
Computer programming languages Programming languages Java programming language


YAHOO! GROUPS LINKS




Kirim email ke