Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
к оставшимся снизу строкам применить функцию
https://www.mql5.com/ru/docs/strings/stringtrimleft
Как Вы предлагаете её применить?
Начиная с позиции где мы стоим можно затереть всё это не сложно.
к оставшимся снизу строкам применить функцию
https://www.mql5.com/ru/docs/strings/stringtrimleft
затем почистить весь получившийся кусок текста и сохранить файл
то есть из нескольких строк сделать одну и поменять на пустую строку
не пробовал, но предполагаю что поможет
Немного в логику ни въехал этого мероприятия. Думаю можно за этот вариант зацепиться.
То есть вы предлагаете уничтожить несколько строк. Хорошо не вопрос. А дальше?
Мне кажется если поставить в этом месте конец файла то получится что нужно. Предложили средствами WinAPI. Но вот примера пока найти не могу.
как вариант: можно сделать недо-базу :-) когда пишется громадный файл с большими записями (даже с переменным размером, например со строками, даже CSV) - пишите рядом индексный файл с фиксированными записями первичный_ключ:смещение:размер;
свечки очевидно и естественно сразу сортированы по времени, потому что они физически так поступают; процедура удаления любых/произвольных свечек будет выглядеть как обнуление поля "размер" в индексе.
если удаления часты, потребуется отдельная процедура squeeze - раз в неделю (например в ночь с сб на вск) перелопатить оба файла
PS/ в реальной жизни примерно так видео пишется во всяких DVR, рядом ведётся индексный файл по опорным кадрам.
Максим, как искать нужную запись не вопрос. Это не сложно. Вопрос как из файла истории котировок, который отображается в открытом окне удалить данные о свечке. Если проще описать задачу, то нужно не переписывая файл удалить n*48 байт начиная с конца. Как это сделать? Файл открыт средствами MQL.
По ходу осилил написать
Но надо ещё какими-то функциями открывать файл и устанавливать в нужную позицию.
Максим, как искать нужную запись не вопрос. Это не сложно. Вопрос как из файла истории котировок, который отображается в открытом окне удалить данные о свечке. Если проще описать задачу, то нужно не переписывая файл удалить n*48 байт начиная с конца. Как это сделать? Файл открыт средствами MQL.
и при этом чтобы терминал это правильно понял и скорректировал отображение истории :-) с этого надо было начинать. В результате все предыдущие 4 страницы обсуждений посвящены несколько иному
и при этом чтобы терминал это правильно понял и скорректировал отображение истории :-) с этого надо было начинать. В результате все предыдущие 4 страницы обсуждений посвящены несколько иному
Терминал пока всё понимает и хорошо прорисовывает. Вопросов с этим совсем нет. Вопросы в файловых функциях. После того как файл корректируется графики обновляются. Вперёд рисуется прекрасно, нужно чтобы рисовалось назад во времени.
Походу в одном из примеров нашёл импорт функций.
Кто работал с этими функциями? Кто может написать как можно открыть файл, установить указатель в нужную позицию?
Всего две строчки. Кто может написать? Никогда не работал с этими функциями, не знаю как делать.
https://www.mql5.com/ru/docs/files/fileopen
https://www.mql5.com/ru/docs/files/fileseek
примеры кода внизу страниц
По ходу осилил написать
Но надо ещё какими-то функциями открывать файл и устанавливать в нужную позицию.
Я Вам дал ссылку на официальные доки от micrisoft, там есть все, что нужно, для работы с файлами. Если Вам азы нужны, то начните с функции CreateFile. Поспрашивайте, может кто подскажет какие путные русскоязычные ресурсы по тематике, я в основном, как-то по официальным докам разбирался в свое время. Как вариант, посмотри тут http://vsokovikov.narod.ru/New_MSDN_API/Menage_files/fn_createfile.htm не знаю поможет или нет, все таки там тоже справочник, а не учебник.
Походу в одном из примеров нашёл импорт функций.
Кто работал с этими функциями? Кто может написать как можно открыть файл, установить указатель в нужную позицию?
Всего две строчки. Кто может написать? Никогда не работал с этими функциями, не знаю как делать.
Средствами MQL (https://www.mql5.com/ru/docs/files/fileseek, https://stackoverflow.com/a/57284988, https://www.mql5.com/en/forum/99755#comment_2949328):
Средствами WinAPI:
См. функции из https://gist.github.com/currencysecrets/11353588
Походу в одном из примеров нашёл импорт функций.
Кто работал с этими функциями? Кто может написать как можно открыть файл, установить указатель в нужную позицию?
Всего две строчки. Кто может написать? Никогда не работал с этими функциями, не знаю как делать.
Начнем с того, что тут типы неправильные. Разберем на примере CreateFile. Ниже сигнатуры из Вашего примера и оригинальная.
С именем файла все норм.
DWORD - это:
на местном - это uint
А вот теперь HANDLE:
вот так он определен. Упс, указатель. Для 64-битной архитектуры int - это как то маловато.
Аналогично и LPSECURITY_ATTRIBUTES
тоже указатель.
Так-то да, для mql4, в целом пойдет, но все же лучше определить правильно:
А вот если SECURITY_ATTRIBUTES захочешь пользоваться, то тут уже простым переносом не получится, там танцы с бубном устраивать нужно. В общем, тема интересная.