Страница: 1 |
|
Вопрос: Запись в файлы Excel, Word, TXT
|
Добавлено: 30.05.10 19:58
|
|
Автор вопроса: goodwen
|
Здраствуйте, раскажите кто знает, как содержимое любого массива записать в файл (текстового блокнота, или экселевского файла, или вордовского). Есть двумерный массив (абсолютно любой размерности и в каждой ячейке записано какое либо значение), как сделать пошагово так, что бы его содержимое записывалось в файл и потом при загрузке приложения автоматически считывалось обратно.
Ответить
|
Номер ответа: 9 Автор ответа: goodwen
Вопросов: 26 Ответов: 65
|
Профиль | | #9
|
Добавлено: 03.06.10 20:18
|
-
- Dim s As Variant
- Dim b As Variant
- Dim p1, p2, p3, p4
- Dim s4et(1 To 69)
-
- Dim mass(1 To 1000, 1 To 1000)
-
-
- Private Sub Command1_Click()
- s = Text1.Text
- b = Split(s, " ", -1)
-
- For i = LBound(b) To UBound(b)
- p1 = InputBox("{" + b(i) + "}" + "-это 1.объект или 2.действие?")
- If p1 = "1" Then
-
- Label1.Caption = ""
-
- Label1.Caption = Label1 + b(i) + "-это объект"
- p2 = InputBox("каких он размеров?" + Chr(13) + "1.большой" + Chr(13) + "2.маленький")
- If p2 = "1" Then Label1.Caption = Label1 & vbCrLf & " он большой"
- If p2 = "2" Then Label1.Caption = Label1 & vbCrLf & " он маленький"
-
- mass(s4et(1), 1) = Label1.Caption
-
- Label3.Caption = Label3.Caption & "a(" & s4et(1) & ", 1) = " & mass(s4et(1), 1) & Chr(13)
- s4et(1) = s4et(1) + 1
-
- End If
-
- If p1 = "2" Then
-
- Label2.Caption = ""
-
- Label2.Caption = Label2 + b(i) + "-это действие"
- p3 = InputBox("{" + b(i) + "}" + "какое оно по сложности?" + Chr(13) + "1. сложное" + Chr(13) + "2. простое")
- If p3 = "1" Then Label2.Caption = Label2 & vbCrLf & " оно сложное"
- If p3 = "2" Then Label2.Caption = Label2 & vbCrLf & " оно простое"
-
- mass(s4et(2), 2) = Label2.Caption
- Label3.Caption = Label3.Caption & "a(" & s4et(2) & ", 2) = " & mass(s4et(2), 2) & Chr(13)
- s4et(2) = s4et(2) + 1
- End If
-
-
-
-
- Next i
-
- End Sub
-
- Private Sub Form_Load()
- On Error GoTo no_txt
- Open App.Path & "\obj_s4et.txt" For Input As #1
- Input #1, s4et(1)
- Close #1
-
- Open App.Path & "\act_s4et.txt" For Input As #1
- Input #1, s4et(2)
- Close #1
-
- Open App.Path & "\objects.txt" For Input As #1
- For i = 1 To s4et(1) - 1
- Line Input #1, mass(i, 1)
- Label3.Caption = Label3.Caption & "a(" & i & ", 1) = " & mass(i, 1) & Chr(13)
-
- Next
- Close #1
-
- Open App.Path & "\actions.txt" For Input As #1
- For i = 1 To s4et(2) - 1
- Line Input #1, mass(i, 2)
- Label3.Caption = Label3.Caption & "a(" & i & ", 2) = " & mass(i, 2) & Chr(13)
- Next
- Close #1
-
-
- Text1.Text = ""
- Label1.Caption = ""
- Label2.Caption = ""
- Exit Sub
- no_txt:
-
- s4et(1) = 1
- s4et(2) = 1
- End Sub
-
-
- Private Sub Form_Terminate()
-
- Open App.Path & "\obj_s4et.txt" For Output As #1
- Write #1, s4et(1)
- Close #1
-
- Open App.Path & "\act_s4et.txt" For Output As #1
- Write #1, s4et(2)
- Close #1
-
- Open App.Path & "\objects.txt" For Output As #1
- For i = 1 To s4et(1) - 1
-
-
-
- Print #1, mass(i, 1)
- Next
- Close #1
-
- Open App.Path & "\actions.txt" For Output As #1
- For i = 1 To s4et(2) - 1
- Print #1, mass(i, 2)
- Next
- Close #1
-
- End Sub
-
Это обрубленная и упращённая версия того, что хочу сделать.
При запуске формы, нужно набрать в текстовом поле что то вроде "Самолёт взлетел", или тому подобное. и вот ответить на пару вопросов, после чего содержимое лейблов, заносится в ячейку массива.
Заменил Chr(13) на vbCrLf и собсвтенно в файл он пишет, но при считывание он каждую строку заносит в разные ячейки, а не в одну как нада, как это можно исправить?
Ответить
|
Номер ответа: 11 Автор ответа: goodwen
Вопросов: 26 Ответов: 65
|
Профиль | | #11
|
Добавлено: 05.06.10 17:32
|
GDK, Благодарю Вас за замечание. По поводу програмного кода, когда запускаете форму, в текстовом коде вводятся слова, после ответа на вопросы то, чтозаписано в лейблах 1 и 2 заносятся в ячейки массива и после этого на лейбл 3 выводится содержимое массива (это так для того, чтоб видеть занеслось, или нет), при закрытие формы, содержимое массива заносится в файл, а при новом открытии считывается с этого файла и для проверки (что считалось) выводится на лейбл 3, так что не особо понимаю, что Вас злит, но видимо я Вас просто запутал.
Ответить
|
Страница: 1 |
Поиск по форуму