Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: Peter, DEMBEL  
Форум NeoBook » Всё о программе NeoBook » Сценарии и скриптовые языки в Neobook » Функция транслитерации (Транслит русского текста)
Функция транслитерации
AS3856Дата: Пн, 11 Апреля 2016, 13:30 | Сообщение # 1
Эксперт форума
Разбирался с функциями в VBS, нашёл интересную функцию транслита- подправил под нужды необука. Функцию писал не я-нашёл на просторах инета.
В архиве функция и демо пример

Добавлено (11 Апреля 2016, 13:28)
---------------------------------------------
Функция транслитерации по ГОСТ 16876-71 , думаю дополнить (переписать по своему)
Транслитерация имен для загранпаспорта РФ
Транслитерация адресной строки
Транслитерация ISO 9 - 1995
---Вобщем перепишу всё в одну функцию
да и вообще можно переписать под любую литерацию вплоть до того что будут цифры вместо букв...
может и пригодится кому то....

Изменено ГОСТ 7.79-2000 на ГОСТ 16876-71

Добавлено (11 Апреля 2016, 13:30)
---------------------------------------------
Прямо шифровка какая то "Юстас Алексу..."
Прикрепления: 2516362.rar (2.7 Kb)


Сообщение отредактировано
AS3856 - Вт, 12 Апреля 2016, 23:00
 
СообщениеРазбирался с функциями в VBS, нашёл интересную функцию транслита- подправил под нужды необука. Функцию писал не я-нашёл на просторах инета.
В архиве функция и демо пример

Добавлено (11 Апреля 2016, 13:28)
---------------------------------------------
Функция транслитерации по ГОСТ 16876-71 , думаю дополнить (переписать по своему)
Транслитерация имен для загранпаспорта РФ
Транслитерация адресной строки
Транслитерация ISO 9 - 1995
---Вобщем перепишу всё в одну функцию
да и вообще можно переписать под любую литерацию вплоть до того что будут цифры вместо букв...
может и пригодится кому то....

Изменено ГОСТ 7.79-2000 на ГОСТ 16876-71

Добавлено (11 Апреля 2016, 13:30)
---------------------------------------------
Прямо шифровка какая то "Юстас Алексу..."

Автор - AS3856
Дата добавления - 11 Апреля 2016 в 13:30
ВадимДата: Пн, 11 Апреля 2016, 14:24 | Сообщение # 2
Генератор идей
Интересно! Спасибо!

Поинтересовался сейчас в сети, скорее всего в описании функции не верно указан ГОСТ (смотрел по "проблемным" буквам - ё, й, ю, х...): ссылка на сравнительную таблицу нормативов. Жесть, оказывается сколько нормативов и все разные, чтобы программистам жизнь мёдом не казалась, мало им кодировок :D .
Так вот, если верить приведенной сравнительной таблице и следующим ссылкам, то это более старый ГОСТ 16876-71 (таблица 2), замененный на ГОСТ 7.79-2000.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеИнтересно! Спасибо!

Поинтересовался сейчас в сети, скорее всего в описании функции не верно указан ГОСТ (смотрел по "проблемным" буквам - ё, й, ю, х...): ссылка на сравнительную таблицу нормативов. Жесть, оказывается сколько нормативов и все разные, чтобы программистам жизнь мёдом не казалась, мало им кодировок :D .
Так вот, если верить приведенной сравнительной таблице и следующим ссылкам, то это более старый ГОСТ 16876-71 (таблица 2), замененный на ГОСТ 7.79-2000.

Автор - Вадим
Дата добавления - 11 Апреля 2016 в 14:24
AS3856Дата: Пн, 11 Апреля 2016, 15:57 | Сообщение # 3
Эксперт форума
Вадим-я всё ж перепишу попозже по своему эту функцию- ну и с таблицами сверюсь-для меня есть определённый интерес хотя мне это и ненужно-может кому пригодится в необуке
Кстати-затронул ты вопрос кодировок-может фунцию перекодировок отдельно написать.....
есть поле для работы..
 
СообщениеВадим-я всё ж перепишу попозже по своему эту функцию- ну и с таблицами сверюсь-для меня есть определённый интерес хотя мне это и ненужно-может кому пригодится в необуке
Кстати-затронул ты вопрос кодировок-может фунцию перекодировок отдельно написать.....
есть поле для работы..

Автор - AS3856
Дата добавления - 11 Апреля 2016 в 15:57
mishemДата: Пн, 11 Апреля 2016, 16:52 | Сообщение # 4
Эксперт форума
Цитата AS3856 ()
может фунцию перекодировок отдельно написать

Найди и напиши определение кодировки файла, текста.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата AS3856 ()
может фунцию перекодировок отдельно написать

Найди и напиши определение кодировки файла, текста.

Автор - mishem
Дата добавления - 11 Апреля 2016 в 16:52
AS3856Дата: Пн, 11 Апреля 2016, 17:05 | Сообщение # 5
Эксперт форума
Цитата mishem ()
Найди и напиши определение кодировки файла, текста.

thumbs_up
 
Сообщение
Цитата mishem ()
Найди и напиши определение кодировки файла, текста.

thumbs_up

Автор - AS3856
Дата добавления - 11 Апреля 2016 в 17:05
mishemДата: Пн, 11 Апреля 2016, 19:27 | Сообщение # 6
Эксперт форума
Только кодировка файла и текста это не одно и то же. ;)

Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеТолько кодировка файла и текста это не одно и то же. ;)

Автор - mishem
Дата добавления - 11 Апреля 2016 в 19:27
AS3856Дата: Пн, 11 Апреля 2016, 20:18 | Сообщение # 7
Эксперт форума
Цитата mishem ()
Только кодировка файла и текста это не одно и то же.

scared
 
Сообщение
Цитата mishem ()
Только кодировка файла и текста это не одно и то же.

scared

Автор - AS3856
Дата добавления - 11 Апреля 2016 в 20:18
mishemДата: Пн, 11 Апреля 2016, 21:04 | Сообщение # 8
Эксперт форума
Ну видел наверно что то подобное:

Это файл в кодировке ANSII а текст в UTF-8

А это и файл и текст в UTF-8


И т.д. Короче читать инфы много надо. Хотя вполне возможно что готовая функция уже есть.
Прикрепления: 6199153.png (2.2 Kb) · 8704778.png (1.7 Kb)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.


Сообщение отредактировано
mishem - Пн, 11 Апреля 2016, 21:05
 
СообщениеНу видел наверно что то подобное:

Это файл в кодировке ANSII а текст в UTF-8

А это и файл и текст в UTF-8


И т.д. Короче читать инфы много надо. Хотя вполне возможно что готовая функция уже есть.

Автор - mishem
Дата добавления - 11 Апреля 2016 в 21:04
AS3856Дата: Вт, 12 Апреля 2016, 12:18 | Сообщение # 9
Эксперт форума
голова кругом................ wall
 
Сообщениеголова кругом................ wall

Автор - AS3856
Дата добавления - 12 Апреля 2016 в 12:18
mishemДата: Вт, 12 Апреля 2016, 12:56 | Сообщение # 10
Эксперт форума
Цитата AS3856 ()
голова кругом

Ты яснее выражайся, от чего кругом? Ничего там особо сложного то нету.
Кодировку файла можно определить по заголовку файла в хекс редакторе. Где то инфа есть, а можешь методом тыка сравнить первые байты в хекс редакторе.
Определение кодировки текста как один из вариантов можно почитать здесь.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата AS3856 ()
голова кругом

Ты яснее выражайся, от чего кругом? Ничего там особо сложного то нету.
Кодировку файла можно определить по заголовку файла в хекс редакторе. Где то инфа есть, а можешь методом тыка сравнить первые байты в хекс редакторе.
Определение кодировки текста как один из вариантов можно почитать здесь.

Автор - mishem
Дата добавления - 12 Апреля 2016 в 12:56
AS3856Дата: Вт, 12 Апреля 2016, 19:56 | Сообщение # 11
Эксперт форума
mishem понимаешь- когда только разбираешься с одной-двумя-всё понятно и легко можно разобрать и написать функцию, но когда кодировок несколько и "засунуть" в одну - плюс сложности с некоторыми (некоторые не определяются по первым байтам( нашёл инфу по ним - там волкИ от VBS описывают ситуацию)) - вот голова и кругом. Н у и я никогда особо не занимался этим ( ну знал что существует, знал что перекдировать что то надо когда то , знал что там байты и тд - и всё.Сейчас всё надо более досконально "прогнать" ну и я ж не гуру в VBS-е - тут тоже засада которую на ходу приходится преодолевать.Даже незнаю смогу ли всё в одном флаконе перемешать.Отдельными функциями переписать кодировку проще, а вот определение кодировки - сложнее..
 
Сообщениеmishem понимаешь- когда только разбираешься с одной-двумя-всё понятно и легко можно разобрать и написать функцию, но когда кодировок несколько и "засунуть" в одну - плюс сложности с некоторыми (некоторые не определяются по первым байтам( нашёл инфу по ним - там волкИ от VBS описывают ситуацию)) - вот голова и кругом. Н у и я никогда особо не занимался этим ( ну знал что существует, знал что перекдировать что то надо когда то , знал что там байты и тд - и всё.Сейчас всё надо более досконально "прогнать" ну и я ж не гуру в VBS-е - тут тоже засада которую на ходу приходится преодолевать.Даже незнаю смогу ли всё в одном флаконе перемешать.Отдельными функциями переписать кодировку проще, а вот определение кодировки - сложнее..

Автор - AS3856
Дата добавления - 12 Апреля 2016 в 19:56
mishemДата: Ср, 13 Апреля 2016, 00:10 | Сообщение # 12
Эксперт форума
Ну дерзай. Когда то ж надо от игрушек к серьезным вещам переходить. :D
А то нащелкал никому не нужных функций. Давай, теперь делом займись. :D


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеНу дерзай. Когда то ж надо от игрушек к серьезным вещам переходить. :D
А то нащелкал никому не нужных функций. Давай, теперь делом займись. :D

Автор - mishem
Дата добавления - 13 Апреля 2016 в 00:10
PeterДата: Ср, 13 Апреля 2016, 01:32 | Сообщение # 13
Админ NeoBook


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение

Автор - Peter
Дата добавления - 13 Апреля 2016 в 01:32
mishemДата: Ср, 13 Апреля 2016, 01:57 | Сообщение # 14
Эксперт форума


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение

Автор - mishem
Дата добавления - 13 Апреля 2016 в 01:57
AS3856Дата: Ср, 13 Апреля 2016, 02:40 | Сообщение # 15
Эксперт форума
в тёмную подвёл - эксплуататор :D
перекодировку то легко написать-функций много уже написанных- а вот определение кодировки- сложнее..

Добавлено (13 Апреля 2016, 02:26)
---------------------------------------------
есть на джаве-скрипт- но я как то хуже этот язык воспринимаю- пытался разобраться вроде всё понятно- а нейдёт

Добавлено (13 Апреля 2016, 02:38)
---------------------------------------------
mishem а конкретно то что надо написать функцию перекодировки ? или функцию определения кодировки?
ну и с HTML-ом я неочень знаком(практически никак) И если перекодировки- то что и во что

Добавлено (13 Апреля 2016, 02:40)
---------------------------------------------
так может тебе просто функцию в чистом виде надо на vbs- так их полно разных

 
Сообщениев тёмную подвёл - эксплуататор :D
перекодировку то легко написать-функций много уже написанных- а вот определение кодировки- сложнее..

Добавлено (13 Апреля 2016, 02:26)
---------------------------------------------
есть на джаве-скрипт- но я как то хуже этот язык воспринимаю- пытался разобраться вроде всё понятно- а нейдёт

Добавлено (13 Апреля 2016, 02:38)
---------------------------------------------
mishem а конкретно то что надо написать функцию перекодировки ? или функцию определения кодировки?
ну и с HTML-ом я неочень знаком(практически никак) И если перекодировки- то что и во что

Добавлено (13 Апреля 2016, 02:40)
---------------------------------------------
так может тебе просто функцию в чистом виде надо на vbs- так их полно разных


Автор - AS3856
Дата добавления - 13 Апреля 2016 в 02:40
mishemДата: Ср, 13 Апреля 2016, 09:53 | Сообщение # 16
Эксперт форума
Цитата AS3856 ()
mishem а конкретно то что надо написать функцию перекодировки ? или функцию определения кодировки?

Определения кодировки. Перекодировка есть в плагине Петра zmFunctions.

Предположим есть файлы в кодировке ANCII которые нужно преобразовать в Utf-8, но среди них затесались файлы уже в кодировке UTF-8. Попробуй с помощью плагина zmFunctions перекодировать файл в кодировке UTF-8 в кодировку UTF-8.
zmConvertString "AnsiToUtf8" "" ""

Вот для этого и нужно предварительное определение кодировки. Есть файлы в кодировке ANCII, но кодировка файла может быть Windows-1252. Вставишь туда просто текст в Windows-1251, будут крякозябры. Значит нужно не вставлять текст, а переписать его в Windows-1251.

Есть много программ которые автоматически определяют кодировку. Значит это как то возможно? К примеру та же "Штирлиц", или например вот этот ресурс. Не всегда точно, но с основной задачей практически справляется всегда.

Добавлено (13 Апреля 2016, 09:53)
---------------------------------------------

Цитата AS3856 ()
в тёмную подвёл - эксплуататор

:)
Ну а как по другому? Сам предложил, я за язык не тянул:

Цитата AS3856 ()
может фунцию перекодировок отдельно написать.....
есть поле для работы..


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата AS3856 ()
mishem а конкретно то что надо написать функцию перекодировки ? или функцию определения кодировки?

Определения кодировки. Перекодировка есть в плагине Петра zmFunctions.

Предположим есть файлы в кодировке ANCII которые нужно преобразовать в Utf-8, но среди них затесались файлы уже в кодировке UTF-8. Попробуй с помощью плагина zmFunctions перекодировать файл в кодировке UTF-8 в кодировку UTF-8.
zmConvertString "AnsiToUtf8" "" ""

Вот для этого и нужно предварительное определение кодировки. Есть файлы в кодировке ANCII, но кодировка файла может быть Windows-1252. Вставишь туда просто текст в Windows-1251, будут крякозябры. Значит нужно не вставлять текст, а переписать его в Windows-1251.

Есть много программ которые автоматически определяют кодировку. Значит это как то возможно? К примеру та же "Штирлиц", или например вот этот ресурс. Не всегда точно, но с основной задачей практически справляется всегда.

Добавлено (13 Апреля 2016, 09:53)
---------------------------------------------

Цитата AS3856 ()
в тёмную подвёл - эксплуататор

:)
Ну а как по другому? Сам предложил, я за язык не тянул:

Цитата AS3856 ()
может фунцию перекодировок отдельно написать.....
есть поле для работы..

Автор - mishem
Дата добавления - 13 Апреля 2016 в 09:53
AS3856Дата: Ср, 13 Апреля 2016, 10:28 | Сообщение # 17
Эксперт форума
- приммерно понял,понимаю что можно написать кириллицей но файл в UTF-8 (или 1252)- необходимо в 1251
-такая прмерно задача ?
И ещё программы типа "штирлиц" тоже нестоит задействовать- иначе придётся таскать за собой весь этот "хвост"( что конечно же не страшно - но как то выглядит не очень хорошо)
Штирлиц конечно хороша- тогда нафига всё этоо мутить( ну не нравится мне таскать сторонние разработки в своих программах- это уж от безЪисходности.
есть готовые функции определения UTF 8 и 1251 но немного переработать надо..
Тогда с с тебя уж потом визуальный редактор HTML :D

Добавлено (13 Апреля 2016, 10:26)
---------------------------------------------
и ещё - если возможно не можешь ли скинуть файлы которые и надо перекодировать(определять кодировку)
хотелось бы поглядеть на" это" ,и как будет функция отрабатывать чтоб не в" тёмную" писать
пару тройку файлов -на них и буду оттачивать своё" мастерство" :D

Добавлено (13 Апреля 2016, 10:28)
---------------------------------------------

Цитата mishem ()
Попробуй с помощью плагина zmFunctions перекодировать файл в кодировке UTF-8 в кодировку UTF-8.

Попробую конечно...
 
Сообщение- приммерно понял,понимаю что можно написать кириллицей но файл в UTF-8 (или 1252)- необходимо в 1251
-такая прмерно задача ?
И ещё программы типа "штирлиц" тоже нестоит задействовать- иначе придётся таскать за собой весь этот "хвост"( что конечно же не страшно - но как то выглядит не очень хорошо)
Штирлиц конечно хороша- тогда нафига всё этоо мутить( ну не нравится мне таскать сторонние разработки в своих программах- это уж от безЪисходности.
есть готовые функции определения UTF 8 и 1251 но немного переработать надо..
Тогда с с тебя уж потом визуальный редактор HTML :D

Добавлено (13 Апреля 2016, 10:26)
---------------------------------------------
и ещё - если возможно не можешь ли скинуть файлы которые и надо перекодировать(определять кодировку)
хотелось бы поглядеть на" это" ,и как будет функция отрабатывать чтоб не в" тёмную" писать
пару тройку файлов -на них и буду оттачивать своё" мастерство" :D

Добавлено (13 Апреля 2016, 10:28)
---------------------------------------------

Цитата mishem ()
Попробуй с помощью плагина zmFunctions перекодировать файл в кодировке UTF-8 в кодировку UTF-8.

Попробую конечно...

Автор - AS3856
Дата добавления - 13 Апреля 2016 в 10:28
mishemДата: Ср, 13 Апреля 2016, 17:08 | Сообщение # 18
Эксперт форума
Цитата AS3856 ()
если возможно не можешь ли скинуть файлы которые и надо перекодировать(определять кодировку)

Скачай например вот этот редактор.
Это русик не законченный. Что б легче ориентироваться было.

Пишешь текст в файле, переходишь "Преобразовать > Кодировка текста". Или не пишешь текст, выставляешь кодировку, а после пишешь. :) После можешь выбрать "Вид > Шестнадцатеричный" и сравнить первые байты файлов в разных кодировках. То есть в принципе определить кодировку файла можно с помощью плагинов в NeoBook два таких я по крайней мере знаю.

А вот кодировку текста как определить, хз. Здесь вот можно почитать о Utf-8/


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата AS3856 ()
если возможно не можешь ли скинуть файлы которые и надо перекодировать(определять кодировку)

Скачай например вот этот редактор.
Это русик не законченный. Что б легче ориентироваться было.

Пишешь текст в файле, переходишь "Преобразовать > Кодировка текста". Или не пишешь текст, выставляешь кодировку, а после пишешь. :) После можешь выбрать "Вид > Шестнадцатеричный" и сравнить первые байты файлов в разных кодировках. То есть в принципе определить кодировку файла можно с помощью плагинов в NeoBook два таких я по крайней мере знаю.

А вот кодировку текста как определить, хз. Здесь вот можно почитать о Utf-8/

Автор - mishem
Дата добавления - 13 Апреля 2016 в 17:08
antonДата: Чт, 14 Апреля 2016, 08:28 | Сообщение # 19
Ветеран форума
Цитата mishem ()
сравнить первые байты файлов в разных кодировках.

возникнет много проблем, так как в разных кодировках в регистрозависимых буквах будут совпадения в этих байтах. То что в одно кодировке соответствует заглавной букве в другой будет равно прописной...
Я бы сделал проще. Взял бы из текста участок допустим символов 30-40 в цикле из каждой кодировки в каждую его перекодировал. Потом в полученном массиве кодированных строк, проверил количество гласных согласных символов в словах. В человекопонятном тексте такой показатель в среднем одинаков. И более релевантный результат считал бы правильным.


"Вы знаете, нам очень понравились все варианты, что вы прислали. Даже не знаем, что выбрать… А может попробуем объединить все три логотипа в один?"
 
Сообщение
Цитата mishem ()
сравнить первые байты файлов в разных кодировках.

возникнет много проблем, так как в разных кодировках в регистрозависимых буквах будут совпадения в этих байтах. То что в одно кодировке соответствует заглавной букве в другой будет равно прописной...
Я бы сделал проще. Взял бы из текста участок допустим символов 30-40 в цикле из каждой кодировки в каждую его перекодировал. Потом в полученном массиве кодированных строк, проверил количество гласных согласных символов в словах. В человекопонятном тексте такой показатель в среднем одинаков. И более релевантный результат считал бы правильным.

Автор - anton
Дата добавления - 14 Апреля 2016 в 08:28
mishemДата: Чт, 14 Апреля 2016, 15:06 | Сообщение # 20
Эксперт форума
Цитата anton ()
возникнет много проблем

Ты не понял.
В ANCII заголовка нет.
В Utf-8 c BOM первые байты EFBBBF
в юникод с прямым порядком байт FFFE0000
с обратным 0000FEFF
и т.д.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата anton ()
возникнет много проблем

Ты не понял.
В ANCII заголовка нет.
В Utf-8 c BOM первые байты EFBBBF
в юникод с прямым порядком байт FFFE0000
с обратным 0000FEFF
и т.д.

Автор - mishem
Дата добавления - 14 Апреля 2016 в 15:06
antonДата: Чт, 14 Апреля 2016, 15:22 | Сообщение # 21
Ветеран форума
Цитата mishem ()
Ты не понял.

Ага :) просмотрел что речь идет не про текст, а про файлы. А про какие файлы идет речь? какой формат?


"Вы знаете, нам очень понравились все варианты, что вы прислали. Даже не знаем, что выбрать… А может попробуем объединить все три логотипа в один?"
 
Сообщение
Цитата mishem ()
Ты не понял.

Ага :) просмотрел что речь идет не про текст, а про файлы. А про какие файлы идет речь? какой формат?

Автор - anton
Дата добавления - 14 Апреля 2016 в 15:22
AS3856Дата: Чт, 14 Апреля 2016, 18:38 | Сообщение # 22
Эксперт форума
Лазаю по форумам - там "зубры" копья ломают в поисках решения этих задач .....
есть конечно решения- ну как то всё не то..
 
СообщениеЛазаю по форумам - там "зубры" копья ломают в поисках решения этих задач .....
есть конечно решения- ну как то всё не то..

Автор - AS3856
Дата добавления - 14 Апреля 2016 в 18:38
mishemДата: Чт, 14 Апреля 2016, 20:18 | Сообщение # 23
Эксперт форума
А тебе никто не говорил что будет легко. :D

Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеА тебе никто не говорил что будет легко. :D

Автор - mishem
Дата добавления - 14 Апреля 2016 в 20:18
AS3856Дата: Чт, 14 Апреля 2016, 20:56 | Сообщение # 24
Эксперт форума
%)
 
Сообщение%)

Автор - AS3856
Дата добавления - 14 Апреля 2016 в 20:56
PeterДата: Чт, 14 Апреля 2016, 21:52 | Сообщение # 25
Админ NeoBook
Цитата AS3856 ()
там "зубры" копья ломают в поисках решения этих задач ...

В VBS запросто может и не оказаться средств для решения этой задачи.
Пробуй через плагин, т.е. Delphi или С++, в них ты будешь ограничен только "пониманием сути вопроса", а не возможностями.
Хороший повод заняться реальным "делом", а не тратить время на "костыли".
;)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата AS3856 ()
там "зубры" копья ломают в поисках решения этих задач ...

В VBS запросто может и не оказаться средств для решения этой задачи.
Пробуй через плагин, т.е. Delphi или С++, в них ты будешь ограничен только "пониманием сути вопроса", а не возможностями.
Хороший повод заняться реальным "делом", а не тратить время на "костыли".
;)

Автор - Peter
Дата добавления - 14 Апреля 2016 в 21:52
AS3856Дата: Чт, 14 Апреля 2016, 22:05 | Сообщение # 26
Эксперт форума
Есть вот решение такое -не моё нашёл на одном из сайтов, кто что скажет про такой метод ? актуально для UTF 8 -------------
Саму идею получения кодировки придумал не я, но и автора, к сожалению, сообщить сейчас уже не могу, так как это было порядка 4 лет назад и откуда я взял эту информацию - уже давно забылось. Автор предложил вариант определения и показал пример для 1-2 кодировок на языке Python. Простота его решения не оставила меня в стороне, и я развил её до желаемого результата.
Суть идеи заключается в самих кодовых таблицах кодировок. Как известно, любая кодировка содержит свою кодовую таблицу и для каждого символа кодировки присвоено определенное значение. Таблицы кодировок я здесь показывать не буду, сейчас их найти в интернете достаточно просто.
Принцип реализации следующий:

Создается переменная-массив для хранения результата "анализа" проверенного текста. Каждый элемент массива будет содержать результат для конкретной кодировки.
Полученный на вход функции текст перебирается по символьно.
От каждого символа берется ординал (значение этого символа) и сравнивается с диапазоном кодировки.
Если значение выпадает на прописной (заглавный) символ, элементу массива, который хранит результат этой кодировки, прибавляется значение 1.
Если значение выпадает на строчный (маленький) символ, элементу массива, который хранит результат этой кодировки, прибавляется значение 3.
Та кодировка, точнее, тот элемент массива, который хранит результат о своей кодировке, который набрал больше всего баллов - вероятней всего и является исходной кодировкой.

Такой алгоритм справедлив для однобайтовых кодировок, таких как KOI-8, CP1251 (windows-1251) и других. Однако, для двухбайтовых кодировок (в моем случае UTF-8), такой подход выдаст ошибочный результат. Для начала я попытался решить этот вопрос путем прибавления для прописных символов - 5, для строчных - 7. Результат стал лучше, однако все равно ошибки распознавания присутствовали. После недолгих экспериментов, я вывел, что для верного определения UTF, при прописных символах должно прибавляться к результату 10, для строчных 14, то есть в 2 раза больше начального моего предположения. Тем не менее, для лучшего визуального понимания кода я для символов UTF оставил 5 и 7 соответственно и уже во время проверки эти значения увеличивал на 2 и прибавлял к результату.
Вот в принципе и весь алгоритм. И без всяких лишних заморочек.
Больше всего времени на реализацию этой функции у меня убилось конечно же на поиск кодовых таблиц и правильной расстановки диапазонов. Мало того, что на тот момент, когда я первый раз писал эту функцию, найти актуальную кодовую таблицу было достаточно трудно, так ещё диапазоны символов в них скачут как попало. Тем не менее, я тогда остановился на самых актуальных (и по сей день) кодировках: UTF-8, CP1251, KOI8-R, IBM866, ISO-8859-5 и MAC. Если вам недостаточно этих кодировок, вы можете на основе данного алгоритма дополнить код.

Добавлено (14 Апреля 2016, 21:59)
---------------------------------------------
Ну а написать код по рассуждениям автора - не слишком сложно

Добавлено (14 Апреля 2016, 22:02)
---------------------------------------------
часть кода от автора опуса " На питоне"
"""UTF-8"""
if last_simb == 208 and (143 < simb_ord < 176 or simb_ord == 129):
codepages['UTF-8'] += (utfupper * 2)
if (last_simb == 208 and (simb_ord == 145 or 175 < simb_ord < 192)) \
or (last_simb == 209 and (127 < simb_ord < 144)):
codepages['UTF-8'] += (utflower * 2)

Добавлено (14 Апреля 2016, 22:05)
---------------------------------------------

Цитата Peter ()
В VBS запросто может и не оказаться средств для решения этой задачи.

в лазарусе вроде есть модуль LConvEncoding Функция GuessEncoding может определить кодировку исходной строки (правда не для всех кодировок, вероятность где-то 70%)
но с лазарусом давно завязал...
 
СообщениеЕсть вот решение такое -не моё нашёл на одном из сайтов, кто что скажет про такой метод ? актуально для UTF 8 -------------
Саму идею получения кодировки придумал не я, но и автора, к сожалению, сообщить сейчас уже не могу, так как это было порядка 4 лет назад и откуда я взял эту информацию - уже давно забылось. Автор предложил вариант определения и показал пример для 1-2 кодировок на языке Python. Простота его решения не оставила меня в стороне, и я развил её до желаемого результата.
Суть идеи заключается в самих кодовых таблицах кодировок. Как известно, любая кодировка содержит свою кодовую таблицу и для каждого символа кодировки присвоено определенное значение. Таблицы кодировок я здесь показывать не буду, сейчас их найти в интернете достаточно просто.
Принцип реализации следующий:

Создается переменная-массив для хранения результата "анализа" проверенного текста. Каждый элемент массива будет содержать результат для конкретной кодировки.
Полученный на вход функции текст перебирается по символьно.
От каждого символа берется ординал (значение этого символа) и сравнивается с диапазоном кодировки.
Если значение выпадает на прописной (заглавный) символ, элементу массива, который хранит результат этой кодировки, прибавляется значение 1.
Если значение выпадает на строчный (маленький) символ, элементу массива, который хранит результат этой кодировки, прибавляется значение 3.
Та кодировка, точнее, тот элемент массива, который хранит результат о своей кодировке, который набрал больше всего баллов - вероятней всего и является исходной кодировкой.

Такой алгоритм справедлив для однобайтовых кодировок, таких как KOI-8, CP1251 (windows-1251) и других. Однако, для двухбайтовых кодировок (в моем случае UTF-8), такой подход выдаст ошибочный результат. Для начала я попытался решить этот вопрос путем прибавления для прописных символов - 5, для строчных - 7. Результат стал лучше, однако все равно ошибки распознавания присутствовали. После недолгих экспериментов, я вывел, что для верного определения UTF, при прописных символах должно прибавляться к результату 10, для строчных 14, то есть в 2 раза больше начального моего предположения. Тем не менее, для лучшего визуального понимания кода я для символов UTF оставил 5 и 7 соответственно и уже во время проверки эти значения увеличивал на 2 и прибавлял к результату.
Вот в принципе и весь алгоритм. И без всяких лишних заморочек.
Больше всего времени на реализацию этой функции у меня убилось конечно же на поиск кодовых таблиц и правильной расстановки диапазонов. Мало того, что на тот момент, когда я первый раз писал эту функцию, найти актуальную кодовую таблицу было достаточно трудно, так ещё диапазоны символов в них скачут как попало. Тем не менее, я тогда остановился на самых актуальных (и по сей день) кодировках: UTF-8, CP1251, KOI8-R, IBM866, ISO-8859-5 и MAC. Если вам недостаточно этих кодировок, вы можете на основе данного алгоритма дополнить код.

Добавлено (14 Апреля 2016, 21:59)
---------------------------------------------
Ну а написать код по рассуждениям автора - не слишком сложно

Добавлено (14 Апреля 2016, 22:02)
---------------------------------------------
часть кода от автора опуса " На питоне"
"""UTF-8"""
if last_simb == 208 and (143 < simb_ord < 176 or simb_ord == 129):
codepages['UTF-8'] += (utfupper * 2)
if (last_simb == 208 and (simb_ord == 145 or 175 < simb_ord < 192)) \
or (last_simb == 209 and (127 < simb_ord < 144)):
codepages['UTF-8'] += (utflower * 2)

Добавлено (14 Апреля 2016, 22:05)
---------------------------------------------

Цитата Peter ()
В VBS запросто может и не оказаться средств для решения этой задачи.

в лазарусе вроде есть модуль LConvEncoding Функция GuessEncoding может определить кодировку исходной строки (правда не для всех кодировок, вероятность где-то 70%)
но с лазарусом давно завязал...

Автор - AS3856
Дата добавления - 14 Апреля 2016 в 22:05
PeterДата: Чт, 14 Апреля 2016, 22:08 | Сообщение # 27
Админ NeoBook
Цитата AS3856 ()
Если вам недостаточно этих кодировок, вы можете на основе данного алгоритма дополнить код.

AS3856, ты не понял главное - мишему нужно готовое решение в одну строчку (буквально), а не "информация к размышлению" или конструктор "сделай сам".
:)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата AS3856 ()
Если вам недостаточно этих кодировок, вы можете на основе данного алгоритма дополнить код.

AS3856, ты не понял главное - мишему нужно готовое решение в одну строчку (буквально), а не "информация к размышлению" или конструктор "сделай сам".
:)

Автор - Peter
Дата добавления - 14 Апреля 2016 в 22:08
AS3856Дата: Чт, 14 Апреля 2016, 22:14 | Сообщение # 28
Эксперт форума
В vbs реализовать всё что автор там на питоне делал, но незнаю каков результат- хотя я тоже на этот путь посматриваю..

Добавлено (14 Апреля 2016, 22:11)
---------------------------------------------
Peter- я раздумываю , я не говорю чтоб он писал то что я тут выложил- я просто незнаю правильно ли это будет
Написать то я сам напишу,- но в одну строчку тут конечно неполучится, думаю строчек 10
(получится функция для необука)

Добавлено (14 Апреля 2016, 22:14)
---------------------------------------------
Меня просто интересует Ваше мнение - имеет смысл выполнить это ?
С UTF 8 не всё просто получается........

 
СообщениеВ vbs реализовать всё что автор там на питоне делал, но незнаю каков результат- хотя я тоже на этот путь посматриваю..

Добавлено (14 Апреля 2016, 22:11)
---------------------------------------------
Peter- я раздумываю , я не говорю чтоб он писал то что я тут выложил- я просто незнаю правильно ли это будет
Написать то я сам напишу,- но в одну строчку тут конечно неполучится, думаю строчек 10
(получится функция для необука)

Добавлено (14 Апреля 2016, 22:14)
---------------------------------------------
Меня просто интересует Ваше мнение - имеет смысл выполнить это ?
С UTF 8 не всё просто получается........


Автор - AS3856
Дата добавления - 14 Апреля 2016 в 22:14
PeterДата: Чт, 14 Апреля 2016, 22:20 | Сообщение # 29
Админ NeoBook
Цитата AS3856 ()
получится функция для необука

Насколько я понимаю, именно это и требуется.

Цитата AS3856 ()
имеет смысл выполнить это ?

Непонятно ЧТО именно.

Цитата AS3856 ()
С UTF 8 не всё просто получается........

Тема кодировок вообще "темный лес", тут нужно знать вопрос от а до я, а для этого нужны время и, главное, стимул.


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата AS3856 ()
получится функция для необука

Насколько я понимаю, именно это и требуется.

Цитата AS3856 ()
имеет смысл выполнить это ?

Непонятно ЧТО именно.

Цитата AS3856 ()
С UTF 8 не всё просто получается........

Тема кодировок вообще "темный лес", тут нужно знать вопрос от а до я, а для этого нужны время и, главное, стимул.

Автор - Peter
Дата добавления - 14 Апреля 2016 в 22:20
AS3856Дата: Чт, 14 Апреля 2016, 22:49 | Сообщение # 30
Эксперт форума
Цитата Peter ()
Цитата AS3856 ()
имеет смысл выполнить это ?

Непонятно ЧТО именно.

то что расписал автор опуса о кодировке
т.е. он то на питоне писал- я ж могу это в vbs

Добавлено (14 Апреля 2016, 22:30)
---------------------------------------------
соответственно получится функция

Добавлено (14 Апреля 2016, 22:31)
---------------------------------------------
- но я в сомнениях будет ли это нормально работать..

Добавлено (14 Апреля 2016, 22:32)
---------------------------------------------
процент погрешности --???

Добавлено (14 Апреля 2016, 22:34)
---------------------------------------------
- все непросто именно с UTF 8.. (есть правда двойная кодировка в утф 8 и утф 16 - но эти варианты нерассматриваю

Добавлено (14 Апреля 2016, 22:49)
---------------------------------------------

Цитата Peter ()
Пробуй через плагин, т.е. Delphi или С++,

Боюсь что я "недорос" до планиностроительства......
 
Сообщение
Цитата Peter ()
Цитата AS3856 ()
имеет смысл выполнить это ?

Непонятно ЧТО именно.

то что расписал автор опуса о кодировке
т.е. он то на питоне писал- я ж могу это в vbs

Добавлено (14 Апреля 2016, 22:30)
---------------------------------------------
соответственно получится функция

Добавлено (14 Апреля 2016, 22:31)
---------------------------------------------
- но я в сомнениях будет ли это нормально работать..

Добавлено (14 Апреля 2016, 22:32)
---------------------------------------------
процент погрешности --???

Добавлено (14 Апреля 2016, 22:34)
---------------------------------------------
- все непросто именно с UTF 8.. (есть правда двойная кодировка в утф 8 и утф 16 - но эти варианты нерассматриваю

Добавлено (14 Апреля 2016, 22:49)
---------------------------------------------

Цитата Peter ()
Пробуй через плагин, т.е. Delphi или С++,

Боюсь что я "недорос" до планиностроительства......

Автор - AS3856
Дата добавления - 14 Апреля 2016 в 22:49
Форум NeoBook » Всё о программе NeoBook » Сценарии и скриптовые языки в Neobook » Функция транслитерации (Транслит русского текста)
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Поиск: