добавление байта=0 в строку для записи в файл

Раздел создан для мониторинга текущих потребностей пользователей форума

добавление байта=0 в строку для записи в файл

Сообщение golportret » Чт янв 21, 2010 3:16 am

Коллеги, подскажите, плиз, как добавить в строку, предназначенную для записи в файл, символ (байт), равный 0? StringChar(0) - увы, не работает((
Спасибо.
golportret
 
Сообщения: 12
Зарегистрирован: Чт янв 21, 2010 3:08 am

Сообщение Klinkmann_Msk » Чт янв 21, 2010 7:37 am

To golportret:
А как Вы определили, что StringChar(0) не работает?

Если верить доке:
In a script, you can convert characters of a string to ASCII codes and ASCII codes back to characters by using the StringChar() and StringASCII() functions.
These functions do not support multiple byte character sets. Only characters in the range of 0-255 are supported.
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Сообщение golportret » Чт янв 21, 2010 7:59 am

Klinkmann_Msk писал(а):To golportret:
А как Вы определили, что StringChar(0) не работает?

Если верить доке:
In a script, you can convert characters of a string to ASCII codes and ASCII codes back to characters by using the StringChar() and StringASCII() functions.
These functions do not support multiple byte character sets. Only characters in the range of 0-255 are supported.


Например: при записи в файл этой строки: StringTemp = StringChar(49)+StringChar(0)+StringChar(51) - в файл запишется только 1 и 3 - серединка не запишется(( Мне на самом деле нужно сформированную двоичную строку дополнить до конца строки нулями.
В доке действительно указывается дипазон 0-255, но увы...
Кстати, откуда-то скачивал русскую доку, называется - ITScriptsAndLogic_ru_10_300408.pdf
golportret
 
Сообщения: 12
Зарегистрирован: Чт янв 21, 2010 3:08 am

Сообщение Klinkmann_Msk » Чт янв 21, 2010 8:18 am

To golportret:
Ну, нулевой символ, так же как #10, #13 не отображается.

Кстати, откуда-то скачивал русскую доку, называется - ITScriptsAndLogic_ru_10_300408.pdf
Есть такая. А что в ней особенного???
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Сообщение golportret » Чт янв 21, 2010 8:38 am

Klinkmann_Msk писал(а):To golportret:
Ну, нулевой символ, так же как #10, #13 не отображается.

Кстати, откуда-то скачивал русскую доку, называется - ITScriptsAndLogic_ru_10_300408.pdf
Есть такая. А что в ней особенного???


В доке ничего особенного. Думал - вдруг полезно будет)

А нулевой символ не просто не отображается - он НЕ ПИШЕТСЯ! -> счётчик числа байтов указывает в данном случае 2, а не 3. К тому же файл всегда можно посмотреть, например - HexEditorViewer - нет там нуля(( В реальности записываю, например, 80 байтов, из которых только 7 значащих - остальные 73 - должны быть нулями - файл докладывает, что в него записано 7 байтов, отнюдь не 80!
golportret
 
Сообщения: 12
Зарегистрирован: Чт янв 21, 2010 3:08 am

Сообщение Klinkmann_Msk » Чт янв 21, 2010 8:56 am

To golportret:
Протестировал, Вы правы. Баг. Ещё один :)
А зная, кто переводил эту доку, предпочитаю пользоваться оригинальной :D
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Сообщение golportret » Чт янв 21, 2010 9:39 am

Klinkmann_Msk писал(а):To golportret:
Протестировал, Вы правы. Баг. Ещё один :)
А зная, кто переводил эту доку, предпочитаю пользоваться оригинальной :D


баг-то баг, а что делать? Как-то и не думалось, что аж в InTouch могут быть баги :shock:
А ведь в доке (оригинальной) пишется, что последний параметр функции LineFeed=1 означает запись в текстовый файл, значит предполагается, что бывают и бинарные? :)
golportret
 
Сообщения: 12
Зарегистрирован: Чт янв 21, 2010 3:08 am

Сообщение Klinkmann_Msk » Чт янв 21, 2010 10:14 am

To golportret:
А ведь в доке (оригинальной) пишется, что последний параметр функции LineFeed=1 означает запись в текстовый файл, значит предполагается, что бывают и бинарные?
Там лишь говорится, что LineFeed=1 записывает символ перевода строки (LF) после записи мессаджа в файл.

Что делать?
1. Можно запросить совет у техподдержки Wonderware
2. Написать свой ActiveX, который будет делать корректную запись в файл.
3. Смириться :twisted:

Как-то и не думалось, что аж в InTouch могут быть баги
А чем InTouch лучше другого софта, например Майкрософтского? :)
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Сообщение golportret » Чт янв 21, 2010 10:43 am

Klinkmann_Msk писал(а):To golportret:
А ведь в доке (оригинальной) пишется, что последний параметр функции LineFeed=1 означает запись в текстовый файл, значит предполагается, что бывают и бинарные?
Там лишь говорится, что LineFeed=1 записывает символ перевода строки (LF) после записи мессаджа в файл.

Что делать?
1. Можно запросить совет у техподдержки Wonderware
2. Написать свой ActiveX, который будет делать корректную запись в файл.
3. Смириться :twisted:

Как-то и не думалось, что аж в InTouch могут быть баги
А чем InTouch лучше другого софта, например Майкрософтского? :)

InTouch, как и любая Скада - это система реального времени, не имеющая права иметь баги, по моему мнению! :? (говорят, что на ней автоматизирован тоннель под Ла-Маншем)
Klinkmann_Msk, спасибо большое за поддержку. :)
golportret
 
Сообщения: 12
Зарегистрирован: Чт янв 21, 2010 3:08 am


Вернуться в Потребности

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4