Ошибки, баги, вопросы - страница 327

 
mrProF:
Навскидку, в str записывается весь файл...
Добавьте флаг FILE_ANSI , т.к. по умолчанию читает юникод:)
И еще, i будет 15, т.к. там есть пустая строка в конце.
Согласно документации MQL5, фунуция FileReadString "читает из файла строку с текущего положения файлового указателя ... при чтении из csv-файла будет прочитана строка от текущего положения до ближайшего разделителя либо до признака конца текстовой строки". Поэтому не соглашусь с тем, что "записывается весь файл". FILE_ANSI ставить пробовал, ничего не дает. По поводу пустой строки в конце: не совсем понял, поясните, о какой строке вы говорите.
 
DenisR:
Согласно документации MQL5, фунуция FileReadString "читает из файла строку с текущего положения файлового указателя ... при чтении из csv-файла будет прочитана строка от текущего положения до ближайшего разделителя либо до признака конца текстовой строки". Поэтому не соглашусь с тем, что "записывается весь файл". FILE_ANSI ставить пробовал, ничего не дает. По поводу пустой строки в конце: не совсем понял, поясните, о какой строке вы говорите.

 

Это если он правильно найдет запятую, если кодировка не совпадет, то может и не заметить.
Шас дебагером гляну.
Что значит флаг ansi ни чего не дает, скопировал Ваш код, добавил флаг - все ок.
 
И так, вот результаты, как я и сказал.
Без анси читает абрукадабру и не видя запятых, пролетает до конца файла.
С анси, все нормально читает.
Вложения смотрите.
Файлы:
 
-Alexey-:
В МетаЕдиторе по кнопке "Список функций в файле" открывается список. Если его листать вниз, то он кончается на букве P, и дальше не сдвигается(черный треугольник, направленный вниз, становится неактивным), хотя классы есть и на букву R. Просьба исправить.

Нужно больше деталей.

Билд, файл, разрешение...

Только что попробовал на файле ChartObject.mqh - скроллится и вверх и вниз.

 
mrProF:
И так, вот результаты, как я и сказал.
Без анси читает абрукадабру и не видя запятых, пролетает до конца файла.
С анси, все нормально читает.
Вложения смотрите.
С анси у меня читает (5 505 1009), т.е. i теперь вместо 0 почему-то равно 5, размер файла, как и прежде, равен 505 и FileTell,  как и прежде, равен 1009. В МТ4 тот же скрипт читает (15 505 505).
 
alexvd:

Нужно больше деталей.

Билд, файл, разрешение...

Только что попробовал на файле ChartObject.mqh - скроллится и вверх и вниз.

Interesting:
А хотя бы приблизительный размер списка какой? Может по размеру списка ограничение есть...

-Aleksey-

Ровно 100 строк.


Interesting:

Поэкспериментировал с одной из своих библиотек (110 функций), отображаются в списке от 100 до 106 (причем все время разное число, но не 110).

Билд последний, похоже, проблема с числом строк больше 100. В ChartObject.mqh только 62 строки в списке. Разрешение 1680х1050. Windows7, схема шрифтов - укрупненные шрифты.

 
DenisR:
С анси у меня читает (5 505 1009), т.е. i теперь вместо 0 почему-то равно 5, размер файла, как и прежде, равен 505 и FileTell,  как и прежде, равен 1009. В МТ4 тот же скрипт читает (15 505 505).
Хм, у меня 155091009.


//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                                                           mrProF |
//|                                                          http:// |
//+------------------------------------------------------------------+
#property copyright "mrProF"
#property link      "http://"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+


void OnStart()
  {int handle;
   ulong i, size;
   double _Ask, _Bid;
   string str;
      
   handle = FileOpen("test.csv",FILE_CSV|FILE_READ|FILE_ANSI,',');
   
   if (handle != INVALID_HANDLE)
     {
      size = FileSize(handle);
      
      for (i = 0; i < size; i++)
        {
         str = FileReadString(handle);
         _Ask = FileReadNumber(handle);
         _Bid = FileReadNumber(handle);
        
         if (FileIsEnding(handle))
           {
            Print(i," ",size," ",FileTell(handle));
            break;
           }
        }
     }   
      
   FileClose(handle);

   return;

  }
//+------------------------------------------------------------------+


Попробуйте отладкой построчно пройтись, если умеете...

 
mrProF:
Хм, у меня 155091009.



У меня сначала было тоже 15 505 1009, но потом терминал обновился до последней версии (408) и стало 5 505 1009. Но в любом случае, признак конца файла не может быть больше размера самого файла. Сейчас меня это волнует больше всего.
 
alexvd:

Нужно больше деталей.

Билд, файл, разрешение...

Только что попробовал на файле ChartObject.mqh - скроллится и вверх и вниз.

Билды 404 и 408, Win XP Prof SP3, CPU 3.0 GHz и RAM 3.0 Gb.

Размер шрифта и остальные настройки (кроме цветовых) стандартные.

Действия следующие:

1. Создаем библиотеку или любой другой программный модуль;

2. Формируем набор процедур и функций, больше 100. В моем случае было 110 (издевался над своей миграционной библиотекой).

если говорить более конкретно то функций было 110 и модуль вышел размером примерно в 3310 строк.

3. Компилируем модуль;

4. Пытаемся посмотреть список функций.

В списке видел от 100 до 106 функций (при каждой повторной компиляции разное число и состав функций). При этом сначала отображались имена 106 функций, а потом их число стало сокращаться.

При этом все 110 функций не разу в список не попали.

PS

Еще был один странный момент - Не знаю после какого количества функция (но точно меньше 50) новые функции перестали появляться в списке после первой компиляции, приходилось делать две или три повторных компиляции.

Предлагаю или изменить порядок формирования списка, к примеру выделить отдельные классы в виде группового меню (с отображением "начинки" класса в отдельном списке), либо организовать отдельный менеджер по подобию того как это сделано в Delphi (обсуждение подобной просьбы уже было на форуме).

 
-Alexey-:
alexvd:

Нужно больше деталей.

Билд, файл, разрешение...

Только что попробовал на файле ChartObject.mqh - скроллится и вверх и вниз.

Билд последний, похоже, проблема с числом строк больше 100. В ChartObject.mqh только 62 строки в списке. Разрешение 1680х1050. Windows7, схема шрифтов - укрупненные шрифты.

Да, воспроизвел.

Спасибо, будем смотреть. 

Причина обращения: