Работа с массивами данных из файла - VB

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Хотел бы выяснить возможность написания программы для считывания большого объема данных из файла (без зависания!),а так же редактирования его. Сам массив нужно разделить на блоки с определенным количеством значений, а затем эти блоки поменять в порядке местами, то есть первый станет последним, второй - предпоследним и.т.д. Главное, чтобы порядок в самом блоке оставался не изменным. Я написал для начала код для чтения, и наткнулся на проблему с зависанием всего и вся =) Жду комментариев, заранее благодарствую!

Решение задачи: «Работа с массивами данных из файла»

textual
Листинг программы
  1. 'объявляем тип записи, в нашем случае это массив из 11 переменных типа Double
  2. Private Type recDoubleValue
  3. DblVar(10) As Double
  4. End Type
  5.  
  6. 'объявляем переменную типа recDoubleValue, которая содержит 11 переменных типа Double
  7. Dim rec As recDoubleValue
  8.  
  9. Private Sub Form_Load()
  10. Command1.Caption = "Записать данные"
  11. Command2.Caption = "Прочитать данные"
  12. Command3.Caption = "Поменять местами"
  13. End Sub
  14.  
  15. 'жмём пкрвую кнопку, чтоб создать файл и записать в него 100 записей типа recDoubleValue
  16. Private Sub Command1_Click()
  17. Dim f As Integer
  18. Dim i As Integer, j As Integer
  19. f = FreeFile
  20. Randomize
  21. Open "C:\myRandomFile" For Random Access Write As #f Len = Len(rec)
  22. For i = 1 To 100
  23.     For j = 0 To 10
  24.         rec.DblVar(j) = i + Rnd
  25.     Next j
  26. Put #f, i, rec
  27. Combo1.AddItem i
  28. Next i
  29. Close #f
  30. Combo1.ListIndex = 0
  31. End Sub
  32.  
  33. 'вторая кнопка служит для просмотра записей файла, в Combo1 выбираем номер записи, _
  34. жмём кнопку просмотра ив List1 отображается запись, число до запятой равно номеру записи
  35. Private Sub Command2_Click()
  36. Dim i As Integer
  37. Dim f As Integer
  38. f = FreeFile
  39. If (Val(Combo1.Text) > 0) And (Val(Combo1.Text) <= 100) Then
  40. List1.Clear
  41. Open "C:\myRandomFile" For Random Access Read As #f Len = Len(rec)
  42.     Get #f, Combo1.Text, rec
  43. Close f
  44. For i = 0 To 10
  45.     List1.AddItem rec.DblVar(i)
  46. Next i
  47. End If
  48. End Sub
  49.  
  50. 'меняем местами блоки в файле
  51. Private Sub Command3_Click()
  52. Dim i As Integer
  53. Dim f As Integer
  54. Dim rec1 As recDoubleValue, rec2 As recDoubleValue
  55. f = FreeFile
  56. Open "C:\myRandomFile" For Random As #f Len = Len(rec)
  57. For i = 1 To 50
  58.     Get #f, i, rec1
  59.     Get #f, 101 - i, rec2
  60.     Put #f, i, rec2
  61.     Put #f, 101 - i, rec1
  62. Next i
  63. Close f
  64. Call Command2_Click
  65. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы