Всеп привет.
Сталкнулся с такой бедой, ну ни как не получается переписывать файл.
FileOpen("files.txt",FILE_READ|FILE_WRITE," ");
Вывод в файл идет нормально, но каждый раз добавляется новая строка.
...
Как сделать что-бы при новой записи она стерала строчку и писалась вместо нее? Желательно с примером.
Сталкнулся с такой бедой, ну ни как не получается переписывать файл.
FileOpen("files.txt",FILE_READ|FILE_WRITE," ");
Вывод в файл идет нормально, но каждый раз добавляется новая строка.
...
Как сделать что-бы при новой записи она стерала строчку и писалась вместо нее? Желательно с примером.
int nTik; int handle = FileOpen("files.txt",FILE_CSV|FILE_READ|FILE_WRITE); if(handle<1) { Print("Файл files.txt не обнаружен или не открыт, последняя ошибка ", GetLastError()); return(false); } FileSeek(handle, 0, SEEK_SET); FileWrite(handle,nTik);
Плохой подход. Переместив файловый указатель в начало файла, вы потом должны убедиться, что указатель конца файла тоже перемещен. Пример: пишем вашим способом в файл 123456789, закрываем файл, открываем снова, пишем более короткую строку 987. Вместо ожидаемого содержимого 987, имеем 987456789, то есть остался хвост прежнего содержимого.
Возможно два варианта решения проблемы. Первый. Должен быть флаг, который обнуляет файл. Это - вопрос к разработчикам, может его и не предусмотрели.
Второй - FileDelete(). Эта функция удаляет файл, и новый запишется чисто, без присоединений и хвостов.
Возможно два варианта решения проблемы. Первый. Должен быть флаг, который обнуляет файл. Это - вопрос к разработчикам, может его и не предусмотрели.
Второй - FileDelete(). Эта функция удаляет файл, и новый запишется чисто, без присоединений и хвостов.
Вобщем проблему решил, все шеколадно. Но вот теперь как правельно дать понять эксперту на выполнение торговли из параметров файла.
В txt помещается такая строка
TIME: 2006.02.08 16:00 SELL = 0.0000 BUY =1.1922
Все в одну строчку.
Так вот как появилась скажем BUY > 0 т.е. конкретное число, то через 2 бара эксперт делает BUY и при SELL > 0 закрывает. Для SELL порядок тотже только обратный.
Объясните на примере как из прочитанного файла определить что BUY = Числу, а не 0.
В txt помещается такая строка
TIME: 2006.02.08 16:00 SELL = 0.0000 BUY =1.1922
Все в одну строчку.
Так вот как появилась скажем BUY > 0 т.е. конкретное число, то через 2 бара эксперт делает BUY и при SELL > 0 закрывает. Для SELL порядок тотже только обратный.
Объясните на примере как из прочитанного файла определить что BUY = Числу, а не 0.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сталкнулся с такой бедой, ну ни как не получается переписывать файл.
FileOpen("files.txt",FILE_READ|FILE_WRITE," ");
Вывод в файл идет нормально, но каждый раз добавляется новая строка.
Так инфа в файл кидается:
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0.857
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0.8678 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0.8562
Как сделать что-бы при новой записи она стерала строчку и писалась вместо нее? Желательно с примером.