Тема непосредственно работы с файлами в общем-то практически исчерпана. Для полноты картины осталось привести пару примеров передачи данных в робот/индикатор.
Код целиком в этот раз приводить не будем. Приведем только часть подвергшуюся изменениям из предыдущего робота и дополнительные строки для ориентации при вставлении кода, выводящего в файл исторические данные.
Код: Выделить всё
AddGlobalVariable("Control", Types.String, @"c:\\dell\\StartHistory");//файл управления советником
AddGlobalVariable("N", Types.Int, 500);
}
function OnUpdate()
{
ShowMessage("Значение I=" + I);
string candle ="OHLS " + Input1.Open[-1000] + "," + Input1.High[-1000];
ShowMessage(candle);
if(System.IO.File.Exists(Control+".csv"))
{
using (System.IO.StreamReader sr = System.IO.File.OpenText(Control+".csv"))
{
string s = "";
s = sr.ReadLine();
ShowMessage("Строка "+s);
N=Int32.Parse(s);
ShowMessage("Число в строке, преобразованное в целое = " + N);
sr.Close(); sr.Dispose();
}
I=0;
System.IO.File.Move(Control+".csv",Control+"1.csv");
//System.IO.File.Delete(Control+".csv")
}
if(I==0)
{
//string path = @"c:\dell\History.csv";
using (System.IO.StreamWriter sw = System.IO.File.CreateText(path))
{
ShowMessage("Производится запись в файл History.csv");
sw.WriteLine("Num,Date,Time,Open,High,Low,Close,Volume,VolumeAsk,VolumeBid,OpenInterest");
for(int i=0;i<N;i++)
{
sw.Write(""+i+","+BarDate(-i)+","+BarTime(-i)+"," +Input1.Open[-i] +","+Input1.High[-i]+","+Input1.Low[-i]+","+
Input1.Close[-i]+","+Input1.Volume[-i]+","+ Input1.VolumeAsk[-i]+","+Input1.VolumeBid[-i]+","+
Input1.OpenInterest[-i]+ "\n");
}
В этом виде наш робот будет читать число и з файла StartHistory.csv, записывать его в переменную N и выводить в файл History.csv заданное количество строк.
Создадим в папке из которой читает робот файл StartHistory1.csv и запишем в него целое число
После числа надо обязательно нажать Enter, чтобы курсор переместился на вторую строку.
После запуска робот выведет в файл первый раз число строк по умолчанию, заданное переменной N.
Удялим файл History.csv и затем переименуем файл StartHistory1.csv в StartHistory.csv.
Наш робот обнаружит наличие файла и выведет заданное нами число строк истории в файл History.csv.
Осталось только привести пример чтения из файла различных типов данных, т.к. для этого, в общем случае, необходимо явное преобразования строки к заданному типу данных.