- •Form2.Show
- •Integer ‘целое число со знаком от –32 768 до 32767
- •Interval – 1000 (время, в миллисекундах, через которое таймер срабатывает, если конечно включен). Таймер будет срабатывать каждые 1000 мск, т.Е. Каждую секунду, как в нормальных часах.
- •InputBox("сообщение", "заголовок окна", "данные по умолчанию", расстояние между левой границей экрана и левым краем экрана,то же для верхней границы, "имя Help-файла" , номер раздела Help-файла)
- •Input #номерФайла, списокПеременных
- •15,"Пятнадцать" #true#,#2004-07-20#
- •Shell ("путь до файла программы", "вид окна, в котором откроется программа")
- •Private Sub Command1_Click() Combo1.AddItem Combo1.Text End Sub
- •Массив - это сколько угодно значений, объединенных одним именем.
- •Объект.PopupMenu имяменю, флаг, позицияX, позицияY, выделеннаястрока
- •Form1.PrintForm
- •CommonDialog1.ShowOpen
- •Dim Name As String Dim Kolichestvo As Long Dim Cost As Single
Input #номерФайла, списокПеременных
а смысл в том, что она из последовательно открытого в режиме Input файла с номером #номерФайла считывает в переменные списокПеременных данные, разделенные запятыми. Этот оператор для считывания обычных текстов не годится, а вот данных, а потом использование их в переменных - сколько угодно. Но мы попробуем считать все-таки этот наш файл и этим оператором. Опять кладем на форму кнопку Command3 и там ваяем по тому же принципу:
Private Sub Command3_Click() F = FreeFile Open App.Path & "\Справка.txt" For Input As #F Do Until EOF(F) Input #F, MyText AllMyText = AllMyText & ", " & MyText Loop Close #F Text1.Text = AllMyText End Sub
Это, конечно, некорректное применение оператора, но мы вернемся к нему, когда будем рассматривать запись в файл с помощью оператора Write #. Как ты видишь, запятые не выводятся, приходится их запихивать насильно, не всегда к месту, но ради полноты, я посчитал надо показать и это. Все, теперь запись.
ЗАПИСЬ в текстовой файл. |
Как и для считывания, прежде, чем записывать в текстовой файл, нужно получить к нему доступ. Для этого используем оператор Open с ключевым словом Output. Добавим на форму еще кнопку Command4. Создадим для нее процедуру и напишем там:
Private Sub Command4_Click() F = FreeFile Open App.Path & "\Запись.txt" For Output As #F
Таким образом мы открыли файл с последовательным доступом, который называется "Запись.txt" в нашей текущей директории под свободным номером #F, для записи (For Output). При этом, если такого файла не существует, он будет создан, а если существует и в нем что-то записано, то это что-то будет стерто, а вместо будет помещены наши новые данные, которые мы сейчас будем записывать, например, скажем с помощью оператора Print #. Записать его можно аналогично оператору считывания Line Input:
Print #F, Text1.Text
То есть, мы записываем содержимое нашего текстбокса (если там что-то есть. Считайте в текстбокс Text1 наш файл Справка.txt нажатием одной из кнопок Command1-Command3) в файл "Запись.txt". Затем закрываем файл и конец процедуре:
Close #F End Sub
Ты можешь открыть этот файл с помощью Виндусового Блокнота или в любом текстовом редакторе и посмотреть его. Или напиши в нашей программе свой код, чтоб считать этот файл в Text1 и сразу его посмотреть. В принципе, если тебе это надо, оператор Print # может форматировать текст, т.е. менять отступы от края, вставлять пробелы, но только между переменными, а не конечно в середину, скажем, нашего текста. Для этого используется аргументы Spc (количество пробелов) для введения пробелов и Tab(номер столбца) для вывода данных по столбцам. Положим на форму еще текстбокс Text2 и кнопку Command5 и в ее процедуре напишем код для форматированной записи. Потом считаем наши записи в Text2 с помощью оператора Line Input. С этим, я думаю, ты разберешся сам. (Не забудь поставить свойства Text2:свойство Multiline поставим в True, а свойство ScrollBars в 2 - Вертикаль.
Private Sub Command5_Click() F = FreeFile Open App.Path & "\Запись.txt" For Output As #F 'печатаем тексты с 15-й позиции Print #F, Spc(15); "Я вывожу этот текст" Print #F, Spc(15); "очень красиво" Print #F, Spc(15); "потому, что я настоящий" Print #F, Spc(15); "ПРОГРАММИСТ" 'печатаем пустую строку Print #F, 'печатаем тексты в 30-ем, 40-м и 50-м стобцах соответственно Print #F, Tab(30); "тридцатый столбец" Print #F, Tab(40); "сороковой столбец" Print #F, Tab(50); "пятидесятый столбец" 'если оператор завершать точкой с запятой, то перехода на следующую строку не будет Print #F, Spc(15); "Печатаю текст"; Print #F, Spc(15); "не очень хорошо" ' и наконец несколько текстов в одном операторе Print #F, Spc(10); "10 пробелов"; Tab(30); "30-й столбец+ 10 пробелов в начале"; Spc(5); "Пять пробелов" Close #F
'считаем записанный текст в Text2 Text2.Text = "" MyText = "" F = FreeFile Open App.Path & "\Запись.txt" For Input As #F Do Until EOF(F) Line Input #F, MyText Text2.Text = Text2.Text & MyText & vbCrLf Loop Close #F End Sub
Теперь запишем чего-нибудь в файл с помощью оператора Write #, а потом, уже корректно считаем это оператором Input # о котором мы уже говорили в этой главе. С помощью оператора Write # удобно записывать данные твоей программы. Есть две особенности. Первое - данные разделяются разделителем (запятой), и второе - данные надо считывать в переменные того же типа, что и запись в файле ( то есть число - в число, дату в дату, стоку в строку и т.п., иначе возникнет ошибка) и представляются они в файле в достаточно своеобразном виде - каждый в своем формате. Сейчас разберем это на примере, я так думаю, будет понятнее. Положим еще одну кнопку Command6 на форму и в ней объявим переменные четырех разных типов.
Private Sub Command6_Click() Dim Chislo As Long ' числовая Dim Stroka As String ' строковая Dim Logika As Boolean ' логическая Dim DDate As Date' дата (не путайте с Data)
Надо заметить, что число выводится в файл как число, строка - как строка в кавычках, логическая переменная может принимать только два значения Да и Нет в формате #False# или #True#, а дата в виде #2004-07-20# , что соответствует 20 июля 2004 года. Дальше присваиваем переменным какие-нибудь значения в соответствующем формате
Chislo = 15 Stroka = "пятнадцать" Logika = True DDate = #7/20/2004#
Записываем данные в файл. Обратите внимание, я нарочно записываю двумя операторами Write #, а считываю одним, чтобы показать, что абсолютно не имеет значения, сколько операторов Write# или Input# ты будешь использовать.
F = FreeFile Open App.Path & "\Запись.txt" For Output As #F Write #F, Chislo; Stroka Write #F, Logika; DDate Close #F
'теперь считаем данные с помощью оператора Input# F = FreeFile Open App.Path & "\Запись.txt" For Input As #F Input #F, Chislo, Stroka, Logika, DDate 'и выведем их в Text2 Text2.Text = Chislo & " " & Stroka & " " & Logika & " " & DDate Close #F End Sub
Сейчас, когда ты запустишь программу, ты увидишь, что в Text2 данные вывелись в очень достойном виде, но это потому, что мы используем для считывания оператор Input #. Если же ты откроешь файл " Запись" в блокноте или считаешь файл с помощью оператора Line Input, то увидишь несколько иную картину, вот такую:
