PozitiF:
Пробовал таким способом
while (handle=FileOpen(F_Name,FILE_CSV|FILE_READ,';'))
while так не поймет. проверяйте конкретно handle с возможным результатом FileOpen
sergeev:
while так не поймет. проверяйте конкретно handle с возможным результатом FileOpen
while так не поймет. проверяйте конкретно handle с возможным результатом FileOpen
Да я так и подумал, просто я не могу придумать как это дело в цикл засунуть. Сначала я должен попробовать открыть файл News_0 если открылся то выполняем код для отображения на графике, после должен увеличится счётчик и попробовать открыть следующий файл, это ведь должно быть в цикле. Похоже торможу конкретно (, Если честно знаю и владею на приемлемом уровне многими языками программирования, но тут прям завис как-то :-(
PozitiF:
Да я так и подумал, просто я не могу придумать как это дело в цикл засунуть. Сначала я должен попробовать открыть файл News_0 если открылся то выполняем код для отображения на графике, после должен увеличится счётчик и попробовать открыть следующий файл, это ведь должно быть в цикле. Похоже торможу конкретно (, Если честно знаю и владею на приемлемом уровне многими языками программирования, но тут прям завис как-то :-(
Да я так и подумал, просто я не могу придумать как это дело в цикл засунуть. Сначала я должен попробовать открыть файл News_0 если открылся то выполняем код для отображения на графике, после должен увеличится счётчик и попробовать открыть следующий файл, это ведь должно быть в цикле. Похоже торможу конкретно (, Если честно знаю и владею на приемлемом уровне многими языками программирования, но тут прям завис как-то :-(
пользучтесь break или continue для принудительных переходах в циклах.
sergeev:
пользучтесь break или continue для принудительных переходах в циклах.
пользучтесь break или continue для принудительных переходах в циклах.
Вроде бы можно ещё использовать статическую переменную, то есть запустили индюк пошёл выполнятся код выполнился и ждём тика на следующий запуск запустились увеличили статическую переменную на 1 и пошли считывать следующий файл, а если его нету то ничего не делаем, ждём просто пока данный файл не появится ) ? как по вашему так правильно будет ?
Статейка вам в помощь https://www.mql5.com/ru/articles/1543
Открыть для чтения и записи, проверить размер, если размер 0 - удалить. Если размер не 0, значит файл существует.
Спасибо всем кто откликнулся, спасибо за дельные советы, но решил всё же по своему, выкладываю код надеюсь кому пригодится.
extern string Directory = "News"; extern string FileName = "News_"; int start() { int handle; string F_Name, Expansion = ".csv" ; static int st=0; //---- F_Name = Directory + "/" + FileName + st + Expansion; handle=FileOpen(F_Name,FILE_CSV|FILE_READ,';'); // Пробуем открыть файл News_0.csv if(handle < 0) // если файл открыли то продолжаем, иначе завершаем, и каждый новый тик проверям наличие файла News_0.csv. { return(false); } while() { Тут Основной код вывода на график. } FileClose (handle); st++; //---- return(0); }
У меня в DLL с файловыми функциями есть функция FileIs().
Zhunko:
У меня в DLL с файловыми функциями есть функция FileIs().
Я тебя уже пугаюсь. Прямо что ни спросишь, то и есть. Да еще в каких объемах и с каким серьезным подходом.
У меня в DLL с файловыми функциями есть функция FileIs().
granit77:
Я тебя уже пугаюсь. Прямо что ни спросишь, то и есть. Да еще в каких объемах и с каким серьезным подходом.
Да, да... :-)) Есть ещё функция, которая получает список файлов и папок в указанном каталоге, но это в другой библиотеке. :-))
Я тебя уже пугаюсь. Прямо что ни спросишь, то и есть. Да еще в каких объемах и с каким серьезным подходом.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, подскажите пожалуйста как в mql4 можно подсчитать количество файлов в папке и можно ли вообще, перерыл кучу сообщений и тем но ответа так и не нашёл.
И ещё вопрос как можно проверить существование файла без его открытия.
Теперь опишу для чего мне это вообще надо, задумал я написать новостной календарь в терминал (чтобы прямо на графике отображались важные новости) и хочу чтобы новости хранились не в одном файле а допустим с именем 23.05.2011.csv (это если есть возможность определять количество файлов и их имя в директории), но если такой возможности нет то имена файлов будут такими News_0, News_1 и.т.д
Спросите зачем мне это надо можно и в одном файле, дык в одном файле некрасиво и скоро он станет ну оч большим да и заполнять не айс, и хочется чтоб прошлые исторические данные на графике отображались, а если какая то история уже не требуется то просто взял и удалил некоторые старые файлы.
Вот я и подошёл ко второму вопросу, как мне в цикле организовать открытие файла сразу с проверкой, то есть даже не открытие а просто проверка есть ли такой файл или нет.
Пробовал таким способом
while (handle=FileOpen(F_Name,FILE_CSV|FILE_READ,';'))
но вылазит ошибка, я хотел чтоб инструкция выглядела примерно так
int cx=0, handle;
string F_Name;
//----
F_Name = FileName+cx;while (handle=FileOpen(F_Name,FILE_CSV|FILE_READ,';'))
{
Здесь мы выводим на график новости.
и при следующей итерации должен открыватся уже следующий файл.
F_Name = FileName+cx;
cx++;
}
Буду очень признателен за помощь.