Ru-Board.club
← Вернуться в раздел «Программы»

» Autoplay Media Studio

Автор: tavria2
Дата сообщения: 08.04.2012 19:55
Rezchik123

Цитата:
в программе The Bat показывается сообщение нормально если поставить функцию перекодировки в набор символов Cyrillik(KOI8-R).

Попробуй мой плагин ConvT - конвертор кодировок.

Код: -- константы кодировок
nKOI8R = 20866;
nANSI = 1251;

sKOI8R = "...";    -- здесь должна быть строка в кодировке KOI8-R

-- преобразование строки из KOI8-R в ANSI
sAnsi = ConvT.String(sKOI8R, nKOI8R, nANSI);
Автор: Rezchik123
Дата сообщения: 08.04.2012 21:09
tavria2!!!


Все работает спасибо!!!
Автор: Lexua
Дата сообщения: 09.04.2012 22:45
tavria2

Цитата:
Попробуй мой плагин ConvT - конвертор кодировок.

Спасибо за подсказку. Действительно это выход, хотя меня это не напрягало, но всё же.
Однако в таблице не достаёт символа в кирилице. При перекодировке получается
Цитата:
Проверка Ѓ 2
Это так, на заметочку
Автор: tavria2
Дата сообщения: 09.04.2012 23:15
Lexua

Цитата:
Однако в таблице не достаёт символа № в кирилице. При перекодировке получается

Плагин не содержит никаких таблиц, все преобразования производятся с помощью WinApi.
Так, что это косяк Мicrosoft.

З.Ы. Спасибо за выявление проблемы - я посмотрю, что можно сделать.
Автор: Lexua
Дата сообщения: 09.04.2012 23:44
tavria2
Ну тогда до кучи
Цитата:
ПрTт отчTт А українську мову він розуміЃ?

Т.е. буква ё и Ё в русском и ІЄєЇ в украинском у них тоже не в почёте... Это то что по ходу обнаружилось. Весь алфавит естественно не проверял
Автор: tavria2
Дата сообщения: 10.04.2012 00:03
Lexua
Вот нашел обсуждение проблемы KOI8-R и №, этот символ считается недопустимым для KOI8-R.

У меня буква ё и Ё нормально конвертируется, а для украинских символов нужно применять кодировку KOI8-U = 21866.

З.Ы. Зря я на Мicrosoft списал косяк.
Автор: Zloy_Gelud
Дата сообщения: 10.04.2012 09:19
UDF (User-Defined Function): [more=Encoding.KOI8To1251]
Код: if not Encoding then Encoding = {}; end

-- Description: Converts cyrillic string from KOI8-R to Microsoft 1251 codepage
Encoding.KOI8To1251 = function (sString)
local sResult = "";
local nCode
for i = 1, #sString do
nCode = String.Asc(String.Mid(sString, i, 1));
if nCode == 63 then
sResult = sResult .. String.Char(185);
elseif nCode == 163 then
sResult = sResult .. String.Char(184);
elseif nCode == 179 then
sResult = sResult .. String.Char(168);
elseif nCode >= 233 and nCode <= 240 then
sResult = sResult .. String.Char(nCode - 33);
elseif nCode >= 242 and nCode <= 245 then
sResult = sResult .. String.Char(nCode - 34);
elseif nCode >= 201 and nCode <= 208 then
sResult = sResult .. String.Char(nCode + 31);
elseif nCode >= 210 and nCode <= 213 then
sResult = sResult .. String.Char(nCode + 30);
elseif nCode >= 225 and nCode <= 226 then
sResult = sResult .. String.Char(nCode - 33);
elseif nCode >= 228 and nCode <= 229 then
sResult = sResult .. String.Char(nCode - 32);
elseif nCode >= 193 and nCode <= 194 then
sResult = sResult .. String.Char(nCode + 31);
elseif nCode == 247 then
sResult = sResult .. String.Char(184);
elseif nCode == 231 then
sResult = sResult .. String.Char(195);
elseif nCode == 246 then
sResult = sResult .. String.Char(198);
elseif nCode == 250 then
sResult = sResult .. String.Char(199);
elseif nCode == 230 then
sResult = sResult .. String.Char(212);
elseif nCode == 232 then
sResult = sResult .. String.Char(213);
elseif nCode == 227 then
sResult = sResult .. String.Char(214);
elseif nCode == 254 then
sResult = sResult .. String.Char(215);
elseif nCode == 251 then
sResult = sResult .. String.Char(216);
elseif nCode == 253 then
sResult = sResult .. String.Char(217);
elseif nCode == 255 then
sResult = sResult .. String.Char(218);
elseif nCode == 249 then
sResult = sResult .. String.Char(219);
elseif nCode == 248 then
sResult = sResult .. String.Char(220);
elseif nCode == 252 then
sResult = sResult .. String.Char(221);
elseif nCode == 224 then
sResult = sResult .. String.Char(222);
elseif nCode == 241 then
sResult = sResult .. String.Char(223);
elseif nCode == 215 then
sResult = sResult .. String.Char(226);
elseif nCode == 199 then
sResult = sResult .. String.Char(227);
elseif nCode == 196 then
sResult = sResult .. String.Char(228);
elseif nCode == 197 then
sResult = sResult .. String.Char(229);
elseif nCode == 214 then
sResult = sResult .. String.Char(230);
elseif nCode == 218 then
sResult = sResult .. String.Char(231);
elseif nCode == 198 then
sResult = sResult .. String.Char(244);
elseif nCode == 200 then
sResult = sResult .. String.Char(245);
elseif nCode == 195 then
sResult = sResult .. String.Char(246);
elseif nCode == 222 then
sResult = sResult .. String.Char(247);
elseif nCode == 219 then
sResult = sResult .. String.Char(248);
elseif nCode == 221 then
sResult = sResult .. String.Char(249);
elseif nCode == 223 then
sResult = sResult .. String.Char(250);
elseif nCode == 217 then
sResult = sResult .. String.Char(251);
elseif nCode == 216 then
sResult = sResult .. String.Char(252);
elseif nCode == 220 then
sResult = sResult .. String.Char(253);
elseif nCode == 192 then
sResult = sResult .. String.Char(254);
elseif nCode == 209 then
sResult = sResult .. String.Char(255);
else
sResult = sResult .. String.Mid(sString, i, 1);
end
end
return sResult;
end
Автор: Lexua
Дата сообщения: 10.04.2012 11:27
Поэкспериментировал еще. Вообщем не конвертится Ёё ни в том ни в другом случае. Т.е. ни ConvT ни с Encoding.KOI8To1251. Но это можно пережить, я думаю. Да и № тоже не часто используется.


Цитата:
ПрЈт отЈЈт ? 4.
- это результат конвертирования "Прёт отчёт № 4" при помощи Encoding.KOI8To1251 Тут ещё и с ч наблюдается проблема. Мож я чё не так делаю?
Автор: Zloy_Gelud
Дата сообщения: 10.04.2012 12:07
Lexua

Вот, что у меня:



Код: local sTest = "Прёт отчёт № 4";
local sKOI8R = ConvT.String(sTest, 1251, 20866, false);
Dialog.Message("KOI8-R", '"' ..sTest .. "\"\r\n\r\n в кодировке KOI8-R: \r\n\r\n\"" .. sKOI8R..'"', MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
local sANSI_UDF = Encoding.KOI8To1251(sKOI8R);
local sANSI_ConvT = ConvT.String(sKOI8R, 20866, 1251);
Dialog.Message("KOI8-R > ANSI", "Конвертируем обратно в ANSI:\r\n\r\nConvT\t\t\tUDF\r\n"..sANSI_ConvT.."\t\t"..sANSI_UDF, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
Автор: tavria2
Дата сообщения: 10.04.2012 16:27
Lexua
У меня после преобразования ConvT и Encoding.KOI8To1251 - нормально отображаются: ч, ё, Ё.

Может у тебя проблема не в конвертации, а со шрифтом?

З.Ы. Т.к. выяснилось, что символ "№" официально не входит в KOI8-R, возникает вопрос:
Нужно ли в плагине ConvT, организовывать поддержку этого символа при конвертировании из KOI8-R? Нужно учитывать тот факт, что каждая дополнительная операция проверки и преобразования, может негативно отразиться на скорости обработки строк.
Автор: METxABC
Дата сообщения: 10.04.2012 21:47
Добрый вечер. Вы не могли бы мне помочь в создании скрипта?
Мне необходимо чтобы при нажатии на кнопку, менялась строка в текстовом файле (.txt).
Пробовал вот этот скрипт, но почему-то ничего не вышло.

Код: local nLine = 10; -- номер строки для изменения
local sNewData = "New_Value"; -- новое значение
local sFilePath = _SourceFolder.."\\File.txt"; -- путь к файлу
if File.DoesExist(sFilePath) then
local tLines = TextFile.ReadToTable(sFilePath);
if tLines then
tLines[nLine] = sNewData;
TextFile.WriteFromTable(sFilePath, tLines, false);
end
end
Автор: ubian
Дата сообщения: 10.04.2012 22:25
METxABC
Ответил на твой вопрос в материале: Здесь
Автор: Lexua
Дата сообщения: 10.04.2012 22:29
Zloy_Gelud, tavria2!
Не, ну просто я то экспериментирую в сочетании с плагином smtp т.е. я отправляю сообщение себе на почту и получаю сии строки в TheBat. Проверка, что называется, в боевых условиях В этом и есть причина разных результатов.


Цитата:
Нужно ли в плагине ConvT, организовывать поддержку этого символа при конвертировании из KOI8-R?
Я думаю, обойдёмся.

Автор: Unique_nickname
Дата сообщения: 10.04.2012 23:39
Lexua
tavria2

Цитата:
Т.к. выяснилось, что символ "№" официально не входит в KOI8-R

я бы опционально конвертил в заглавную N.
Автор: PAVELNEXT
Дата сообщения: 11.04.2012 11:15
Привет, помогите пожалуйста разобраться с ComboBox хочу заполнить его из текстового файла следующим образом:

не чётные строки (1, 3, 5, 7 и т.д) - чтобы добавились в Item Text
а чётные строки (2, 4, 6, 8 и т.д) - чтобы добавились в Item Data

Как это сделать? может есть примерчики
Автор: tavria2
Дата сообщения: 11.04.2012 12:27
PAVELNEXT

Код: local tData = TextFile.ReadToTable("AutoPlay\\Docs\\data.txt");
local sItemText = "";

for nIdx, sRow in pairs(tData) do
if (Math.Mod(nIdx, 2) == 1) then -- если нечетная строка
sItemText = sRow; -- запоминаем текст
elseif (Math.Mod(nIdx, 2) == 0) then -- если четная строка
ComboBox.AddItem("ComboBox1", sItemText, sRow); -- добавляем в ComboBox1 текст и данные
end
end
Автор: PAVELNEXT
Дата сообщения: 11.04.2012 13:11
tavria2
Большое спасибо !!!
Автор: tavria2
Дата сообщения: 12.04.2012 16:59
2All

В плагине SMTP обнаружена проблема с кодировкой.
Текст письма передается в кодировке KOI8, но в служебном заголовке письма информация о кодировке отсутствует, в результате чего, почтовый агент пытается подставить кодировку по умолчанию (для русских это windows-1251), вот и получается абракадабра.

В связи с вышеизложенным, хочу провести опрос:

Нужен ли нам плагин SMTP, с нормальной поддержкой кодировки или это уже не актуально?

Пожалуйста, ответы только в личку!
Автор: Lexua
Дата сообщения: 15.04.2012 16:51
Эммм... Я что-то пропустил, или плагина 7-zip для AMS на данный момент не существует?

Христос Воскрес!!!
Автор: lerik2703
Дата сообщения: 17.04.2012 12:44
Lexua

Цитата:
Я что-то пропустил, или плагина 7-zip для AMS на данный момент не существует

если не ошибаюсь плагина собственно и не было!была библиотека!
Автор: tavria2
Дата сообщения: 20.04.2012 12:26
2All
SmtpT Action Plugin 1.0.0.0 - это дополнение к AMS 8.x, которое позволяет отправлять электронную почту из вашего проекта.
SmtpT является альтернативой плагину SMTP от reteset, в отличие от последнего, умеет работать с кодировками.
Автор: Zloy_Gelud
Дата сообщения: 20.04.2012 13:14
tavria2
Ошибки выдает не в кодировке ANSI..
Автор: tavria2
Дата сообщения: 20.04.2012 14:57
Zloy_Gelud

Цитата:
Ошибки выдает не в кодировке ANSI..

SMTP от reteset тоже выдает ошибки не в кодировке ANSI.

Это известная проблема, которая наблюдается только в WinXP SP3 из-за кривого cdosys.dll v6.2.4.0. Если посмотреть свойства этой dll, то даже здесь можно увидеть каракули вместо русского.

В редакторе ресурсов видно следующее:
v6.2.4.0 Language/Code Page: 1049/1200
v6.2.2.0 Language/Code Page: 1049/1251

Решение: Замена на cdosys.dll v6.2.2.0 из WinXP SP2.
Автор: Zloy_Gelud
Дата сообщения: 20.04.2012 15:25
tavria2 -- спасибо за информацию.
Автор: ubian
Дата сообщения: 22.04.2012 21:31
tavria2
Можно ли эту DLL поменять программой на AMS с правами администратора, система ругатся не будет?
Автор: tavria2
Дата сообщения: 22.04.2012 22:27
ubian

Цитата:
Можно ли эту DLL поменять программой на AMS с правами администратора, система ругатся не будет?

Ты хочешь менять ее у клиента?
Этого делать нельзя и не нужно, т.к. эта dll некорректна только в русских сообщениях об ошибке, которые важны в основном при отладке твоего проекта.
Для клиента делай свой контроль заполнения полей.
Автор: ubian
Дата сообщения: 22.04.2012 22:45
tavria2
Да использовать программу будут только в офисе... И нужны все кодировки основные...
Хотя можно спрашивать о замене у клиента, думаю.
Автор: tavria2
Дата сообщения: 22.04.2012 22:55
ubian
Ты наверное меня не так понял, на кодировку писем эта dll никак не влияет - менять у клиента ничего не нужно.
Проблема только со встроенными в нее русскими описаниями ошибок, которые клиенту не нужны. Ну допустим получит клиент сообщение о проблеме с сокетом и что? Ему станет сразу все ясно?
(ИМХО) Для клиента нужно сделать свой контроль заполнения полей и после отправки выдать результат: отправлено письмо или нет.

З.Ы. По желанию можешь заменить эту dll у себя на машине для отладки проекта, если у тебя XP SP3.
Автор: MrDum32
Дата сообщения: 23.04.2012 07:22
Почему-то на семерке иногда вместо запуска ошибка, и если создавать авторан на русском, в моем случае, я получаю каракули, приходится использовать только английский текст.
Автор: tavria2
Дата сообщения: 23.04.2012 08:03
MrDum32

Цитата:
Почему-то на семерке иногда вместо запуска ошибка

После запуска чего?:
запуск AMS?
открытие проекта в AMS?
запуск откомпилированного проекта?

Где содержание ошибки?
Неинформативно!

Цитата:
и если создавать авторан на русском, в моем случае, я получаю каракули...

См. в шапке: Ответы на наиболее часто задаваемые вопросы [?]

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140

Предыдущая тема: Media Player Classic - Home Cinema (MPC-HC)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.