




Хакер писал(а):Массив чего? Злых духов?


Type udtBaseEntry
ID as string *2
Tag as string
Text as string
Res1 as string
Res2 as string
End Type
' Структура может изменится по мере потребностей - все еще в стадии разработки
Dim Base() as udtBaseEntry


Wolfie писал(а):Лучше было б конечно такой массив передавать - UDTшный

Wolfie писал(а):В первом посте написано - из файла, результат его упорядочивания.
К чему столько вопросов?

Хакер писал(а):оправдано ли использование String-переменных
Andrey Fedorov писал(а):Файл/майслот
Хакер писал(а):WM_COPY, и OLE, и общая память, и пайпы, и указанные выше мэилслоты

Wolfie писал(а):смысл в том, чтобы не читать еще раз файл и не раскладывать еще раз его содержимое по массиву... масив мне нужен в основной программе.


Andrey Fedorov писал(а):Весь файл в переменную UDT типа считывается одной командой GET.
Wolfie писал(а):дополнительная программа...считывает файл, проверяет его структуру ...
Механизм проверки раскладывает данные по массиву.

Wolfie писал(а):Andrey Fedorov писал(а):Весь файл в переменную UDT типа считывается одной командой GET.
Однако, это навело меня на мысль пойти самым легким путем, и просто записать массив во временный файл... Не напомните как это делается одной командой GET - не могу вспомнить...
Option Explicit
Private Type uTypQ
    sArr() As String
    n As Integer
End Type
Private Type uTypT
    sArr() As String
    d As Date
    qArr() As uTypQ
End Type
Public Sub Main()
    Dim sFile As String
    
    sFile = App.Path & "\Test.bin"
    On Error Resume Next
    Kill sFile
    On Error GoTo 0
    SaveT sFile
    LoadT sFile
End Sub
Private Sub SaveT(sFile As String)
    Dim t As uTypT, i As Long, j As Long, iHFile As Integer
    
    t.d = Date
    ReDim t.sArr(10)
    ReDim t.qArr(10)
    
    For i = 0 To UBound(t.sArr)
        t.sArr(i) = i & " строка i"
        t.d = Now
        With t.qArr(i)
            .n = i
            ReDim .sArr(i)
            For j = 0 To UBound(.sArr)
                .sArr(j) = i & " строка i,  " & j & " подстрока j"
            Next j
        End With
    Next i
    
    iHFile = FreeFile
    Open sFile For Binary As #iHFile
    Put #iHFile, , t
    Close #iHFile
End Sub
Private Sub LoadT(sFile As String)
    Dim t As uTypT, i As Long, j As Long, iHFile As Integer
    iHFile = FreeFile
    Open sFile For Binary As #iHFile
    Get #iHFile, , t
    Close #iHFile
    
    For i = 0 To UBound(t.sArr)
        Debug.Print t.d & "   " & t.sArr(i)
        With t.qArr(i)
            Debug.Print .n
            For j = 0 To UBound(.sArr)
                Debug.Print .sArr(j)
            Next j
        End With
    Next i
End Sub
Мдя. Массив ни где не будет храниться, если его конечно не надо сохранять по условию задачи.Э, а где в итоге будет хранится этот массив? ... увы, я не понял как DLL поможет мне передать массив из одной программы в другую...


Wolfie писал(а):Andrey Fedorov
Да, спасибо, мысль ясна, и все же это запасной вариант
Twister
А кстати мысль хорошая, спасибо... но программа проверки мне нужна вроде как и сама по себе тоже... и все что она делает окажется в DLL, ведь если проверка окажется неудачной при запуске основной программы, то визуальный отчет придется вывести тоже...
ибо попытки вникнуть в пайпы и майл-слоты меня не воодушевили)))

Ну конкретно для этой задачи они и не нужны. Повторюсь - моё решение является наиболее правильным в данной ситуации (ибо попытки вникнуть в пайпы и майл-слоты меня не воодушевили)))
Сейчас этот форум просматривают: Yandex-бот и гости: 11