Всем привет!
Есть проблемка, на форме у меня два листа: List1 и List2. При выходе из проги содержимое этих листов записывается в файл, а при старте проги загружается из файла. Записываю я в файл так:
Private Sub Form_Unload(Cancel As Integer)
Dim x As Integer
If Check1.Value Then
If List1.ListCount <> 0 Then
Open App.Path & "\CD&DVD.dbs" For Output As #1
For x = 0 To List1.ListCount - 1
Print #1, List1.List(x)
Next
Print #1, "<End List 1>"
End If
If List2.ListCount <> 0 Then
For x = 0 To List2.ListCount - 1
Print #1, List2.List(x)
Next
End If
Close #1
End If
End Sub
Так во проблема в том, что если в List1 нет никакой инфы, а в List2 инфа есть, то при выходе выдается ошибка Bad file name or number и указывается на строку Print #1, List2.List(x) Помогите, разрешить проблему. СПАСИБО!
2 Vit, это работает, но когда я закрываю прогу и инфа остается в List2, а потом запускаю прогу, то та инфа из List2 переходит в List1. А загружаю я так:
Private Sub Form_Load()
Dim size As Long
Dim n As Byte
Dim flag As Boolean
Dim s As String
n = FreeFile
On Error Resume Next
Open App.Path & "\CD&VD.dbs" For Input As #n: size = LOF(n)
If size = 0 Then Exit Sub
Do While Not EOF(n)
Line Input #n, s$
If s$ = "<End List 1>" Then
flag = True
GoTo nxt
End If
If flag = False Then
List1.AddItem s$
Else
List2.AddItem s$
End If
nxt:
Loop
Close #n
End Sub
Просто немного логика нарушена. Мой вариант работает.
Private Sub Form_Unload(Cancel As Integer)
'
Dim n%, x&
'
' надо ли записывать?
If Check1.Value Then
'
' открываем
n = FreeFile
Open App.Path & "\CD&VD.dbs" For Output As #n
'
' пишем
For x = 0 To List1.ListCount - 1
Print #n, List1.List(x)
Next
Print #n, "<End List 1>"
For x = 0 To List2.ListCount - 1
Print #n, List2.List(x)
Next
'
' закрываем
Close #n
'
End If
'
End Sub
Private Sub Form_Load()
'
Dim n%, s$
'
' есть ли файл?
If Dir$(App.Path & "\CD&VD.dbs" <> "" Then
'
' открываем
n = FreeFile
Open App.Path & "\CD&VD.dbs" For Input As #n
'
' читаем-заполняем
Do While Not EOF(n)
Line Input #n, s
If s$ = "<End List 1>" Then Exit Do
List1.AddItem s
Loop
Do While Not EOF(n)
Line Input #n, s
List2.AddItem s
Loop
'
' закрываем
Close #n
'
End If
'
End Sub