Saya telah membuat garis tipe di bawah ini dan membuat array satu dimensi keluar dari itu: jenis publik file_size fname sebagai string fsize sebagai integer jenis ujung global file_ray (1000) sebagai file ...

1
user928700 5 April 2021, 16:42

2 jawaban

Jawaban Terbaik

Saya tidak yakin saya melihat mengapa ctr_file_sizes ada. Tampaknya info yang Anda inginkan ada di semua dalam jenis file_sizes.

Saya sarankan menggunakan kamus

Option Explicit

Dim files As New Dictionary

Sub populateFiles()
    
    Dim i
    For i = 1 To 1000   'iterate over your files however you please
        files.Add "file name", 3456
    Next
    
    
    'then to get a specific file's size
    Dim sizeYouWant As Long
    sizeYouWant = files("file name")
    
End Sub

Anda memerlukan referensi ke Microsoft Scripting Runtime

enter image description here

2
Brad 5 April 2021, 14:03

Apakah Anda ingin melakukan sesuatu seperti itu?

Option Explicit

Public Type file_sizes
    fName As String
    fsize As Integer
End Type
    
Public Type ctr_file_sizes
    ctr_id As String
    fName As String
    fsize As Integer
End Type

Global file_array(1000) As file_sizes

Sub Testit()
    Dim i As Long
    Dim arrCtr() As ctr_file_sizes

    ' some Testdata
    file_array(0).fName = "Given file Name"
    file_array(0).fsize = 1024
    
    file_array(1).fName = "Other file Name"
    file_array(1).fsize = 1048

    Dim fileName As String
    fileName = "Given file Name"
    Dim hit As Long
    For i = LBound(file_array) To UBound(file_array)
        If file_array(i).fName = fileName Then
            ReDim Preserve arrCtr(hit)
            arrCtr(hit).fName = file_array(i).fName
            arrCtr(hit).fsize = file_array(i).fsize
            arrCtr(hit).ctr_id = i  ' or whatever ctr_id is good for
            hit = hit + 1
        End If
    Next i
End Sub
1
Storax 5 April 2021, 14:02