![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подскажить плз как можно удалить строку после её прочтения, есть какой-нибудь простой способ данной операции?
Прочтения кем? Если Вами, то можете стереть руками. Если роботом, то это бессмысленно. Можно сразу по получению данных принять решение по алгоритму.
Прочтения кем? Если Вами, то можете стереть руками. Если роботом, то это бессмысленно. Можно сразу по получению данных принять решение по алгоритму.
В моём представление если не избавляться от уже обработанной информации, то тогда придётся тратить ресурсы на её повторный анализ.
В большинстве случаев лучше считать весь файл, произвести с данными необходимые изменения в оперативной памяти, а потом перезаписать файл целиком. Это проще, чем перемещать данные внутри открытого файла.
Такой вопрос, связанный с прочтением файла целиком, в случае если один советник в данный момент производит чтение из файла, то другой советник может обратиться к этому же файлу одновременно с первым для произведения своих каких-то действий?
Для эксперимента открыл файл вручную и попробовал произвести запись в него советником, информация отобразилась только после повторного открытия.
Если же пытаться наоборот открыть файл вручную уже во время работы с файлом со стороны советника, то тогда файл просто отказывает открываться, ругается что файл занят процессом.
Не совсем понимаю регламент. Не получится так, что в случае тотальной перезаписи удалиться и то что было ещё не прочитано?
Ещё такой нюанс, что к файлу обращаются разные советники и они не в курсе о том, прочитали уже другие советники относящуюся к ним информацию или нет, чтобы можно было очистить файл целиком.
Такой вопрос, связанный с прочтением файла целиком, в случае если один советник в данный момент производит чтение из файла, то другой советник может обратиться к этому же файлу одновременно с первым для произведения своих каких-то действий?
Для эксперимента открыл файл вручную и попробовал произвести запись в него советником, информация отобразилась только после повторного открытия.
Если же пытаться наоборот открыть файл вручную уже во время работы с файлом со стороны советника, то тогда файл просто отказывает открываться, ругается что файл занят процессом.
Не совсем понимаю регламент. Не получится так, что в случае тотальной перезаписи удалиться и то что было ещё не прочитано?
При открытии файла добавьте флаг совместного чтения FILE_SHARE_READ, возможно потребуется и флаг совместного редактирования\записи. Это уже вам решать, надо-ли.
При открытии файла добавьте флаг совместного чтения FILE_SHARE_READ, возможно потребуется и флаг совместного редактирования\записи. Это уже вам решать, надо-ли.
Ок. Спасибо большое. Полезная информация.
А как удалить только одну строку может кто-нибудь подсказать?
Ок. Спасибо большое. Полезная информация.
А как удалить только одну строку может кто-нибудь подсказать?
Смотря какая строка. Я этим не занимался, но если приспичит, то начну с самостоятельных экспериментов. Кому охота экспериментировать чужие идеи? Разве что от безделья. Посмотрите возможно-ли ваш файл прочесть в SQLite базу, там удалить эту строку и записать взад. Если это можно писать в массив или массив структур, то тоже можно сделать. Но есть проблема в том, что массивы и структуры пишутся в .bin файлы которые ничем другим не откроешь и не посмотришь. В общем, полёт фантазии и эксперименты в попытках достичь результата.
Смотря какая строка. Я этим не занимался, но если приспичит, то начну с самостоятельных экспериментов. Кому охота экспериментировать чужие идеи? Разве что от безделья. Посмотрите возможно-ли ваш файл прочесть в SQLite базу, там удалить эту строку и записать взад. Если это можно писать в массив или массив структур, то тоже можно сделать. Но есть проблема в том, что массивы и структуры пишутся в .bin файлы которые ничем другим не откроешь и не посмотришь. В общем, полёт фантазии и эксперименты в попытках достичь результата.
Обычный текстовый файл... если вы не знаете как это делается, то вопрос отпадает сам собой, каждый как может, на что знаний хватает, так и экспериментирует. Концепция лежит на поверхности что называется и не требует какого-то дополнительного озвучивания.
А как удалить только одну строку может кто-нибудь подсказать?
Самый простой путь я указал - прочитать файл, обработать данные, записать обратно. Редактирование данных файла напрямую без лишних вопросов возможно только посимвольно: считали символ - записали на место удаляемой информации. Блоками перезаписывать будет труднее, т. к. могут получиться наложения разных кусков данных. Таким образом, все это сложно и не совсем понятно, зачем нужно. Неужели так мало оперативной памяти? Но тогда и работа большого количества программ будет невозможна.
Обычный текстовый файл... если вы не знаете как это делается, то вопрос отпадает сам собой, каждый как может, на что знаний хватает, так и экспериментирует. Концепция лежит на поверхности что называется и не требует какого-то дополнительного озвучивания.
Ну, если вы считаете что информации «Обычный текстовый файл...» достаточно, то вам точно к телепатам. Адрес не знаю, сами найдёте. Вы почему-то не учитываете что даже текстовые файлы бывают разными. Есть-ли символ конца строки, что в файле: числа или текст и ещё могут быть нюансы.
Вам самый простой способ Игорь сразу предложил. Вам не понравились, видимо, тогда я предложил самостоятельно поэкспериментировать. А концепция это только для вас на поверхности………
Самый простой путь я указал - прочитать файл, обработать данные, записать обратно. Редактирование данных файла напрямую без лишних вопросов возможно только посимвольно: считали символ - записали на место удаляемой информации. Блоками перезаписывать будет труднее, т. к. могут получиться наложения разных кусков данных. Таким образом, все это сложно и не совсем понятно, зачем нужно. Неужели так мало оперативной памяти? Но тогда и работа большого количества программ будет невозможна.
Тут вот в чём загвоздка: есть программы - 10 штук, которые пишут в файл и есть другие 10, которые из него читают, не хочется чтобы каждая читающая программа каждый раз обрабатывала весь накопленный массив данных за всё время.