Шаг 16 - Чтение и запись текстовых файлов
Наверно можно смело утверждать, что умение читать и записывать информацию в текстовый файл это основа импорта и экспорта :-) Практически любая серьезная программа хранящая информацию позволяет сохранить её в текстовом формате, какое бы он расширение не имел. Открываются файлы командой Open.
Sub Test() Open "c:\1.txt" For Input As #1 Close #1 End Sub
Команда Open может открывать для чтения Input и для записи Output. Цифра после as это идентификатор файла. На основании его производится чтение и запись файла.
Следующий пример демонстрирует запись и чтение файла
Sub Test() Open "c:\1.txt" For Output As #1 Print #1, "Hello File" Close #1 Open "c:\1.txt" For Input As #1 Dim s As String Input #1, s MsgBox s Close #1 End Sub
Как видите, для записи можно использовать Print, а для чтения Input воспользовавшись идентификатором открытого файла. Естественно здесь свои тонкости работы. Вот, если Вы запишите такую строку:
...... Print #1, "Hello , File" ......
То оператор Input #1 прочитает только Hello и все. Запятая воспринимается как разделитеть. И это правильно. Есть форматы текстовых файлов когда числа разделены запятой. В коде ниже:
...... Input #1, s MsgBox s Input #1, s MsgBox s .....
Последовательно выведутся надписи Hello и File, но с этим можно бороться оператором Line Input.
Sub Test() Open "c:\1.txt" For Output As #1 Print #1, "Hello , File" Close #1 Open "c:\1.txt" For Input As #1 Dim s As String Line Input #1, s MsgBox s Close #1 End Sub
Этот код прочитает строку целиком. Следом возникает важный вопрос, а как узнать конец файла ? Для этого есть функция EOF(идентификатор), которая позволяет вам определить конец файла.
Sub Test() Open "c:\1.txt" For Output As #1 Print #1, "Hello , File" Close #1 Open "c:\1.txt" For Input As #1 Dim s As String While Not EOF(1) Input #1, s MsgBox s Wend Close #1 End Sub
Предыдущий Шаг | Следующий Шаг
Автор Каев Артем.