Работа с массивами данных из файла - VB
Формулировка задачи:
Здравствуйте. Хотел бы выяснить возможность написания программы для считывания большого объема данных из файла (без зависания!),а так же редактирования его. Сам массив нужно разделить на блоки с определенным количеством значений, а затем эти блоки поменять в порядке местами, то есть первый станет последним, второй - предпоследним и.т.д. Главное, чтобы порядок в самом блоке оставался не изменным. Я написал для начала код для чтения, и наткнулся на проблему с зависанием всего и вся =) Жду комментариев, заранее благодарствую!
Решение задачи: «Работа с массивами данных из файла»
textual
Листинг программы
'объявляем тип записи, в нашем случае это массив из 11 переменных типа Double Private Type recDoubleValue DblVar(10) As Double End Type 'объявляем переменную типа recDoubleValue, которая содержит 11 переменных типа Double Dim rec As recDoubleValue Private Sub Form_Load() Command1.Caption = "Записать данные" Command2.Caption = "Прочитать данные" Command3.Caption = "Поменять местами" End Sub 'жмём пкрвую кнопку, чтоб создать файл и записать в него 100 записей типа recDoubleValue Private Sub Command1_Click() Dim f As Integer Dim i As Integer, j As Integer f = FreeFile Randomize Open "C:\myRandomFile" For Random Access Write As #f Len = Len(rec) For i = 1 To 100 For j = 0 To 10 rec.DblVar(j) = i + Rnd Next j Put #f, i, rec Combo1.AddItem i Next i Close #f Combo1.ListIndex = 0 End Sub 'вторая кнопка служит для просмотра записей файла, в Combo1 выбираем номер записи, _ жмём кнопку просмотра ив List1 отображается запись, число до запятой равно номеру записи Private Sub Command2_Click() Dim i As Integer Dim f As Integer f = FreeFile If (Val(Combo1.Text) > 0) And (Val(Combo1.Text) <= 100) Then List1.Clear Open "C:\myRandomFile" For Random Access Read As #f Len = Len(rec) Get #f, Combo1.Text, rec Close f For i = 0 To 10 List1.AddItem rec.DblVar(i) Next i End If End Sub 'меняем местами блоки в файле Private Sub Command3_Click() Dim i As Integer Dim f As Integer Dim rec1 As recDoubleValue, rec2 As recDoubleValue f = FreeFile Open "C:\myRandomFile" For Random As #f Len = Len(rec) For i = 1 To 50 Get #f, i, rec1 Get #f, 101 - i, rec2 Put #f, i, rec2 Put #f, 101 - i, rec1 Next i Close f Call Command2_Click End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д