Программирование в Gambas. Урок 4
Методические материалыАвтор: Владимир Черный
Еще один урок по Gambas от Олега Чебан из из г. Киселевск Кемеровской области.
Первый урок
Второй урок
Третий урок
Урок 4. Файлы.
Тип урока: Лабораторная работа. Полное учебное занятие.
Цель урока:
- Познакомиться со стандартными функциями по обработке строк.
- Приобрести навыки по созданию файлов двух типов: File и Stream.
- Научиться открывать файл для чтения и записи последовательных данных.
Ход работы.
В системе Gambas предусмотрены развитые средства по работе с директориями и файлами. Информацию о функциях по работе с файлами можно найти в справке Gambas, по команде: Справка → Компонент gb → File.
Рассмотрим некоторые:
1. Создать файл. Предварительно создадим в домашней директории каталог gambas/ и подкаталог lesson-4/ (урок-4), т. е. Полный путь будет таким:
/home/<user>/gambas/lesson-4/ или ~/gambas/lesson-4/
Справка: В системе Linux символ ‘~’ указывает на директорию пользователя.
DIM myFile AS File ‘Переменная файлового типа DIM myDir AS String DIM sLine AS String myDir = "~/gambas/lesson-4/" ‘Задали путь к файлу myFile = OPEN myDir & "example.txt" FOR CREATE ‘* sLine = "Строка 1" PRINT #myFile, sLine ‘Ввод строки PRINT #myFile, "Строка 2" CLOSE #myFile ‘Закрываем файл |
Примечание. * — Метод CREATE создает файл, при наличии, перезаписывает!
2. Открыть файл.
2.1. Построчная запись данных в файл. Тип File.
DIM myFile AS File ‘Тип файл DIM myDir AS String DIM sLine AS String myDir ="~/gambas/lesson-4/" ‘Путь ‘Проверка на наличие файла |
2.2. Построчное чтение данных из файла. Тип File.
DIM myFile AS File DIM myDir AS String DIM sLine1 AS String DIM sLine2 AS String myDir = "~/gambas/lesson-4/" WHILE NOT Eof(myFile) ‘Пока не конец файла, повторять CLOSE #myFile ‘Закрытие файла |
Для работы со строками в Gambas используются стандартные функции:
Функция | Действие | Пример |
Len(strLine) | Число символов в строке | Функция Len(«ABС») вернет значение 3 |
Left(strLine, 3) | Вырезать три символа слева | Left(«AltLinux», 3) получим «Alt» |
Right(strLine,5) | Вырезать пять символов справа | Right(«AltLinux», 5) получим «Linux» |
MID(strLine,3,6) | Вырезать шесть символов начиная с третьего | MID(«Информатика»,3,6) получим «формат» |
ASC(«A») | *Код символа 65(основание 10), или 41(16), 01000001(2) | |
CHR(65) | Получим символ «A» |
* — Для перевода чисел с одной системы счисления в другую используйте «Калькулятор» (gcalctool) → Вид: Программирование.
2.3. Создание и запись данных. Файловый тип Stream (поток).
DIM myFile AS stream DIM myDir AS String DIM sPi AS String myDir = "~/gambas/lesson-4/" WRITE #myFile, sPi |
2.4. Чтение данных.Тип Stream.
DIM myFile AS stream DIM myDir AS String DIM strDat AS String DIM fltPi AS Float DIM fltR AS Float myDir = "~/gambas/lesson-4/" ‘Путь |
3. Задача. Компонентами файла являются целые числа в диапазоне от 1 до 10. Вывести все четные.
Дано: Input.dat
1 2 3 4 5 6 7 8 9 10
Результат:
2 4 6 8 10
Решение.
DIM myFile AS stream DIM myDir AS String DIM i AS Integer myDir = "~/gambas/lesson-4/input.dat" FOR i = 1 TO 10 STEP 1 myFile = OPEN myDir FOR INPUT ‘Открыли для чтения |
4. Домашнее задание.
Изменить программу таким образом, чтобы найти все значения делящиеся на 3 и не делящиеся на 7 в диапазоне от 1 до 100. Результат записать в файл output.dat.
Оставьте комментарий