Сформулируйте, пожалуйста, конкретные вопросы, которые у вас остались к данному моменту (и которые будут заканчиваться знаком вопроса).Может быть @Евгений Кислов или кто о еще имел опыт с подобным
Сформулируйте, пожалуйста, конкретные вопросы, которые у вас остались к данному моменту (и которые будут заканчиваться знаком вопроса).Может быть @Евгений Кислов или кто о еще имел опыт с подобным
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Евгений Кислов,
1. Имеются ли какие-либо библиотеки/скрипты или иные способы записи текстового файла в кодировке UTF-16, что бы имелась возможность записи WSTRING переменных, или преобразование текстовых файлов из UTF-8 в UTF-16 внутренними ресурсами CODESYS?
2. Имеется ли возможность чтения и присваивания переменной STRING/WSTRING (или группе переменных) более 255 символов? Если да, то можно ли найти где либо пример реализации данного процесса?
3. Если отсутствует возможность записи файлов формата UTF16, возможно ли реализовать условный "scroll bar" для возможности перелистывания текста в текстовом поле, если весь не уместится? Если возможно примеры реализации или укажите с какой стороны начать копать
Спасибо,
1.
1.1. Да. Функции и ФБ записи в файл принимают на вход указатель на записываемые данные - непринципиально, что именно расположено по этому указателю.
1.2. Да. См. библиотеку CmpSysExec, которая позволяет вызывать утилиты Linux, и утилиту iconv, которая позволяет изменять кодировку файлов.
https://linux.die.net/man/1/iconv
2. Да. Ограничение в 255 символов не связано с типами STRING/WSTRING - это ограничение библиотек Standard/Standard64.
См. библиотеку StringUtils, которая позволяет работать со строками любых размеров.
https://content.helpme-codesys.com/e...lic-Parts.html
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
...ну, можно:
* Закосить под ДРЕГ СКАЛА (это я опять тут про Чернобыль начитываюсь, ахахх - там ДРЕГ выдавала логи действий АЭС на принтер) и выводить лог на принтер онлайн
* Писать его же в файл онлайн (добавили строку в конец файла и всё)
* Загружать его в массив или какой-то список объектов и выводить в таблицу на визуализации построчно.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net
Евгений Кислов,
Спасибо за ответы..
Нашел почему были иероглифы, сейчас выполнил так:
Оказывается очень важно:Код:wsByteOrderMark[0] := 16#FEFF; hFile:=SysFile.SysFileOpen(strFileName, am := sysfile.AM_APPEND_PLUS, ADR(udiFileErrorCode)); wPrintLine:=WCONCAT( wsByteOrderMark," "); wPrintLine:=WCONCAT("Версия ПО: ", OSU.CP1251_TO_UNICODE(sSterPV)); wPrintLine:=WCONCAT(wPrintLine, "$N"); SysFile.SysFileWrite(hFile, ADR(wPrintLine), 2*TO_DWORD(WLEN(wPrintLine)), ADR(udiFileErrorCode)); SysFile.SysFileClose(hFile);
1. Добавить к файлу маркер кодировки (UTF16 BE) в моем случае 16#FEFF
2. Указывать 2*TO_DWORD в размере, иначе обрубает строку, а также нужно WSTRING(40)- указать длину, иначе также становится непонятное форматирование, сохранение в нужном формате.
Таким образом отделался малой кровью)
Евгений Кислов, Cs-Cs,
Спасибо огромное!
Последний раз редактировалось ShikuS; 13.12.2023 в 14:58.
Пожалуйста! ^_^
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net
...именно поэтому об этом написано в документе по работе с файлами в п. 6.2. ("Сохранение текстовых файлов в кодировке Unicode")
https://ftp.owen.ru/CoDeSys3/11_Docu...hives_v3.0.pdf
Рад, что у вас всё получилось.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk