Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#1: 2008-04-23 21:49:38 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 16:10:51
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#2: 2008-04-24 00:06:12 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 16:10:51
карма: 0

0
Разработчик
Ответов: 26303
Рейтинг: 2146
#3: 2008-04-24 01:18:06 ЛС | профиль | цитата
А вот так работает


Add(MainForm,2125730,322,315)
{
Left=20
Top=105
}
Add(Charset,3691239,448,322)
{
Type=5
link(onCharset,16065901:doEvent1,[])
link(Text,15818421:Text,[])
}
Add(Edit,15818421,448,259)
{
Left=10
Top=10
Width=140
Text="TEST"
}
Add(Button,10384128,399,322)
{
Left=160
Top=10
link(onClick,3691239:doCharset,[])
}
Add(Edit,7743179,574,322)
{
Left=10
Top=40
Width=140
}
Add(Hub,16065901,497,322)
{
link(onEvent1,7743179:doText,[])
link(onEvent2,14309614:doCharset,[(551,335)(551,384)])
}
Add(Edit,15814045,630,378)
{
Left=10
Top=70
Width=140
Text="Тест"
}
Add(Charset,14309614,574,378)
{
Type=4
link(onCharset,15814045:doText,[])
}


Да не поддерживает он русские символы

К тому же тэг code пишется не как kod, так что исправь
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#4: 2008-04-24 01:34:36 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 16:10:51
карма: 0

0
Разработчик
Ответов: 26303
Рейтинг: 2146
#5: 2008-04-24 13:16:03 ЛС | профиль | цитата
Действительно, муть какая-то, а не Base64
------------ Дoбавленo:

Мдяяя уж... Надо же умудритсья перепутать кодер с декодером, да еще и глючным слегка
карма: 22

0
Ответов: 5446
Рейтинг: 323
#6: 2008-04-24 13:36:54 ЛС | профиль | цитата
nesco, ага, вспоминаю, как я давным-давно этот компонент под PocketPC переделывал...
карма: 1

0
Разработчик
Ответов: 26303
Рейтинг: 2146
#7: 2008-04-24 14:59:47 ЛС | профиль | цитата
И вообще-то TEST -> WIN_BASE64 не VEVTVA==, а VEVTVA0K

Вот, специально проверил


MIME-Version: 1.0
Content-Type: application/octet-stream; name="1.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="1.txt"

VEVTVA0K


------------ Дoбавленo:


iarspider писал(а):
вспоминаю, как я давным-давно этот компонент под PocketPC переделывал...

А переделать под Delphi -- руки не дошли, ай как не хорошо
Пришлось мне доделывать.

------------ Дoбавленo:


Поправил. Исправленный компонент можно взять здесь [svn]Charset.pas[/svn]

А вот пример для проверки



Add(MainForm,2125730,105,84)
{
Left=20
Top=105
Width=882
Height=533
}
Add(Charset,3691239,322,203)
{
Type=5
link(onCharset,555026:doEvent1,[])
link(Text,3205121:Text,[])
}
Add(Button,10384128,105,154)
{
Left=585
Top=465
link(onClick,12406264:doEvent1,[])
}
Add(Charset,14309614,266,154)
{
Type=4
link(onCharset,3205121:doText,[])
}
Add(ListBox,2754603,217,84)
{
Left=5
Top=5
Width=510
Height=240
Strings=#76:QGVjaG8gb2ZmDQpTRVQgVEhFRklMRT1EOlxIaUFzbV9BcmNoaXZlc1xIaUFzbV9iMTY4XFByb2pl|76:Y3Q0LmV4ZQ0KZWNobyBMaW5raW5nICVUSEVGSUxFJQ0KbGQuZXhlICAtcyAtLXN1YnN5c3RlbSB3|76:aW5kb3dzICAgLW8gRDpcSGlBc21fQXJjaGl2ZXNcSGlBc21fYjE2OFxQcm9qZWN0NC5leGUgRDpc|76:SGlBc21fQXJjaGl2ZXNcSGlBc21fYjE2OFxsaW5rLnJlcw0KaWYgZXJyb3JsZXZlbCAxIGdvdG8g|76:bGlua2VuZA0KZ290byBlbmQNCjphc21lbmQNCmVjaG8gQW4gZXJyb3Igb2NjdXJlZCB3aGlsZSBh|76:c3NlbWJsaW5nICVUSEVGSUxFJQ0KZ290byBlbmQNCjpsaW5rZW5kDQplY2hvIEFuIGVycm9yIG9j|52:Y3VyZWQgd2hpbGUgbGlua2luZyAlVEhFRklMRSUNCjplbmQNCg==|
}
Add(ListBox,3205121,322,133)
{
Left=520
Top=5
Width=350
Height=240
}
Add(ListBox,11992148,434,203)
{
Left=5
Top=250
Width=510
Height=240
}
Add(Hub,12406264,161,154)
{
link(onEvent1,10370000:doReplace,[])
link(onEvent2,3691239:doCharset,[(210,167)(210,209)])
}
Add(Replace,10370000,217,154)
{
SubStr="
"
link(onReplace,14309614:doCharset,[])
link(Str,2754603:Text,[])
}
Add(MultiElementEx,555026,378,203)
{
link(onEvent,11992148:doAdd,[])
}
BEGIN_SDK
Add(EditMultiEx,3298112,21,21)
{
WorkCount=#8:doEvent1|
EventCount=#7:onEvent|
link(doEvent1,16022767:doEvent1,[(35,27)(35,62)])
}
Add(Length,12482042,189,63)
{
link(onLength,11379823:doOperation,[])
}
Add(Hub,16022767,49,56)
{
OutCount=3
link(onEvent1,9274913:doWork2,[])
link(onEvent2,12482042:doLength,[])
link(onEvent3,2836500:doFor,[(122,76)(122,139)])
}
Add(Math,11379823,238,63)
{
OpType=7
Op2=76
ResultType=0
}
Add(For,2836500,231,133)
{
IncludeEnd=1
link(onEvent,13390295:doCopy,[])
link(onStop,14618879:doData,[(271,146)(271,202)])
link(End,11379823:Result,[])
}
Add(Memory,10048801,140,56)
{
Default=String()
}
Add(Copy,13390295,294,133)
{
Position=1
Count=76
link(onCopy,4142365:doEvent1,[])
link(Str,10324033:Var2,[])
}
Add(Hub,4142365,350,133)
{
link(onEvent1,14200331:doWork2,[])
link(onEvent2,3443125:doDelete,[(394,146)(394,216)])
}
Add(DoData,14618879,280,196)
{
link(onEventData,14200331:doWork3,[(445,202)])
link(Data,14041757:Var2,[(286,177)(146,177)])
}
Add(GetDataEx,14041757,133,105)
{
link(Data,10048801:Value,[])
}
Add(Delete,3443125,406,210)
{
Count=76
link(onDelete,9274913:doWork3,[(449,216)(449,253)(102,253)])
link(Str,10324033:Var3,[(412,114)])
}
Add(GetDataEx,10324033,287,105)
{
Angle=3
link(Data,14041757:Var3,[])
}
Add(HubEx,14200331,441,126)
{
link(onEvent,3298112:onEvent,[(462,139)(462,83)(309,83)(309,27)])
}
Add(HubEx,9274913,98,49)
{
link(onEvent,10048801:doValue,[])
}
END_SDK


Оказывается, и на прошлом релизе работает, только надо было поменять кодер и декодер местами
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2008-04-24 16:36:06 ЛС | профиль | цитата
не понял причину правок от 955 ревизии - какая ошибка исправлялась?

#pas
if j mod 58 =0 then begin
...
end;
что это такое
карма: 27
0
Разработчик
Ответов: 26303
Рейтинг: 2146
#9: 2008-04-24 16:54:27 ЛС | профиль | цитата
Dilma
1-е: Cтандарт предусматривает длину строки в кодировке Base64 не более 76 символов (57 в Win).
2-е: В исходной строке при декодировании в Win из Base64 не должно быть символов #13#10, она должна быть непрерывной
3-e: В старом релизе перпутан кодер с декодером.

Я привел пример, где исходные, взятые извне, стандартные строки Base64 декодируются в текст и обратно. Из примера видно, что после декодирования и кодирования обратно, исходные строки не меняются.
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#10: 2008-04-24 17:50:57 ЛС | профиль | цитата
nesco,
1-e: выходом всех кодеров base64 является непрерывная строка, не разделенная на строки. См. пакеты WEB, QT и прочие распространенные реализации
2-е: не должно там быть не только этих символов, но и любых иных, кроме 64-х, указанных в стандарте. Почему декодер должен удалять только два из них

Т.е. указанные выше правки это не fix ошибки, а косметические доработки под конкретные задачи. Доработка 1 кроме всего прочего ведет еще и к потере совместимости с ранее созданными схемами. Поэтому видимо данные "улучшения" придется откатывать.
карма: 27
0
Разработчик
Ответов: 26303
Рейтинг: 2146
#11: 2008-04-24 18:20:04 ЛС | профиль | цитата
Dilma писал(а):
указанные выше правки это не fix ошибки

Да, понял, но 3-й пункт надо оставить.
------------ Дoбавленo:

Откатил, но привел в соответствие Coder и Decoder Base64
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#12: 2008-04-24 19:00:14 ЛС | профиль | цитата
nesco, ну вообще-то 3-й пункт надо исправлять перестановкой названий в ini файле. А такой фикс опять таки же ведет к потери совместимости со схемами, собранными ранее.
карма: 27
0
Разработчик
Ответов: 26303
Рейтинг: 2146
#13: 2008-04-24 19:12:19 ЛС | профиль | цитата
Dilma писал(а):
ну вообще-то 3-й пункт надо исправлять перестановкой названий в ini файле

Да можно было и в ini поменять, но в кодах уже было переделано, и я просто поубирал ненужное и вернул на место.
Dilma писал(а):
совместимости со схемами, собранными ранее

Странно получается, чел ставит Win_Base64, а получает Base64_Win и задает вопросы, что компонент глючный. Лучше уж, наверное, правильно сделать на будущее, хоть вопросов больше таких не будет, а схемы свои можно поправить, на иконках-то видно какая кодировка стоит.

Dilma, тут ты смотри сам -- стОит, или не стОит. Главное, что обнаружено несоответствие между написанным и действующим.
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2008-04-25 00:40:33 ЛС | профиль | цитата
Это скорее совет на будущее - думать не только, как устранить проблему, но и как сохранить совместимость с ранее существующими версиями.
карма: 27
0
Разработчик
Ответов: 26303
Рейтинг: 2146
#15: 2008-04-25 00:48:13 ЛС | профиль | цитата
Dilma писал(а):
но и как сохранить совместимость с ранее существующими версиями

Я, по-возможности, стараюсь это делать всегда, но тут было явное несоответсвие, что и привело к запутанному результату. Я признаю, что повелся, следующий раз буду осторожнее с выводами
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)