Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нужен программист? Оставь заказ и он сам тебя найдет!
thorstein
4
thorstein 2014.03.15 16:24 

здравствуйте.

написал скрипт, сохраняющий инф о прошедшем дне в бин-файл.

Затем пытаюсь его открыть в консольном приложении, и мне выдается какая-то ахинея, где верны только даты в строковых данных.

Вот код скрипта и приложения:

 static void Main()
    {
        BinaryReader datain = new BinaryReader(new FileStream("C://***//Bars.bin", FileMode.Open));
        Console.WriteLine(datain.ReadString());
        for (;;)
        {
            Console.WriteLine();
            string str = datain.ReadString();
            Console.WriteLine(str);
            if (str == "END") break;
            Console.WriteLine(datain.ReadDouble());
            Console.WriteLine(datain.ReadDouble());
            Console.WriteLine(datain.ReadDouble());
            Console.WriteLine(datain.ReadDouble());
            Console.WriteLine(datain.ReadInt64());
        }
        Console.ReadKey();
    }
int Handle=FileOpen("Bars.bin",FILE_BIN|FILE_WRITE);
         int bar=iBarShift(Symbol(),0,StringToTime(StringConcatenate(TimeToStr(Time[0]-24*60*60,TIME_DATE)," 23:55")),true);
         FileWriteString(Handle,TimeToString(Time[bar],TIME_DATE));
         for(int i=bar;;i++){
         string str =StringConcatenate(TimeToStr(Time[i],TIME_DATE)," ", TimeToStr(Time[i],TIME_MINUTES));
         Alert(Handle);
         FileWriteString(Handle,str);
         FileWriteDouble(Handle,iHigh(NULL,0,i),DOUBLE_VALUE);
         FileWriteDouble(Handle,iLow(NULL,0,i),DOUBLE_VALUE);
         FileWriteDouble(Handle,iOpen(NULL,0,i),DOUBLE_VALUE);
         FileWriteDouble(Handle,iClose(NULL,0,i),DOUBLE_VALUE);
         FileWriteLong(Handle,iVolume(NULL,0,i));
         if(str==StringConcatenate(TimeToStr(Time[0]-24*60*60,TIME_DATE)," 00:00")){Alert(i); break;}}
         FileWriteString(Handle,"END");

Я так и не врублюсь в чем косяк. Выдает при прогоне ошибку о чтении данных при закрытом потоке, хотя до строки "END" так и не доходит.

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий