sergey1294: так я умею сравнивать, но if(a<b<c) оно работает и красивее выглядит хотя в справке вроде про это ни чего не сказано. а как быстрее работает?
Ваше выражение равносильно вот этому
if(a<(b<c))
вы сравниваете b и c, результатом этого сравнения будет 0 или 1 после чего вы этот результат сравниваете с а.
sergey1294: так я умею сравнивать, но if(a<b<c) оно работает и красивее выглядит хотя в справке вроде про это ни чего не сказано. а как быстрее работает?
if(a<b<c)Alert("a<b<c");
if(a=b=c=3)Alert("a=b=c=3");
if(a==b==c==3)Alert("a=b=c=3");
if(a==b==c)Alert("a=b=c"); //Вот нежелание работать этого примера для меня странно (хотя может так и задумано)
Urain:
Ваше выражение равносильно вот этому
вы сравниваете b и c, результатом этого сравнения будет 0 или 1 после чего вы этот результат сравниваете с а.
При такой логике все становится понятным, только я почему-то думаю что сначала сравнятся a и b (может не прав конечно)...
При чтении .csv файла возникло сразу несколько проблем. С целью попытки выяснения причин неправильной работы написал простенький скрипт. Скрипт читает данные из файла "test.csv". Как только доходит до конца файла, печатает в журнал номер итерации цикла "for", размер файла и позицию файлового указателя. Но тут происходят непонятные вещи, а именно: в файле "test.csv" всего 15 строк, поэтому номер итерации цикла "for" должен быть 14, но в журнале печатается 0. Размер файла печатается правильно, но позиция файлового указателя конца файла почему-то имеет размер больше, чем размер самого файла. Код скрипта:
voidOnStart()
{
int handle;
ulong i, size;
double _Ask, _Bid;
string str;
handle = FileOpen("test.csv",FILE_CSV|FILE_READ,',');
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;
}
Файл "test.csv" и журнал во вложении. У кого какие мысли по данному вопросу?
P.S. Самое интересное, что в MT4 этот скрипт работает без ошибок.
При чтении .csv файла возникло сразу несколько проблем. С целью попытки выяснения причин неправильной работы написал простенький скрипт. Скрипт читает данные из файла "test.csv". Как только доходит до конца файла, печатает в журнал номер итерации цикла "for", размер файла и позицию файлового указателя. Но тут происходят непонятные вещи, а именно: в файле "test.csv" всего 15 строк, поэтому номер итерации цикла "for" должен быть 14, но в журнале печатается 0. Размер файла печатается правильно, но позиция файлового указателя конца файла почему-то имеет размер больше, чем размер самого файла. Код скрипта:
Файл "test.csv" и журнал во вложении. У кого какие мысли по данному вопросу?
P.S. Самое интересное, что в MT4 этот скрипт работает без ошибок.
Навскидку, в str записывается весь файл... Добавьте флаг FILE_ANSI , т.к. по умолчанию читает юникод:) И еще, i будет 15, т.к. там есть пустая строка в конце.
в первом посте вы делаете операции присвоения, множественное каскадное присвоение допустимо. Тут же вы пытаетесь делать множественное сравнение.
так я умею сравнивать, но if(a<b<c) оно работает и красивее выглядит хотя в справке вроде про это ни чего не сказано. а как быстрее работает?
Ваше выражение равносильно вот этому
if(a<(b<c))вы сравниваете b и c, результатом этого сравнения будет 0 или 1 после чего вы этот результат сравниваете с а.так я умею сравнивать, но if(a<b<c) оно работает и красивее выглядит хотя в справке вроде про это ни чего не сказано. а как быстрее работает?
Вот так работает
а так нет
Ваше выражение равносильно вот этому
вы сравниваете b и c, результатом этого сравнения будет 0 или 1 после чего вы этот результат сравниваете с а.Ваше выражение равносильно вот этому
вы сравниваете b и c, результатом этого сравнения будет 0 или 1 после чего вы этот результат сравниваете с а.Ясно, но вот прикол на вот это выражение не ругается но оно не работает
... только я почему-то думаю что сначала сравнятся a и b (может не прав конечно)...
Ясно, но вот прикол на вот это выражение не ругается но оно не работает
Нет тут прикола, просто учитывать нужно приоритеты операций и замечание от Urain.
На это вырожение тоже не ругается, однако оно глючит по страшному
Подробно данный вопрос описан с правке, раздел "Приоритеты и порядок операций" (нужно учитывать приоритет и порядок выполнения).
таим образом если я все правильно понял сравнение по мнению компилятора выглядит примерно так (с учетом замечаний от Николая)
А хотя бы приблизительный размер списка какой? Может по размеру списка ограничение есть...
Ровно 100 строк.
Поэкспериментировал с одной из своих библиотек (110 функций), отображаются в списке от 100 до 106 (причем все время разное число, но не 110).
При чтении .csv файла возникло сразу несколько проблем. С целью попытки выяснения причин неправильной работы написал простенький скрипт. Скрипт читает данные из файла "test.csv". Как только доходит до конца файла, печатает в журнал номер итерации цикла "for", размер файла и позицию файлового указателя. Но тут происходят непонятные вещи, а именно: в файле "test.csv" всего 15 строк, поэтому номер итерации цикла "for" должен быть 14, но в журнале печатается 0. Размер файла печатается правильно, но позиция файлового указателя конца файла почему-то имеет размер больше, чем размер самого файла. Код скрипта:
Файл "test.csv" и журнал во вложении. У кого какие мысли по данному вопросу?
P.S. Самое интересное, что в MT4 этот скрипт работает без ошибок.
При чтении .csv файла возникло сразу несколько проблем. С целью попытки выяснения причин неправильной работы написал простенький скрипт. Скрипт читает данные из файла "test.csv". Как только доходит до конца файла, печатает в журнал номер итерации цикла "for", размер файла и позицию файлового указателя. Но тут происходят непонятные вещи, а именно: в файле "test.csv" всего 15 строк, поэтому номер итерации цикла "for" должен быть 14, но в журнале печатается 0. Размер файла печатается правильно, но позиция файлового указателя конца файла почему-то имеет размер больше, чем размер самого файла. Код скрипта:
Файл "test.csv" и журнал во вложении. У кого какие мысли по данному вопросу?
P.S. Самое интересное, что в MT4 этот скрипт работает без ошибок.
Добавьте флаг FILE_ANSI , т.к. по умолчанию читает юникод:)
И еще, i будет 15, т.к. там есть пустая строка в конце.