Чтение файла

 
void OnTick()
  {
//---
        ResetLastError();
   int handle = FileOpen("data.bin",FILE_BIN|FILE_READ|FILE_ANSI);
   if (handle== INVALID_HANDLE) Print ("!!!!!!!!");
   double   str = FileReadDouble (handle);
   FileClose(handle);    
      Print (str);
    Print (GetLastError());
  }

файл bin имеет имя data.bin и хендл = 1.

считывается полная белиберда, хотя в файле записано число 1551.485

 

Где ошибка ?  

 
dimeon:

Где ошибка ? 

а где файл?

 
sergeev:

а где файл?

http://us.ua/1083581/

Что-то прям сюда залить не получилось... 

Файлообменник, файловый обменник, хостинг файлов, файловое хранилище, файлообменник бесплатный, файлообменник без регистрации, передать большой файл, ukrshara, укршара
  • us.ua
Файлообменник, файловый обменник, хостинг файлов, файловое хранилище, файлообменник бесплатный, файлообменник без регистрации, передать большой файл, файлообменник бесплатный без регистрации, ukrshara, укршара
 
dimeon:

http://us.ua/1083581/

Что-то прям сюда залить не получилось... 

а как ВЫ его сделали бинарным? :-) ВЫ просто написали текстовый а потом сохранили как bin ? 

:-) Это же неправильно.

Я прикрепил файл бинарный!!!!!!! Ваша функция будет работать.

Кстати чтоб добавить файл, отличный от типа на форуме, заархивируйте его в зип.  

Файлы:
data.zip  1 kb
 
2013.04.05 11:53:19 1 (EURUSD,H1) 1551.485

 
Vladon:
2013.04.05 11:53:19 1 (EURUSD,H1) 1551.485

Бинарным я его делаю из MQL4 

 handle=FileOpen("data.bin",FILE_BIN|FILE_WRITE);
  if(handle<1)
    {
     Print("Файл data.bin не обнаружен, последняя ошибка ", GetLastError());
     return(false);
    }

double x= (Ask+Bid)/2;
 FileWrite(handle,x);
FileClose(handle);

 или подскажите другой способ, как данные загнать из МТ4 в МТ5

И как вы получили такую строчку ?  

 
dimeon:

Бинарным я его делаю из MQL4 

 или подскажите другой способ, как данные загнать из МТ4 в МТ5

И как вы получили такую строчку ?  

строчку получил когда записал бинарник :

 

 handle = FileOpen("data.bin",FILE_BIN|FILE_WRITE);
   if (handle== INVALID_HANDLE) Print ("!!!!!!!!");
      string str4 = FileWriteDouble (handle,1551.485);
   FileClose(handle);    
      Print (str4);
 

ВЫ читали в мт4 вообще для чего Ваша функция? 

 

int FileWrite( int handle, ...)
Функция предназначена для записи данных в файл CSV, разделитель между данными включается автоматически. После записи в файл добавляется признак конца строки "\r\n". При выводе числовые данные преобразуются в текстовый формат (см. функцию Print()).


Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
Файловые операции / FileWrite - Документация по MQL5
 

с этим разобрался. А как в МТ5 окрыть файл в подпапке? 

Просто путь прописать - не подходит .

типа ( int handle = FileOpen("\\MT4\\"+"data.csv",FILE_CSV|FILE_READ|FILE_ANSI);  
файл лежит в MQL5\Files\MT4
 
dimeon:

с этим разобрался. А как в МТ5 окрыть файл в подпапке? 

Просто путь прописать - не подходит .

типа ( int handle = FileOpen("MT4\\"+"data.csv",FILE_CSV|FILE_READ|FILE_ANSI);