Работа с файлами
КуМир поддерживает полноценную работу с файлами как в оффлайн режиме (в компиляторе и интерпретаторе), так и в веб-версии прямо в браузере.
Уникальная особенность
Qumir — единственная онлайн реализация КуМир с поддержкой файлового ввода/вывода в браузере!
В отличие от других онлайн-сред программирования, где файлы либо не поддерживаются, либо требуют загрузки/скачивания, Qumir предоставляет встроенный файловый менеджер прямо в интерфейсе браузера.
Работа с файлами в браузере
Интерфейс файлов
В нижней части редактора есть панель Ввод/Вывод с вкладками:
- Вывод — стандартный вывод программы
- Ввод — стандартный ввод для программы
- Файлы — управление файлами (кнопка + для создания нового файла)
Создание файлов вручную
- Перейдите на вкладку Файлы (внизу редактора)
- Нажмите кнопку + Добавить файл
- Введите имя файла (например,
input.txt,data.dat) - Введите содержимое файла в текстовом поле
- Файл автоматически сохраняется и становится доступен программе
Автоматическое создание файлов
Когда программа открывает файл на запись, файл автоматически появляется в списке файлов на панели. Вы можете:
- Просматривать содержимое файла в реальном времени
- Редактировать файл вручную
- Скачать файл на диск
Редактирование и управление
- Просмотр — откройте файл для просмотра содержимого
- Редактирование — измените содержимое прямо в браузере
- Удаление — кнопка удаления (🗑️) рядом с именем файла
- Скачивание — сохраните файл на диск
Синтаксис работы с файлами
Открытие файла
Для работы с файлами используются функции:
файл f1, f2, f3
f1 := открыть на чтение("имя_файла.txt")
f2 := открыть на запись("output.dat")
f3 := открыть на добавление("data.txt")
Функции открытия файлов:
открыть на чтение(имя)— открывает существующий файл для чтенияоткрыть на запись(имя)— открывает файл для записи (файл перезаписывается)открыть на добавление(имя)— открывает файл для добавления в конец
Закрытие файла
закрыть(f)
После работы с файлом обязательно закройте его с помощью функции закрыть.
Чтение из файла
алг
нач
цел a, b
лит строка
файл f
f := открыть на чтение("input.txt")
ввод f, a, b | чтение целых чисел из файла
ввод f, строка | чтение строки из файла
закрыть(f)
вывод "a=", a, ", b=", b, нс
кон
Запись в файл
алг
нач
цел i
файл f
f := открыть на запись("output.txt")
нц для i от 1 до 10
вывод f, i, " ", i*i, нс | запись в файл
кц
закрыть(f)
кон
Проверка конца файла
алг
нач
цел число
цел сумма := 0
файл f
f := открыть на чтение("numbers.txt")
нц пока не конец файла(f)
ввод f, число
сумма := сумма + число
кц
закрыть(f)
вывод "Сумма: ", сумма, нс
кон
Функции для проверки состояния файла:
конец файла(файл)— возвращаетда, если достигнут конец файлаесть данные(файл)— возвращаетда, если в файле еще есть данные для чтения
Примеры программ
Пример 1: Чтение чисел и вычисление среднего
алг
нач
цел n, i
вещ сумма := 0.0
вещ число
файл fin, fout
fin := открыть на чтение("numbers.txt")
ввод fin, n
нц для i от 1 до n
ввод fin, число
сумма := сумма + число
кц
закрыть(fin)
fout := открыть на запись("result.txt")
вывод fout, "Количество: ", n, нс
вывод fout, "Сумма: ", сумма, нс
вывод fout, "Среднее: ", сумма / n, нс
закрыть(fout)
кон
Входной файл numbers.txt:
5
10.5
20.3
15.8
12.1
18.4
Пример 2: Копирование файла
алг
нач
лит строка
файл fin, fout
fin := открыть на чтение("source.txt")
fout := открыть на запись("copy.txt")
нц пока не конец файла(fin)
ввод fin, строка
вывод fout, строка, нс
кц
закрыть(fin)
закрыть(fout)
вывод "Файл скопирован", нс
кон
Пример 3: Фильтрация положительных чисел
алг
нач
цел число
файл fin, fout
fin := открыть на чтение("all_numbers.txt")
fout := открыть на запись("positive.txt")
нц пока не конец файла(fin)
ввод fin, число
если число > 0
то вывод fout, число, нс
все
кц
закрыть(fin)
закрыть(fout)
кон
Пример 4: Добавление в лог-файл
алг
нач
лит имя
файл f
f := открыть на добавление("log.txt")
вывод "Введите ваше имя: "
ввод имя
вывод f, "Пользователь: ", имя, нс
закрыть(f)
кон
Пример 5: Подсчёт строк в файле
алг цел подсчитать_строки(лит имя_файла)
нач
цел счётчик := 0
лит строка
файл f
f := открыть на чтение(имя_файла)
нц пока не конец файла(f)
ввод f, строка
счётчик := счётчик + 1
кц
закрыть(f)
знач := счётчик
кон
алг
нач
вывод "Строк в файле: ", подсчитать_строки("text.txt"), нс
кон
Рекомендации
1. Всегда закрывайте файлы
файл f
f := открыть на чтение("file.txt")
| ... работа с файлом ...
закрыть(f) | ОБЯЗАТЕЛЬНО!
2. Проверяйте конец файла при чтении
нц пока не конец файла(f)
ввод f, данные
| обработка данных
кц
3. Используйте понятные имена
| Хорошо
файл f_grades
f_grades := открыть на запись("student_grades.txt")
| Плохо
файл f1
f1 := открыть на запись("aaa.txt")
4. Обрабатывайте ошибки
Если файл не существует при открытии на чтение, программа выдаст ошибку. Убедитесь, что файл создан до запуска программы.
Ограничения
- В браузерной версии поддерживаются только текстовые файлы
- Рекомендуемый размер файла в браузере — до 10 МБ
- Файлы хранятся в localStorage браузера, привязаны к текущему проекту
См. также
- Синтаксис языка — полное описание синтаксиса КуМир
- Примеры программ — готовые примеры программ
- О проекте — уникальные возможности Qumir