• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

создание электронного словаря

  • Автор темы rustamh
  • Дата начала
Статус
Закрыто для дальнейших ответов.
R

rustamh

Здравствуйте! нужно создать словарь подобный лингво, только арабско-русский, с рядом ньюансов - не знаю за что браться, хвататься.
даже не знаю в какой среде писать. но знаю что буду делать эту работу точно.
помогите пожалуйста - если у кого есть опыт - опишите пожалуйста алгоритм хотя бы как словари работают.
Насчет среды сейчас стою перед выбором , либо с++ либо вижуал си.

заранее спасибо.
 
V

vital

Уф.. Ну насчет среды увас выбора нет. Писать на чистом C++ полностью интерфейс.. Зачем? Поэтому VS C++.
А на счет алгоритма.. В чем поблема? Есть слово и есть словарь в котором его перевод. Или вы не знаете алгоритмы поиска в файле/массиве?

Вот..
 
R

rustamh

если честно - может знаю, но под другим названием)
а может не знаю. но думаю разберусь.
спасибо за помощь в выборе среды!
только один ньюанс - пытался установить Вижуал Студио 2008. у меня на диске С места мало. а установка все наровит на этот диск чего-то записать.
(хотя папку назначения на др. диске выбираю). Можно ли как-то сделать, чтобы при установке диск С не трогался? или неужели винду переустанавливать из за этог.
очистить диск С уже не могу. не пойму вообще чем он забит.
 
V

vital

Переустановка винды вам не поможет. Очищайте диск ц=) Просто, при установке, студия копирует на ц, какие-то там свои временные файлы.. Только этих временных файлов несколько гб. И с этим ничего не сделать.
Как совет - ставьте не полную студию, а просто отдельный Visual C++ (Express) ему надо меньше места. Скачать можно свободно с сайта майкрософта..
 
R

rustamh

а что, если на С++ то обязательно все в ручную писать?
C Builder - это тоже в ручную считается?
вы уж меня простите, но я сильно некомпетентен в этом вопросе. работал 1С программистом. там все очень специфично. надо по сути работать с уже готовыми программами. не надо ничего компилировать и т.п.
а когда дело коснулось вот создания словаря - понял, насколько я темный человек в программировании.
когда приходится работать с НУЛЯ - это пугает даже маленько ;)
 
V

vital

Брр.. Если писать на ЧИСТОМ С++ то, вам придется РУКАМИ создавать весь интерфейс польщователя. т.е. для каждого эелемента формы(как и саму форму) создавать через API.. Зачем? Это тысячи лишних строк кода=) А VS это сделает сама.
 
E

European

Кроме того, в арабском языке принята запись с права на лево. Для ее реализации вам придется или найти готовую реализацию Unicode Bidirectional Algorithm или написать ее самому.
 
R

rustamh

а что это за Unicode Bidirectional Algorithm ?
и есть ли у кого нибудь ссылка чтобы скачать?
у меня сейчас проблемы с интернетом. захожу еле как - через телефон. поэтому искать что то это целое мучение - с 20-го раза каждая ссылка открывается.

И еще - в Word и Excel есть некоторые алгоритмы для арабского языка - например в Word есть возможность настройки поиска слов - с учетом и без учета специфических арабских символов. (вроде как у нас с учетом и без учета регистра есть опции поиска ).
и в Word и в Excel есть возможность задать направление текста "справа на лево" - для ячейки или для абзаца.

Могу ли я как-то эти наработки Microsoft использовать? или их самому придется создавать?
 
E

European

и в Word и в Excel есть возможность задать направление текста "справа на лево" - для ячейки или для абзаца.
Это совсем не то. Вот изучайте:
а что это за Unicode Bidirectional Algorithm ?
 
R

rustamh

на самом деле все это не нужно. араб. текст отображается в приложениях самым замечательным образом.
все эти опасения по поводу отображения текста - не сбылись. Более того, для текстового поля в Вижуал Студио 2008 (да наверное и в других) есть возможность также как и в экселе для ячейки, указать направление текста "справа налево").

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

а что вы думаете, уважаемые участники этого форума? ;)
 
V

vital

Используем базу данных. Тут и обсуждать-то нечего..
 
R

rustamh

А на счет алгоритма.. В чем поблема? Есть слово и есть словарь в котором его перевод. Или вы не знаете алгоритмы поиска в файле/массиве?
Вот..

а файл/массив и база данных - это одно и тоже? :lol:

я не работал с базой данных никогда. надо почитать чего-нибудь.

просто я уже экспереминтировал с базой в тхт - нормально получается. (ведь не обязательно весь текст искать, а можно например поиск в нужной букве делать (задать, что буква Г например находится со строкиХ и заканчивается строкойУ) .

можно ли как-то программно определить, каким языком набран текст?
мне нужно сделать , чтобы арабские слова отображались одним шрифтом, а русские - другим. Потому что когда одним шрифтом - арабский на фоне русского слишком мелкий.
ну и нужны комбинации разных шрифтов например.
я вот думал о 2-х путях решения этого -
1-й - разработать систему тегов и вставить теги в текст словаря - и чтобы приложение отображало их в соотвтетствии с тегами (как это реализовано в языке Лингво дсл).
2-й - автоматически определять язык слова и выводить его в определенном шрифте.

Кто нибудь может посоветовать насчет этого?
 
V

vital

а файл/массив и база данных - это одно и тоже?
Эээ.. Файл - это файл.. А массив - это массив. Впрочем, никто не мешает представить файл, как массив=)
я не работал с базой данных никогда. надо почитать чего-нибудь.
Найдите в инете любой учебник по SQL.
с базой в тхт - нормально получается.
C большой базой это будет ОЧЕНЬ медленно. Нельзя так делать.
можно ли как-то программно определить, каким языком набран текст?
Хм.. Ну уже готового вы точно не найдете.. А вообще, можно просто сделать 2 массива - один с русскими буквами, другой с арабскими. Потом просто взять первый символ из введенного текста и посмотреть в какой из массивов он входит. Если в оба - взять след. символ.. Ну как-то так=) Или просто составить список(опять же массив) специфичных(которых нет в других языках) символов для каждого языка и искать их вхождения во введенном тексте.
мне нужно сделать , чтобы арабские слова отображались одним шрифтом,
Ну я выше написал примерные алгоритмы как определить язык. Мб что-нить лучше и есть..
разработать систему тегов и вставить теги в текст словаря - и чтобы приложение отображало их в соотвтетствии с тегами
Вообще не понял это..
автоматически определять язык слова и выводить его в определенном шрифте.
см.выше=)
 
R

rustamh

ВОПРОС:
теперь меня мучает другой вопрос. в арабском языке текст выглядит следующим образом. пишутся согласные буквы, а над ними значки похожие на наше ударение -черточки над и под словом. и некоторые другие.
например слово "какала" будет писаться так - ККЛ - и над каждой согласной будет стоять значок в виде нашего ударения.
а слово "какал" будет писаться точно также ККЛ - только над буквой Л в конце будет стоять не черточка (которая обозначает "а") , а кружочек, который обозначает отсутствие гласного.
так в вот, в MS WORD если я в поиске наберу слово ККЛ - без указания черточек - он найдет и КаКаЛа и КаКаЛ и КуКиЛа и КаКаЛи. То есть ворд ищет без учета черточек, если я их не задал.
а если я введу ККаЛ - то есть над средней буквой поставлю черточку - тогда он найдет КаКаЛа, КаКаЛ и КаКаЛи, а КуКиЛа уже не найдет, потому что в поиске я указал что над второй К должа быть "а".

а тот поиск который у меня пока работает в программе ищет буквально все символы, не как не различая букв и вспомогательных значков. будто значки - полноправные буквы.
можно ли можно ли как-то использовать возможности поиска, которые есть в Word в своей программе?
подскажите пожалуйста!




если кому-то интересно - поделюсь полученным опытом.

в качестве окна вывода использую область броузера.

разбиваю текст перевода на массив (в качестве разделителя при разбивке пробел), который содержит и русский текст и араб. в перемешку.
затем, делаю перебор всех элементов массива и созданной по подсказке Vitalа (спасибо ему огромное) функцией определяю , какого языка слово .
если начинается арабский текст, заменяю элемент массива на то же слово + вначала вставляю html открывающий тег, который отвечает за форматирование
<span style="font-size:20 ....> а когда дохожу до последнего слова арабского текста, также заменяю элемент массива на текст + закрывающий тег.

в результате все отображается в окне броузера просто на удивление красиво. глаз не оторвать просто ;)


только единественное - пишу все в C# так как друг мне дал заготовку проги именно в C# написанную. так что может эту тему перенести в другой раздел?

и еще кстати - когда я спрашивал про базу в текстовом формате - у меня ее еще не было. и Vital писал:
C большой базой это будет ОЧЕНЬ медленно. Нельзя так делать.

но так как друг прислал мне заготовку именно с использованием текста - я решил попробовать - а база 40 000 строк (ну может это не большая конечно).
поиск срабатывает моментально. даже когда скажем делаю найти сочетание из 2-х букв - а их ведь очень много на протяжении 40 000 строк.
 
V

vital

которые есть в Word в своей программе
Ищите в нете про OLE.
Это не большая=) Это совсем не большая=) Но для текстового файла все-равно много слишком. Я бы порекомендовал какую-нить небольшую бд.. Благо, большой выбор..
 
R

rustamh

а не прибегая к оле обжект как подобный алгоритм поиска создать, есть какие нибудь соображения у кого-нибудь?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!