сохранить два массива

kaskad755

Active member
13.02.2009
34
0
#1
надо сохранить два массива (i=0 to 98) и (e=0 to 26), не получается...
один получается:
nfreefile = FreeFile
CommonDialog1.ShowSave
strfilename = CommonDialog1.FileName
If strfilename <> "" Then
Open strfilename For Output As nfreefile
For i = 0 To 98
With Text(i)
Print #1, Text(i)
End With
Next i
Close #1
Close
End If
А вот как два, не знаю (ПОДСКАЖИТЕ ПОЖАЛУЙСТА).
 
J

Jumpy

#2
Сохранить в 2 разных файла ?
в 2 разных - все тож самое токо 2 раза :)))
открыли файл, записали, закрыли, открыли 2ой файл, записали 2ой массив, закрыли.

И кстати код с ошибками написан: 1 раз открыли файл - и почему то 2 оператора Close :) второй без указания еще (компилятор ваще ошибку выдаст) и вот здесь:
With Text(i)
Print #1, Text(i)
End With

то что жирным выделено - не надо, оно не используется.
 

kaskad755

Active member
13.02.2009
34
0
#3
Сохранить в 2 разных файла ?
в 2 разных - все тож самое токо 2 раза :)))
открыли файл, записали, закрыли, открыли 2ой файл, записали 2ой массив, закрыли.

И кстати код с ошибками написан: 1 раз открыли файл - и почему то 2 оператора Close :) второй без указания еще (компилятор ваще ошибку выдаст) и вот здесь:
With Text(i)
Print #1, Text(i)
End With

то что жирным выделено - не надо, оно не используется.

Сохранить надо в один текстовый файл, чтобы потом значения можно было вернуть.
 
T

Tanya

#4
в данном случае 2 оператора Close не дадут ошибки
т.к. при команде Close без параметров закрываются все открытые файлы
т.е просто ничего не буде закрыто
а вот Close #1 - не совсем то ...
вместо этих 2ух достаточно одного:
Close #nfreefile

да и
Print #nfreefile

не указано имя второго массива ... пусть будет Text2()

nfreefile = FreeFile
CommonDialog1.ShowSave
strfilename = CommonDialog1.FileName
If strfilename <> "" Then
Open strfilename For Output As nfreefile

For i = lBound(Text) To UBound(Text)

Print #nfreefile, Text(i)

Next i

For i = lBound(Text2) To UBound(Text2)
Print #nfreefile, Text2(i)

Next i

Close #nfreefile

End If
 

kaskad755

Active member
13.02.2009
34
0
#5
в данном случае 2 оператора Close не дадут ошибки
т.к. при команде Close без параметров закрываются все открытые файлы
т.е просто ничего не буде закрыто
а вот Close #1 - не совсем то ...
вместо этих 2ух достаточно одного:
Close #nfreefile

да и
Print #nfreefile

не указано имя второго массива ... пусть будет Text2()

nfreefile = FreeFile
CommonDialog1.ShowSave
strfilename = CommonDialog1.FileName
If strfilename <> "" Then
Open strfilename For Output As nfreefile

For i = lBound(Text) To UBound(Text)

Print #nfreefile, Text(i)

Next i

For i = lBound(Text2) To UBound(Text2)
Print #nfreefile, Text2(i)

Next i

Close #nfreefile

End If
СПАСИБО, ЗАВТРА ПОПРОБУЮ.....(Я, ещё учусь, по этому так много вопросов)
 

kaskad755

Active member
13.02.2009
34
0
#7
только учти - что если размер массива поменяется - ты его уже не запишешь/считаешь из файла таким образом.
Посмотрите пожалуйста (что то здесь ни так, а вот что понять не могу)....
Dim strfilename As String
Dim strfilecontent As String
Dim nfreefile As Integer
Dim buff As String
nfreefile = FreeFile
CommonDialog1.ShowOpen
strfilename = CommonDialog1.FileName
If strfilename <> "" Then
Open strfilename For Input As nfreefile
For i = 0 To 98
With Text1(i)
Line Input #nfreefile, buff
.Text = buff
End With
For e = 0 To 26
With Text1(e)
Line Input #nfreefile, buff
.Text = buff
End With
Next e
Next i
Close #nfreefile
End If
 
T

Tanya

#8
Думаю, что Next i стоит не там, скорее всего он должен находиться до
For e = 0 To 26

да извинит меня Jumpy ))) ибо к нему вопрос ...
 

kaskad755

Active member
13.02.2009
34
0
#10
При всем моем Уважении к Вам, Tanya, нипращу!
Теперь Вы обязаны выйти за меня замуж :)
РУГАЕТСЯ (ошибка 340)
Dim strfilename As String
Dim strfilecontent As String
Dim nfreefile As Integer
Dim buff As String
nfreefile = FreeFile
CommonDialog1.ShowOpen
strfilename = CommonDialog1.FileName
If strfilename <> "" Then
Open strfilename For Input As nfreefile
For i = 0 To 98
With Text1(i)
Line Input #nfreefile, buff
.Text = buff
End With
Next i
For e = 0 To 26
With Text1(e)
Line Input #nfreefile, buff
.Text = buff
End With
Next e

Close #nfreefile
End If
 
J

Jumpy

#11
340 Control array element 'item' doesn't exist

нету элемента Text1 с каким то индексом.
их должно быть 98
кстати массив загружается в одни теже элементы - Text1 - т.е. второй массив перезапишет первый.
 

kaskad755

Active member
13.02.2009
34
0
#12
340 Control array element 'item' doesn't exist

нету элемента Text1 с каким то индексом.
их должно быть 98
кстати массив загружается в одни теже элементы - Text1 - т.е. второй массив перезапишет первый.
СПАСИБО ЗА ОТВЕТ (Сам виноват)
первый Text()
второй Text1()
ВСЁ ПОШЛО...
ОГРОМНОЕ СПАСИБО.....