Добавьте в струтуру функцию, которая возвращает строковое представление структуры. Например, toString():
//+------------------------------------------------------------------+ //| строковое представление | //+------------------------------------------------------------------+ string toString() { string result; result=StringFormat("%s ; %.2f ; %.2f ; %.2f ; %d",symbol,deal_return,MAE,MFE,deal_ticket); return(result); }; };
А потом вызывайте эту функцию для вывода в файл, например:
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void PrintMAEStats() { int size=ArraySize(returns); Print("Всего возвратов с данными MAE-MFE: ",size); for(int i=0;i<size;i++) { Print(returns[i].toString()); } Print(""); }
Простите меня наверное за мою тупость... чесн слово не очень разбираюсь в программировании.., и пишу программы на уровне моего понимания mql5, но вот точный пример структуры которую мне нужно вывести в бинарный файл:
struct simpl1 { string Name; // Вот это мне нужно както преобразовать в массив или чтото вроде этого short per1[MAX1][MAX2]; char per2[MAX1][MAX2]; char per3[MAX1]; int per4[MAX1]; int per5[MAX1]; datetime per6[MAX1]; short per7[MAX1]; short per8[MAX1]; short per9[MAX1]; double per10[MAX1]; int count; };Структуру я хочу сохранять полностью, в этом не должно возникнуть проблемм, так как динамических массивов не использую, а вот строка бы мне потребовалась!
Можно конечно уйти от применения строки в структуре путем вывода в небинарный файл с темже названием....
Но я бы хотел обьединить все в одном файле... так как программа подразумевает обработку большого количества файлов, это удобнее было бы делать все в одном файле.
- www.mql5.com
PS. Вы можете попробовать создать для каждой структуры свою собственную функцию записи в бинарный файл с помощью функций:
- FileReadArray
- FileReadBool
- FileReadDatetime
- FileReadDouble
- FileReadFloat
- FileReadInteger
- FileReadLong
- FileReadNumber
- FileReadString
Но как это сделать, я ответить не готов. Не пробовал.
Да именно этой функцией удобнее всего будет писать структуру... и считывать ей обратной...
Возможно можете предложить какое-то другое решение данной проблеммы...
я вот думаю может всентаки использовать несколько файлов с одним названием... но разными расширениями, тоесть например бинарный файл с данными, аналогичный файл с пояснением... и допстим 3й файл с параметрами для обработки...
Вообщем что-то вроде этого!
Плохо что нельзя ограничить строку как например в делфи:
и в дальнейшим это уже можно было бы использовать в структуре и писать в файл... в делфи я все это успешно реализовывал..
str1: string[100];
кажется придумал...
если забить преобразование каждого символа в код с помощью функции, то можно будет иуспользовать массив:
uchar str[10][200];
что будет равно 10 строкам по 200 символов.
:) вот решение само собой и нашлось, благодарю за предложенные варианты!!!
Есть функции преобразования строк в массивы https://www.mql5.com/ru/docs/convert/stringtochararray, https://www.mql5.com/ru/docs/convert/stringtoshortarray и обратные функции https://www.mql5.com/ru/docs/convert/chararraytostring, https://www.mql5.com/ru/docs/convert/shortarraytostring
Заведите в структуре массив с заранее заданным размером. И записывайте в этот массив строку. Это и будет строка с заранее определённым размером.
- www.mql5.com
Есть функции преобразования строк в массивы https://www.mql5.com/ru/docs/convert/stringtochararray, https://www.mql5.com/ru/docs/convert/stringtoshortarray и обратные функции https://www.mql5.com/ru/docs/convert/chararraytostring, https://www.mql5.com/ru/docs/convert/shortarraytostring
Заведите в структуре массив с заранее заданным размером. И записывайте в этот массив строку. Это и будет строка с заранее определённым размером.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Мне нужно сохранить строку в структуру, а структуру затем сохранить в файл, но структуры со строками не сохраняются в файл, как мне сделать так чтобы строка была ограниченная либо сделать массив из символов?!
Тоесть на делфи это было бы примерно так:
buf: array[1..150] of char;
либо еще проще:
str1: string[150];
Возможно ли как-то так описать строку в структуре на mql5, чтобы затем мне можно было сохранить структуру в файл?
Заранее всем спасибо...