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

Тема в разделе "Visual Basic", создана пользователем kaskad755, 24 май 2009.

  1. kaskad755

    kaskad755 Active Member

    Регистрация:
    13 фев 2009
    Сообщения:
    34
    Симпатии:
    0
    надо сохранить два массива (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
    А вот как два, не знаю (ПОДСКАЖИТЕ ПОЖАЛУЙСТА).
     
  2. Jumpy

    Jumpy Гость

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

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

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

    kaskad755 Active Member

    Регистрация:
    13 фев 2009
    Сообщения:
    34
    Симпатии:
    0

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

    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
     
  5. kaskad755

    kaskad755 Active Member

    Регистрация:
    13 фев 2009
    Сообщения:
    34
    Симпатии:
    0
    СПАСИБО, ЗАВТРА ПОПРОБУЮ.....(Я, ещё учусь, по этому так много вопросов)
     
  6. Jumpy

    Jumpy Гость

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

    kaskad755 Active Member

    Регистрация:
    13 фев 2009
    Сообщения:
    34
    Симпатии:
    0
    Посмотрите пожалуйста (что то здесь ни так, а вот что понять не могу)....
    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
     
  8. Tanya

    Tanya Гость

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

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

    Jumpy Гость

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

    kaskad755 Active Member

    Регистрация:
    13 фев 2009
    Сообщения:
    34
    Симпатии:
    0
    РУГАЕТСЯ (ошибка 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
     
  11. Jumpy

    Jumpy Гость

    340 Control array element 'item' doesn't exist

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

    kaskad755 Active Member

    Регистрация:
    13 фев 2009
    Сообщения:
    34
    Симпатии:
    0
    СПАСИБО ЗА ОТВЕТ (Сам виноват)
    первый Text()
    второй Text1()
    ВСЁ ПОШЛО...
    ОГРОМНОЕ СПАСИБО.....
     
Загрузка...

Поделиться этой страницей