Есть функция в которую нужно передавать одну из 10 структур в зависимости от условия, где в процессе работы будет происходить её заполнение данными. Описание структур выглядет так
Скажите они описаны правильно?
А вот так вызываю функцию где в переменную DataStruc и должна передаватся выбранная струкутра, однако компилятор выдаёт ошибку, не могу понять как это сделать???
Структура это тип. Вы описали структуру и назвали её Acum. Acum теперь переменная типа структура. Объявляя параметр функции, нужно использовать этот тип, а не struct.
Структура это тип. Вы описали структуру и назвали её Acum. Acum теперь переменная типа структура. Объявляя параметр функции, нужно использовать этот тип, а не struct.
УРРРААААА ПОЛУЧИЛОСЬ!!! Вот ты шаровар конкретный. Спасибо, но скорее это я лошёк о чём собственно и речь что порой не знаю каких то элементарных весчей что приводит к лютой потере времени. А ларчик то просто открывался. Признаюсь в первые пользуюсь структурами. Век живи век учись. Я так и думал каким это образом передать в функцию что бы структура структуры была именно передана. Благодарствую серый ёж :-)))))
Рома, тогда вот тебе ещё вопрос на вскидку. Чтоб не расслаблялся. Шучу :-)
Пишущий советник открывает файл для записи раз в минуту. Скажи существует ли флаг для файла что он уже открыт в данный момент другим советником??? Второй советник читает данные из файла и при инициализации нужно убедится не происходит ли запись файла в данный момент... Спасибо!!!!
Рома, тогда вот тебе ещё вопрос на вскидку. Чтоб не расслаблялся. Шучу :-)
Пишущий советник открывает файл для записи раз в минуту. Скажи существует ли флаг для файла что он уже открыт в данный момент другим советником??? Второй советник читает данные из файла и при инициализации нужно убедится не происходит ли запись файла в данный момент... Спасибо!!!!
Из документации к FileOpen
Возвращаемое значение В случае успешного открытия функция возвращает хэндл файла, который затем используется для доступа к данным файла. В случае неудачи возвращает INVALID_HANDLE.
Выведи хэндл, в глобальную переменную терминала, и проверяй её, есть хэндл или нет. И всегда после обращения к файлу, закрывай его.
Структура это тип. Вы описали структуру и назвали её Acum. Acum теперь переменная типа структура. Объявляя параметр функции, нужно использовать этот тип, а не struct.
Спасибо, не догадывался, что структура, как и класс это тип данных.
Возвращаемое значение В случае успешного открытия функция возвращает хэндл файла, который затем используется для доступа к данным файла. В случае неудачи возвращает INVALID_HANDLE.
Выведи хэндл, в глобальную переменную терминала, и проверяй её, есть хэндл или нет. И всегда после обращения к файлу, закрывай его.
Рома. ну то есть нужно сделать так? Поправь если ошибаюсь.
При открытии файла переменная отвечающия за хендел становится труе и прежде чем считать файл нужно дождаться значение переменной на фальше которое установится при закрытии файла пишущим советником. так это или я не догоняю?
Рома. ну то есть нужно сделать так? Поправь если ошибаюсь.
При открытии файла переменная отвечающия за хендел становится труе и прежде чем считать файл нужно дождаться значение переменной на фальше которое установится при закрытии файла пишущим советником. так это или я не догоняю?
voidOnStart()
{
ResetLastError();
int handle = FileOpen("file.csv", FILE_WRITE | FILE_CSV);
if(handle != INVALID_HANDLE)
{
//handle сохраняешь в GV глобальную переменную терминала if(GlobalVariableSet("handle", handle) != 0)
Print("Файл открыт, значение сохранено в GV: "+(string)GlobalVariableGet("handle"));
FileWrite(handle, TimeCurrent(), Symbol(), EnumToString(_Period));
FileClose(handle);
//После закрытия файла, изменяешь значение и перезаписываешь в GV
handle = -1;
if(GlobalVariableCheck("handle"))
{
if(GlobalVariableSet("handle", handle) != 0)
Print("Файл закрыт, значение изменено в GV: "+(string)GlobalVariableGet("handle"));
}
}
elsePrint("Операция FileOpen неудачна, ошибка ", GetLastError());
}
В другой программе при чтении/записи, проверяешь значение этой глобальной переменной
Когда файл открыт/закрыт из второй программы, так же делаешь по аналогии, записав значение в GV переменную. И в первой программе проверяешь эту переменную. То есть обе программы, должны всегда проверять на возможность доступа к файлу. В данном примере, первая программа, не проверяет файл на доступ. Надеюсь смысл понял, допилишь.
В другой программе при чтении/записи, проверяешь значение этой глобальной переменной
Когда файл открыт/закрыт из второй программы, так же делаешь по аналогии, записав значение в GV переменную. И в первой программе проверяешь эту переменную. То есть обе программы, должны всегда проверять на возможность доступа к файлу. В данном примере, первая программа, не проверяет файл на доступ. Надеюсь смысл понял, допилишь.
Коллеги помогите чайнику.
Есть функция в которую нужно передавать одну из 10 структур в зависимости от условия, где в процессе работы будет происходить её заполнение данными. Описание структур выглядет так
Скажите они описаны правильно?
А вот так вызываю функцию где в переменную DataStruc и должна передаватся выбранная струкутра, однако компилятор выдаёт ошибку, не могу понять как это сделать???
Структура это тип.
Вы описали структуру и назвали её Acum.
Acum теперь переменная типа структура.
Объявляя параметр функции, нужно использовать этот тип, а не struct.
Структура это тип.
Вы описали структуру и назвали её Acum.
Acum теперь переменная типа структура.
Объявляя параметр функции, нужно использовать этот тип, а не struct.
Рома, тогда вот тебе ещё вопрос на вскидку. Чтоб не расслаблялся. Шучу :-)
Пишущий советник открывает файл для записи раз в минуту. Скажи существует ли флаг для файла что он уже открыт в данный момент другим советником??? Второй советник читает данные из файла и при инициализации нужно убедится не происходит ли запись файла в данный момент... Спасибо!!!!
Рома, тогда вот тебе ещё вопрос на вскидку. Чтоб не расслаблялся. Шучу :-)
Пишущий советник открывает файл для записи раз в минуту.
Скажи существует ли флаг для файла что он уже открыт в данный момент другим советником???
Второй советник читает данные из файла и при инициализации нужно убедится не происходит ли запись файла в данный момент... Спасибо!!!!
Из документации к FileOpen
Возвращаемое значение
В случае успешного открытия функция возвращает хэндл файла, который затем используется для доступа к данным файла. В случае неудачи возвращает INVALID_HANDLE.
Выведи хэндл, в глобальную переменную терминала, и проверяй её, есть хэндл или нет.
И всегда после обращения к файлу, закрывай его.
Структура это тип.
Вы описали структуру и назвали её Acum.
Acum теперь переменная типа структура.
Объявляя параметр функции, нужно использовать этот тип, а не struct.
Из документации к FileOpen
Возвращаемое значение
В случае успешного открытия функция возвращает хэндл файла, который затем используется для доступа к данным файла. В случае неудачи возвращает INVALID_HANDLE.
Выведи хэндл, в глобальную переменную терминала, и проверяй её, есть хэндл или нет.
И всегда после обращения к файлу, закрывай его.
Рома. ну то есть нужно сделать так? Поправь если ошибаюсь.
При открытии файла переменная отвечающия за хендел становится труе и прежде чем считать файл нужно дождаться значение переменной на фальше которое установится при закрытии файла пишущим советником. так это или я не догоняю?
Рома. ну то есть нужно сделать так? Поправь если ошибаюсь.
При открытии файла переменная отвечающия за хендел становится труе и прежде чем считать файл нужно дождаться значение переменной на фальше которое установится при закрытии файла пишущим советником. так это или я не догоняю?
В другой программе при чтении/записи, проверяешь значение этой глобальной переменной
Когда файл открыт/закрыт из второй программы, так же делаешь по аналогии, записав значение в GV переменную.
И в первой программе проверяешь эту переменную.
То есть обе программы, должны всегда проверять на возможность доступа к файлу.
В данном примере, первая программа, не проверяет файл на доступ.
Надеюсь смысл понял, допилишь.
В другой программе при чтении/записи, проверяешь значение этой глобальной переменной
Когда файл открыт/закрыт из второй программы, так же делаешь по аналогии, записав значение в GV переменную.
И в первой программе проверяешь эту переменную.
То есть обе программы, должны всегда проверять на возможность доступа к файлу.
В данном примере, первая программа, не проверяет файл на доступ.
Надеюсь смысл понял, допилишь.
Да спасибо большое буду разбиратся.