Skip to content

A program that reads a list of mathematical expressions from a file, calculates the results, and writes them to another file.

Notifications You must be signed in to change notification settings

PolinaSvet/taskRegexp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Regexp + Go

Структура программы:

1) Пакет "calcregexp" считывает из файла список математических выражений, считает результат и записывает в другой файл
pkg\calcregexp\calcregexp.go
pkg\calcregexp\calcregexp_test.go

Используя методы и структуры пакетов ioutils и regexp:

  1. считывает из файла список математических выражений
  2. считает результат
  3. записывает в другой файл

Файлы со списком математических выражений:
./ui/data/input.txt
./ui/data/input1.txt

!!! Пакет "calcregexp" создан для тестовой работы с регулярными выражениями, это не полноценный математический парсер!!! Расчеты проверены на простых тестовых задачах в рамках задания!!!

2) Пакет "api" реализует характерную для REST API схему запросов для работы с БД.
pkg\api\api.go
Запросы приходят на URL, соответствующий коллекции ресурсов:

  • расчитать одно выражение "/expLine"
  • расчитать из файла список математических выражений "/expFile"

Для обозначения действий над данными используются методы протокола HTTP:

  • POST для создания ресурса
    api.router.HandleFunc("/expLine", api.addExpLineHandler).Methods(http.MethodPost, http.MethodOptions)
    api.router.HandleFunc("/expFile", api.addExpFileHandler).Methods(http.MethodPost, http.MethodOptions)

3) Для визуализации и организации REST API схемы запросов используется HTML+Javascript:
cmd\server\ui\html\base.html
cmd\server\ui\html\routes.html

4) Для регистрации ошибок создан пакет logger.
pkg\logger\logger.go
cmd\server\ui\data\log.json - файл для хранения сообщений

Требования к системе:

Суть задания — написать программу, которая считывает из файла список математических выражений, считает результат и записывает в другой файл.

Пример входного файла:
5+4=?
9+3=?
Сегодня прекрасная погода
13+7=?
4-2=?

Пример файла с выводом:
5+4=9
9+3=12
13+7=20
4-2=2

Пожелания к программе:

  • Использовать методы и структуры пакетов ioutils и regexp.
  • Программа должна принимать на вход 2 аргумента: имя входного файла и имя файла для вывода результатов.
  • Если не найден вывод, создать.
  • Если файл вывода существует, очистить перед записью новых результатов.
  • Использовать буферизированную запись результатов.

Все выше перечисленные требования к системе учтены в проекте.

Revision

  • 1: package calcregexp

Usage:

1.Enter this command to start the program:

go run server.go -inpfile "./ui/data/input.txt" -outfile "./ui/data/output.txt"

  1. inpfile: This parameter is path to input data file.

  2. outfile: This parameter is path to output data file.

go run server.go

defualt value (-inpfile "./ui/data/input.txt" -outfile "./ui/data/output.txt")

2.Open the web browser and go to:

http://127.0.0.1:8080/ or  localhost:8080

Authors:

@PolinaSvet

!!! It is for test now !!!

About

A program that reads a list of mathematical expressions from a file, calculates the results, and writes them to another file.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published