• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы kaskad755
  • Дата начала
K

kaskad755

надо сохранить два массива (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ой массив, закрыли.

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

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

kaskad755

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

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

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


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

Tanya

в данном случае 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
 
K

kaskad755

в данном случае 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

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

kaskad755

только учти - что если размер массива поменяется - ты его уже не запишешь/считаешь из файла таким образом.

Посмотрите пожалуйста (что то здесь ни так, а вот что понять не могу)....
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

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

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

Jumpy

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

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

При всем моем Уважении к Вам, Tanya, нипращу!
Теперь Вы обязаны выйти за меня замуж :(
 
K

kaskad755

При всем моем Уважении к Вам, 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

340 Control array element 'item' doesn't exist

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

kaskad755

340 Control array element 'item' doesn't exist

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

СПАСИБО ЗА ОТВЕТ (Сам виноват)
первый Text()
второй Text1()
ВСЁ ПОШЛО...
ОГРОМНОЕ СПАСИБО.....
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!