Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Вниз

Организация поиска   Найти похожие ветки 

 
<X>   (2006-08-25 00:36) [0]

Алгоритм есть или скажем догадуюсь...
Нада искать текст неизвесной кодировки для подальшого извлеченния,
обработки и т.п.
Теперь попытаюсь написать чё я придумал на щёт
алгоритма(правильно ли :))
допустим надо найти слово "hello" то методом перебора подставляем
определённую последовательность байт, для Dos кодировки это
будет 2068656C6C6F

Вроде этот тип поика называеться relative.
Так вот моя просьба к Мастерам подсказать правильное рещения этой задачи(желательно прымерчик)
Зарания благодарен.


 
Ketmar ©   (2006-08-25 00:40) [1]

слово "hello" во всех однобайтовых кодировках (EBCDIC и прочих странных зверей не рассматриваем %-) представленно совершенно одинаково.


 
Германн ©   (2006-08-25 00:51) [2]


> слово "hello" во всех однобайтовых кодировках

Дополню. Постольку, поскольку оно написано на "родном" языке. :-)
Даже в советское время, когда было в моде следовать курсу ДИП! были кодировки типа ASCII, в которых русские символы располагались по другому. Но на первые 128 даже и не покушались! Боялись, что работать не будет.


 
<X>   (2006-08-25 00:57) [3]

Слово hello я писал для примера.
А икать мне надо не стандартные кодировки для постоения кодовых страниц.


 
Германн ©   (2006-08-25 01:00) [4]


> <X>   (25.08.06 00:57) [3]
>
> Слово hello я писал для примера.
> А икать мне надо не стандартные кодировки для постоения
> кодовых страниц.

Упрости или уточни свой вопрос. В таком виде он сильно смахивает на проблему Энигмы.


 
<X>   (2006-08-25 01:08) [5]

Пример мне нужно найти текст "life" в образе игрового катриджа(rom)
посколько тогда небыло каких либо стандартов теткс кодирувался как кому
придет на ум.
И мне желательно подтверждения или опроверженния мысли изложеной выше.


 
Германн ©   (2006-08-25 01:16) [6]


> <X>   (25.08.06 01:08) [5]
>
> Пример мне нужно найти текст "life" в образе игрового катриджа(rom)
> посколько тогда небыло каких либо стандартов теткс кодирувался
> как кому
> придет на ум.
> И мне желательно подтверждения или опроверженния мысли изложеной
> выше.

По поводу "мысли изложеной выше", сказать пока трудно, поскольку выше не видел чего-либо чётко вразумительного.


 
<X>   (2006-08-25 01:34) [7]

Кодировка неизвесна

Пример:

Ищем текст "hello"
вместо первой буквы 20h пишем 00h
вместо второй буквы 68h пишем 10h
вместо третей буквы 6Ch пишем 11h
вместо четвертой буквы 6Ch пишем 11h
вместо пятой буквы 6Fh пишем FFh

ищем последовательность байт 00101111FF

если не нашли
изменяем
вместо первой буквы 20h пишем 01h
вместо второй буквы 68h пишем 11h
вместо третей буквы 6Ch пишем 12h
вместо четвертой буквы 6Ch пишем 12h
вместо пятой буквы 6Fh пишем 00h

ищем последовательность байт 0111121200
если нашли записываем значения
h := 01h
e := 11h
l := 12h
o := 00h

Думаю так(надеюсь понятно. мысль даже нормально выложить немогу).


 
Pavia ©   (2006-08-25 01:38) [8]

Так и не понял, что тебе нужно? Ты хотябы определись с разрядностью одной буквы 8 бит или 4бита или 16Бит или еще какие нибудь разновидности. И новерника буквы идут подряд. И цифры идут тоже подряд. И спец символы тоже объеденены в группы..


 
Pavia ©   (2006-08-25 01:42) [9]

Если точно известно, что эти данные являются текстом, то можно провести частотный анализ для определения кодировки.


 
Ketmar ©   (2006-08-25 01:45) [10]

кажись, я понял. тут пытаются протолкнуть идею поиска не по кодам, а по расстояниям между буквами (сиречь по разнице кодов, которая, по идее, почти всегда одинакова). так?


 
<X>   (2006-08-25 01:50) [11]


> Так и не понял, что тебе нужно? Ты хотябы определись с разрядностью
> одной буквы 8 бит или 4бита или 16Бит или еще какие нибудь
> разновидности. И новерника буквы идут подряд. И цифры идут
> тоже подряд. И спец символы тоже объеденены в группы..

Разрядность 16Бит. Буквы и цифры не всегда идут подряд, даже некоторые отсутсвуют.


 
Pavia ©   (2006-08-25 01:54) [12]

Это что за кодировка такая? А ты уверен что 16бит постоянно, а не так что в начале пока не встетелись спец символы идет 8бит, а затем 16.

Предлогаю сначало искать не текст, а картинки с изоброжениями букв. После определять кодировку путем распознования букв. Дальше уже искать по этой кодировке.


 
<X>   (2006-08-25 01:58) [13]

Изначально мы незнаем какой код будет отведен букве.
Поетому мы пытаемся икать строку(почему я писал "hello" потому что здесь две одинаковые буквы, желательно побольше одинаковых и чтобы это слово присутсвовало в тексте) вместо букв мы пишем произвольный код но одинаковые буквы имеют одинаковый код. И ищем последовательность байт.


 
<X>   (2006-08-25 02:00) [14]


> Предлогаю сначало искать не текст, а картинки с изоброжениями
> букв. После определять кодировку путем распознования букв.
>  Дальше уже искать по этой кодировке.

Искал и повторю Буквы и цифры не всегда идут подряд, даже некоторые отсутсвуют.


 
Pavia ©   (2006-08-25 02:14) [15]

А теперь понял о чем ты. Пытаешься найти слово Hello так как оно в 90%  есть в тексте. Другии слова не подходят. Слишком малая длина или редко встречаются.

Тогда так берем блок по 256 байт. Скользящей.
Считаем частоту появления символов. Если какойто символ лежит около 25%  (+-10% если не больше) это пробел. Дальше частотным анализом. по этому блоку. Вот тебе и кодировка. Толко пагрешность такого метода будет очень большая. Даже если перед частотным анализом ты объеденишь блоки.


 
Германн ©   (2006-08-25 02:15) [16]


> <X>   (25.08.06 01:34) [7]
>
> Кодировка неизвесна
>
> Пример:
>
> Ищем текст "hello"
> вместо первой буквы 20h пишем 00h
> вместо второй буквы 68h пишем 10h
> вместо третей буквы 6Ch пишем 11h
> вместо четвертой буквы 6Ch пишем 11h
> вместо пятой буквы 6Fh пишем FFh
>
> ищем последовательность байт 00101111FF
>
> если не нашли
> изменяем
> вместо первой буквы 20h пишем 01h
> вместо второй буквы 68h пишем 11h
> вместо третей буквы 6Ch пишем 12h
> вместо четвертой буквы 6Ch пишем 12h
> вместо пятой буквы 6Fh пишем 00h
>
> ищем последовательность байт 0111121200
> если нашли записываем значения
> h := 01h
> e := 11h
> l := 12h
> o := 00h
>
> Думаю так(надеюсь понятно. мысль даже нормально выложить
> немогу).
>


Ты хоть слышал об "Энигме"? Или хотя бы читал Конан-Дойля "Пляшущие Человечки"?


 
Pavia ©   (2006-08-25 02:19) [17]


> Искал и повторю Буквы и цифры не всегда идут подряд, даже
> некоторые отсутсвуют.

А это и не важно что отсутствуют. И даже если символы будут перемешанны. Они же по любому вместе.


 
<X>   (2006-08-25 02:27) [18]


> А теперь понял о чем ты. Пытаешься найти слово Hello так
> как оно в 90%  есть в тексте. Другии слова не подходят.
> Слишком малая длина или редко встречаются.

Да.


 
Германн ©   (2006-08-25 02:34) [19]


> <X>   (25.08.06 02:27) [18]
>
>
> > А теперь понял о чем ты. Пытаешься найти слово Hello так
> > как оно в 90%  есть в тексте. Другии слова не подходят.
>
> > Слишком малая длина или редко встречаются.
>
> Да.
>

Ну и что? Ну нашёл ты это слово в тексте. Что тогда?


 
Pavia ©   (2006-08-25 02:36) [20]


> Ну и что? Ну нашёл ты это слово в тексте. Что тогда?

Он найдет. Только не слово. А все возможный муссос причем мусора будет в 1000 раз больше.


 
<X>   (2006-08-25 02:41) [21]


> Ну и что? Ну нашёл ты это слово в тексте. Что тогда?

Записываем код буквы в таблицу и извлекаем текс с мусором. Мусор чистим по словарю и т.п.

> Он найдет. Только не слово. А все возможный муссос причем
> мусора будет в 1000 раз больше.

Мусор будет полюбому. Почистим.

слово искали для полученния кодовой таблици.


 
Германн ©   (2006-08-25 02:45) [22]


> <X>   (25.08.06 02:41) [21]

Надоело! Повторю в последний раз!

> Ты хоть слышал об "Энигме"? Или хотя бы читал Конан-Дойля
> "Пляшущие Человечки"?
>



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.051 c
15-1156482013
begin...end
2006-08-25 09:00
2006.09.17
25 августа. С Днём рождения!


1-1155046288
Avgust
2006-08-08 18:11
2006.09.17
шифрование пароля


2-1156998367
swan
2006-08-31 08:26
2006.09.17
Экспорт данных в Excel


2-1156754056
XTD
2006-08-28 12:34
2006.09.17
Почему в процедуре FormCreate; не работает Form1.Visible:=False;?


10-1123495556
Nick Denry
2005-08-08 14:05
2006.09.17
Можно ли средсвами TMediaPLayer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский