Страница: 1 | 2 |
Вопрос: Сохранение текста из нескольких TextBox
Добавлено: 08.10.04 20:43
Автор вопроса:
Unheilig | Web-сайт:
Ответы
Всего ответов: 19
Номер ответа: 16
Автор ответа: Unheilig
ICQ: 336859855
Вопросов: 9
Ответов: 32
Web-сайт:
Профиль | | #16
Добавлено: 10.10.04 01:40
Вот как раз файлы маленькие (не более 50 кб)
to CyRax - если что выйдет (насчёт 3 способов) кмнь на мыло, если не трудно.
Номер ответа: 17
Автор ответа: CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #17
Добавлено: 10.10.04 02:14
Попробуй такое.
Private Type Str7
Value(6) As String
End Type
Private Questions() As Str7
Private Sub Form_Load()
'Допустим у нас 5 вопросов
ReDim Questions(4)
'Заполним массив вопросов левыми значениями
For EnumFields = 0 To UBound(Questions)
For EnumTypeFields = 0 To 6
Questions(EnumFields).Value(EnumTypeFields) = "Вопрос " & EnumFields + 1 & " | Поле " & EnumTypeFields + 1
Next EnumTypeFields
Next EnumFields
'Сохранить все вопросы в файл
SaveQuestions Environ$("TEMP" & "\Questions.dat"
'Стереть вопросы из памяти
Erase Questions
'Загрузить 5 вопросов из файла
LoadQuestions Environ$("TEMP" & "\Questions.dat", 5
'Просмотреть случайное поле
Randomize Timer
MsgBox Questions(Int(5 * Rnd)).Value(Int(6 * Rnd))
End Sub
Sub SaveQuestions(FileName As String)
If Len(Dir$(FileName)) > 0 Then Kill FileName
Dim FileChanell As Long
FileChanell = FreeFile
Open FileName For Binary As FileChanell
Put #FileChanell, 1, Questions
Close FileChanell
End Sub
Sub LoadQuestions(FileName As String, ByVal TotalCount As Long)
If Len(Dir$(FileName)) = 0 Then MsgBox "File not present", 16: Exit Sub
Dim FileChanell As Long
FileChanell = FreeFile
ReDim Questions(TotalCount - 1)
Open FileName For Binary As FileChanell
Get #FileChanell, 1, Questions
Close FileChanell
End Sub
Кстати с таким алгоритмом удобнее будет использовать массив текстовых полей.
Номер ответа: 18
Автор ответа: LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #18
Добавлено: 11.10.04 13:01
Еще как вариант:
Option Explicit
Private Type Saved
Text1 As String
Text2 As String
Text3 As String
End Type
Private Sub Command1_Click()
Dim SaveFile As Saved
SaveFile.Text1 = Text1(0).Text
SaveFile.Text2 = Text1(1).Text
SaveFile.Text3 = Text1(2).Text
Dim hFile As Byte
hFile = FreeFile
Open "C:\tmpfile.dat" For Binary As hFile
Put hFile, , SaveFile
Close hFile
End Sub
Private Sub Command2_Click()
Dim SaveFile As Saved
Dim hFile As Byte
hFile = FreeFile
Open "C:\tmpfile.dat" For Binary As hFile
Get hFile, , SaveFile
Close hFile
Text1(0).Text = SaveFile.Text1
Text1(1).Text = SaveFile.Text2
Text1(2).Text = SaveFile.Text3
End Sub
Private Sub Command3_Click()
Text1(0).Text = ""
Text1(1).Text = ""
Text1(2).Text = ""
End Sub
То есть, просто загоняешь это все в user type и сохраняешь в двоичный файл. С извлечением тоже проблем нет. Разумеется, это рулит лишь если ты этот файл как текстовый просматривать не собираешься.
Номер ответа: 19
Автор ответа: CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #19
Добавлено: 12.10.04 00:42
Ну и чем это отличается от того что я написал?
А понял, чтобы он повопросно загружал. Я тоже так хотел сделать сначала, но потом подумал что для больших файлов это скорости не прибавит. Но раз у тебя файл всего 50 кБ, то можно и так.