Исходные данные вводятся в программу с помощью внешних переменных типа string
(блок 1-2). В блоке 3-4 открыты и описаны переменные. Для удобства обработки в
программе введенные данные записываются (блок 4-5) в строковый массив Erray[][].
Каждое событие (сведения, характеризующие новость) представлено в двух элементах
массива по второму измерению. Размер первого измерения (количество строк в массиве)
определяется количеством новостей, в данном случае 5. Для того, чтобы при опробовании
эксперта на демо-счёте не вводить вручную все значения, можно загрузить файл настроек
эксперта example_news.set; файл настроек эксперта должен находиться в каталоге
Каталог_терминала\presets \.
В блоке 5-6 выполняется открытие файла. Если операция закончилась неудачей, то после
сообщения пользователю функция start() заканчивает работу. Если файл открыт удачно, то
управление передаётся оператору цикла for, в блок 6-7. Количество итераций в цикле
ограничивается количеством новостей, а именно, числом 5. В общем случае количество
вводимых значений, размер массива Erray и количество итераций можно увеличить до
желаемого.
На каждой итерации цикла выполняется проверка: не является ли какое либо из
введенных значений пустым. Для этого вычисляется длина строковых значений элементов
массива Erray. Если какое-то из них имеет нулевую длину, то это расценивается как
отсутствие текущего и следующих сообщений, поэтому текущая итерация прерывается.
До тех пор, пока не нашлось пустое значение элемента массива, выполняется запись
значений двух элементов массива в файл. Для записей значений в csv-файл используется
функция FileWrite():
12.6.8 Функция FileWrite()
int FileWrite(int handle, ...)
Функция предназначена для записи данных в файл CSV, разделитель между данными
включается автоматически. После записи в файл добавляется признак конца строки "\r\n".
При выводе числовые данные преобразуются в текстовый формат (см. функцию Print()).
Функция возвращает количество записанных символов или отрицательное значение, если
происходит ошибка.
Параметры:
handle - файловый описатель, возвращаемый функцией FileOpen();
... - данные, разделенные запятыми. Может быть не больше 63 параметров.
832