Тема: Динамический массив, работа с файлами приизвольн доступа и пользоват типом данных

С пользовательским типом вродь разобралась, а вот с динамическим массивом не получается. В справках есть и описание, и создание таких массивов( Dim Array() as …ReDim Array(5)…или  ReDim Preserve Array(Ubound(Array)+2)) , но у меня применить его на деле не получается. Помогите,плиzzz, разобраться:

‘Описываем пользовательский тип:
Type Gragdanin
Name As String * 30
DatRog As Date
DopInf As String * 25
End Type
‘Описываем свойства и методы переменной  пользовательского типа
Public Sub Gen_Zap(Zapis As Gragdanin, Имя As String, ByVal Д_Рож As Date, Прим As String)
Zapis.Name = Имя                 ‘"Петров Иван Денисович"
Zapis.DatRog = Д_Рож           ‘#10/11/1992#,
Zapis.DopInf = Прим              ‘"Внук"
End Sub
Public Sub Print_Zap(Zapis As Gragdanin)
Debug.Print "Имя:"; Zapis.Name, "Дата рождения:"; Zapis.DatRog, "Примечания:"; Zapis.DopInf
End Sub
‘Сама процедура, кот создает файл произвольного доступа, работает с переменными пользовательского типа , записывает данные в этот файл
Sub Sozd_WR_File_7()
Dim i As Integer
Dim Zap_Gr As Gragdanin
Dim PahtFile As String
Dim b_int As Integer, b_int_1 As Integer
PahtFile = "D:\excel\Офисное программирование 2\"
Open PahtFile & "File_BD_1.dat" For Random As #1 Len = Len(Zap_Gr)
Call Gen_Zap(Zap_Gr, "Петров Иван Денисович", #10/11/1992#, "Внук")
Put #1, 1, Zap_Gr
Call Print_Zap(Zap_Gr)
Call Gen_Zap(Zap_Gr, "Виктория Олеговна", #2/18/1973#, "Бухгалтер")
Put #1, 2, Zap_Gr
Call Print_Zap(Zap_Gr)
Call Gen_Zap(Zap_Gr, "Мороховец Катя", #6/11/1992#, "Внук")
Put #1, 3, Zap_Gr
Call Print_Zap(Zap_Gr)
Call Gen_Zap(Zap_Gr, "Денис Вадимыч", #2/1/1973#, "Автомобилист")
Put #1, 4, Zap_Gr
Call Print_Zap(Zap_Gr)
b_int = LOF(1)
Debug.Print "Длина файла="; b_int
Close #1
End Sub

Нужно создать программу, выполняющую, те же действия, что и в этом коде, но использующую динамический массив для хранения данных в переменной пользовательского типа.

Re: Динамический массив, работа с файлами приизвольн доступа и пользоват типом данных

DatRog As Date
DopInf As String * 25
End Type
Global data_array() As Gragdanin
Global lCount As Long
Public Function Gen_Zap(ByRef Zapis As Gragdanin, name1 As String, ByVal date1 As Date, note1 As String)
    Zapis.Name = name1         ''        ‘"?????? ???? ?????????"
    Zapis.DatRog = date1       ''   ‘#10/11/1992#,
    Zapis.DopInf = note1       ''      ‘"????"
End Function
Public Function Sozd_WR_ARRAY()
  Dim Zap_Gr As Gragdanin
  Call Gen_Zap(Zap_Gr, "Name1", #10/11/1992#, "Note1")
  Call Add_to_array(Zap_Gr)
  Call Gen_Zap(Zap_Gr, "Name2", #10/11/1992#, "note2")
  Call Add_to_array(Zap_Gr)
End Function
Public Function Add_to_array(Zapis As Gragdanin)
  On Error Resume Next
  '' first time
  If UBound(data_array) < 0 Then
     lCount = -1
  End If
  '' main body
  lCount = lCount + 1
  ReDim Preserve data_array(lCount)
  data_array(lCount).Name = Zapis.Name
  data_array(lCount).DatRog = Zapis.DatRog
  data_array(lCount).DopInf = Zapis.DopInf
End Function

Re: Динамический массив, работа с файлами приизвольн доступа и пользоват типом данных

Не подскажете еще: надо создать экранную форму, с кот 1.можно изменять любую запись в файле
2.удалять выбранную пользователем запись в файле произв доступ
3. удалять выбранную пользователем строку...
4. обнуление выбранных элементов записи и строк
5. удаление данных из файла, при кот все записи и строки  смещаются на одну вверх, а последняя из них стирается
6.вывод инвормации из файла на принтер

Sub Poluch_File_8()
Dim i As Integer
Dim Zap_Gr As Gragdanin
PahtFile & "File_BD_1.dat" For Random As #1 Len = Len(ZDim PahtFile As String
Dim b_int As Integer, b_int_1 As Integer
PahtFile = "D:\excel\Офисное программирование 2\"
Open ap_Gr)
b_int = LOF(1) \ Len(Zap_Gr)
Debug.Print "Число записей файла="; b_int
For i = 1 To b_int
Seek 1, i
Get #1, , Zap_Gr
Call Print_Zap(Zap_Gr)
Next i
Close #1
End Sub

Вопрос: у меня 2 простых и один электронный учебник, ни в одном из них о файлах последовательного и произвольного доступа не упоминается вобще. А где моно получит подробненькую справочку о них(помимо Excel)?

Re: Динамический массив, работа с файлами приизвольн доступа и пользоват типом данных

опечаточка вышла:

Sub Poluch_File_8()
Dim i As Integer
Dim Zap_Gr As Gragdanin
Dim PahtFile As String
Dim b_int As Integer, b_int_1 As Integer
PahtFile = "D:\excel\Офисное программирование 2\"
Open PahtFile & "File_BD_1.dat" For Random As #1 Len = Len(Zap_Gr)
b_int = LOF(1) \ Len(Zap_Gr)
Debug.Print "Число записей файла="; b_int
For i = 1 To b_int
Seek 1, i
Get #1, , Zap_Gr
Call Print_Zap(Zap_Gr)
Next i
Close #1
End Sub