QUIK. QLUA. Функция чтения CSV файла — различия между версиями
Материал из ТХАБ.РФ
Админ (обсуждение | вклад) м |
Админ (обсуждение | вклад) м |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | {{ | + | {{Торговый робот |
− | | | + | |Название = Функция чтения CSV файла |
− | | | + | |Язык программирования = QLua |
− | | | + | |Описание = Выводит данные в Excel через CVS файл |
− | + | |Торговая система = QUIK | |
− | | | + | |Русификация = Комментарии |
− | |||
− | |||
− | |||
− | |||
− | | | ||
}} | }} | ||
Пытался решить вопрос с интерфейсом для QLUA. | Пытался решить вопрос с интерфейсом для QLUA. | ||
− | Испробовал IUP, VCL и еще какая-то библиотека была. Но ни одна библиотека стабильно не работала, через какой-то промежуток времени Квик вставал колом. | + | Испробовал [[IUP]], [[VCL]] и еще какая-то библиотека была. Но ни одна библиотека стабильно не работала, через какой-то промежуток времени Квик вставал колом. |
Т.к. нам красоты не надо, а удобство хочется, то решил пусть интерфейсом будет Excel (файл.CSV). | Т.к. нам красоты не надо, а удобство хочется, то решил пусть интерфейсом будет Excel (файл.CSV). | ||
Строка 26: | Строка 21: | ||
---- | ---- | ||
function File_Read(filename) | function File_Read(filename) | ||
− | |||
local col = 1 | local col = 1 | ||
local pat = "(.*)" | local pat = "(.*)" | ||
Строка 67: | Строка 61: | ||
== Ссылки == | == Ссылки == | ||
− | * https://smart-lab.ru/blog/576041.php | + | * https://smart-lab.ru/blog/576041.php Первоисточник |
[[Категория:QUIK]] | [[Категория:QUIK]] | ||
[[Категория:QLua]] | [[Категория:QLua]] | ||
− | [[Категория: | + | [[Категория:Функция]] |
+ | [[Категория:Скрипт]] |
Текущая версия на 16:31, 21 ноября 2019
|
Пытался решить вопрос с интерфейсом для QLUA.
Испробовал IUP, VCL и еще какая-то библиотека была. Но ни одна библиотека стабильно не работала, через какой-то промежуток времени Квик вставал колом.
Т.к. нам красоты не надо, а удобство хочется, то решил пусть интерфейсом будет Excel (файл.CSV).
функция для чтения CSV файлов:
- можно задать до 20 столбиков параметров, количество строк не ограничено.
- запятую заменяет на точку в вещественном числе
- удаляет заголовок столбца, т.е. на выходе получаем массив начинающийся со второй строки
function File_Read(filename) local col = 1 local pat = "(.*)" local A={};local B={};local C={};local D={};local E={}; local F={};local G={};local H={};local I={};local J={}; local K={};local L={};local M={};local N={};local O={}; local P={};local Q={};local R={};local S={};local T={}; local file, err = io.open(filename,«r») if err ~= nil then PrintDbgStr(«err read file: »..err); return; end str = file:read() for var in string.gmatch (str, ";") do col=col+1 end for i = 2, col do pat = pat..";(.*)" end for line in io.lines(filename) do --PrintDbgStr(line) local _,_,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s20 = string.find(line,pat) --PrintDbgStr(tostring(s1)) table.insert(A,s1);table.insert(B,s2);table.insert(C,s3);table.insert(D,s4);table.insert(E,s5); table.insert(F,s6);table.insert(G,s7);table.insert(H,s8);table.insert(I,s9);table.insert(J,s10); table.insert(K,s11);table.insert(L,s12);table.insert(M,s13);table.insert(N,s14);table.insert(O,s15); table.insert(P,s16);table.insert(Q,s17);table.insert(R,s18);table.insert(S,s19);table.insert(T,s20); end file:close() table.remove(A,1);table.remove(B,1);table.remove(C,1);table.remove(D,1);table.remove(E,1); table.remove(F,1);table.remove(G,1);table.remove(H,1);table.remove(I,1);table.remove(J,1); table.remove(K,1);table.remove(L,1);table.remove(M,1);table.remove(N,1);table.remove(O,1); table.remove(P,1);table.remove(Q,1);table.remove(R,1);table.remove(S,1);table.remove(T,1); --Print_Table® Print_Table(S) Print_Table(T) return A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T end
Во время работы робота смело изменяем CSV файл и сохраняем, и новые параметры у вас в роботе.
CSV файл можно держать открытым.
Ссылки
- https://smart-lab.ru/blog/576041.php Первоисточник