Хакер писал(а):Массив чего? Злых духов?
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, ведь если проверка окажется неудачной при запуске основной программы, то визуальный отчет придется вывести тоже...
ибо попытки вникнуть в пайпы и майл-слоты меня не воодушевили)))
Ну конкретно для этой задачи они и не нужны. Повторюсь - моё решение является наиболее правильным в данной ситуации ( ). Но для того, чтобы успешно и эффективно программировать под Win32 такие знания просто необходимы, их нельзя игнорировать.ибо попытки вникнуть в пайпы и майл-слоты меня не воодушевили)))
Сейчас этот форум просматривают: AhrefsBot и гости: 24