Детский юмористический рассказ "Попандос!"

 
Вчера ничто не предвещало беды. Был пасмурный день. Я как обычно, мирно писал эксперта. После мозгового штурма своего кода и выискивания проблемы на тему "а может у меня с генами не все в порядке" было обнаружено, что тестер, блин, при старте генерирует всего 5000 баров истории перед датой начала теста. Но это было только начала конца.
Дальше, когда я попытался вникнуть в следуюшие глюки, решил было закатать в файл массив для проверки. Но не тут то было. На вполне определенном шаге цикла начинает выдаваться ошибка "File Write Error". Я спокойно нажимаю кнопку тестера "Стоп". Смотрю на получившийся файл. Все вроде нормально, содержимое типа то что надо, накатал 86 метров, но хочу ж чтоб дописал полностью. Запускаю снова. И опять таже фигня - "File write error". Тогда я закрываю терминал вообще. И решаю посмотреть на каком этапе появляется егог. Вставляю обычную строку Print(GetLastError()). И тут Остапа понесло. В терминале эксперт не запускается ваще!!! Перезапускаю терминал - пишет, что EA.ex4 не найден!! Я смотрю в папку - реально нету. Перекомпилирую - компилятор пишет что все чики пуки, а файла нету. Я закрываю терминал. Компиляю - файл есть. Открываю терминал - файл исчезает и пишется что EA.ex4 не найден!!! Я в шоке!!! Закрываю опять. Компилю, присмотрелся - а файл занимает 0 байт. Ошибок нет, ну и файла тоже нет. Думаю чо за фигня. Пересохраняю под другим именем - EA1.mq4. Компилирую - файл 0 байт. Ну думаю все кранты. Решаю перезагрузить винду. И вот тут и наступил пипец. После перезагрузки исходный файл эксперта EA.mq4 - стает 0 байт!!!! Это потом когда эмоции улеглись подумалось - ошибка может из-за переполнения диска. И верно. Места свободного 0. Так нет чтобы сразу нормально написать не "File write error" а что то типа "Disk full". А то сиди и втыкай в свой алгоритм, ищи ошибки, которых нету. 
Внимание загадка: как тогда редактор во-первых смог создать копию эксперта и умудрился не предупредить о переполненном диске, а во-вторых самое главное СТЕРЕТЬ файл эксперта? Какой партизан однако. Во блин, а если бы чо? Если бы не копия, то к кому обращаться??? Неделя работы на и не малой на! Вобщем смеялся я нервно минут десять. А потом пошел пить чай.

Короче, вы уж разберитесь с этим молчанием ягнят, а то словей нет одни слюни.
 
sergeev писал (а) >>
Короче, вы уж разберитесь с этим молчанием ягнят, а то словей нет одни слюни.

И метаквоты должны теперь подтирать слюни каждому?

Может быть самим как-то следить за своими компами, соплями, ногтями и прочими бедами.

 
sergeev писал (а) >>
Внимание загадка: как тогда редактор во-первых смог создать копию эксперта и умудрился не предупредить о переполненном диске, а во-вторых самое главное СТЕРЕТЬ файл эксперта?
При компиляции происходит сохранение файла, а любой редактор (даже написанный автором вопроса :) ) сначала создает файл нулевой длинны, а потом пишет в него данные. Другое дело - обработка файловых ошибок при сохранение, но ... это другое дело и главное - их уже поздно обрабатывать.
 
timbo писал (а) >>

И метаквоты должны теперь подтирать слюни каждому?

Может быть самим как-то следить за своими компами, соплями, ногтями и прочими бедами.

Я согласен, это все лирика (и сопли тоже). Я просто был серъезно удивлен, почему файл кода эксперта ea.mq4 стал нулевой длины! Мне кажется это  маааленькой такой недоработочкой метаквотов.

 
У меня с индикатором такое было - файл 0 длины. Но наученый раньше горьким опытом, всегда имею копии. И времени жалко было разбираться - очень редко такое бывает..
 
sergeev писал (а) >>

Я согласен, это все лирика (и сопли тоже). Я просто был серъезно удивлен, почему файл кода эксперта ea.mq4 стал нулевой длины! Мне кажется это маааленькой такой недоработочкой метаквотов.


нее

---

мне например исключительно лень! перед каждой файловой операцией проверть! а не кончилось ли место на винте

полагаю что винты сейчас как правило большие

и ошибку возникающую при этом я просто обозначаю ошибка записи

---

кстати масса программ не проверяют место на винте...

тем более ВИНДОВС как правило предупреждают пользователя " место на винте закончилось удалите лишнее "

---

почему то мне кажется это забота самого пользователя

 
YuraZ писал (а) >>

почему то мне кажется это забота самого пользователя


Ну и как вы посоветуете контролировать компилятор, чтоб он mq4 не обнулил?

 
YuraZ писал (а) >>

полагаю что винты сейчас как правило большие

Я тоже так полагал, пока жена не начала качать с торрента сериалы... Оказалось, это была просто моя выдумка, которую женушка легко и непринужденно опровергла (по мотивам соседней ветки о реальности и выдумках).

P.S. Алексей, проще всего вставить функцию API, проверяющую свободное место на диске.

 
Mathemat писал (а) >>
Я тоже так полагал, пока жена не начала качать с торрента сериалы...

ааа... жжёшь нипадецки... пеши исчо

 
Mathemat писал (а) >>

Я тоже так полагал, пока жена не начала качать с торрента сериалы... Оказалось, это была просто моя выдумка, которую женушка легко и непринужденно опровергла (по мотивам соседней ветки о реальности и выдумках).

P.S. Алексей, проще всего вставить функцию API, проверяющую свободное место на диске.

Да, наверно даже не только функцию, а какой-то свой KeyboardHook делать надо. 

- Нажимается клавиша F7 (компиляция). Он перехватывает нажатие этой клавиши

LRESULT CALLBACK KeyboardHook(int nCode,WPARAM wParam,LPARAM lParam)
{
if((lParam>>31)&1) // Если клавиша нажата...
if (wParam==VK_F7)
  {
  }

- Далее смотрим на свободное место на диске. Если место есть, то компиляция разрешена, выдаем в очередь сообщений 

SendMessage(hWnd, WM_CHAR...)

- Если нет, то выдаем ругательство на тему.

 

Будем надеяться, что мой новенький бааальшой маниторчег от Hannspree (Hann Verona 22" wide, 2 ms) - это все же не мое очередное заблуждение. Но это будет верифицировано окончательно 15-летним сыном, который через 3 недели приедет из "отсидки на курорте" у родичей и продолжит отжигать, тоже нипадецки.

P.S. Эхх, сам пальцы не расставишь - кто ж их тебе расставлять-то будет...

P.P.S. Алексей, зачем тебе этот крючок? От этих крючков только геморр получишь. Просто тривиально проверяй свободное место после запуска терминала - и все.