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

Тема в разделе "Общие вопросы по С и С++", создана пользователем rustamh, 7 ноя 2009.

Статус темы:
Закрыта.
  1. rustamh

    rustamh Гость

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

    заранее спасибо.
     
  2. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Уф.. Ну насчет среды увас выбора нет. Писать на чистом C++ полностью интерфейс.. Зачем? Поэтому VS C++.
    А на счет алгоритма.. В чем поблема? Есть слово и есть словарь в котором его перевод. Или вы не знаете алгоритмы поиска в файле/массиве?

    Вот..
     
  3. rustamh

    rustamh Гость

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

    vital Больной Компом Детектед

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

    rustamh Гость

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

    vital Больной Компом Детектед

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

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Кроме того, в арабском языке принята запись с права на лево. Для ее реализации вам придется или найти готовую реализацию Unicode Bidirectional Algorithm или написать ее самому.
     
  8. rustamh

    rustamh Гость

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

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

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

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Это совсем не то. Вот изучайте: http://ru.wikipedia.org/wiki/Арабское_письмо
    http://www.unicode.org/reports/tr9/
     
  10. rustamh

    rustamh Гость

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

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

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

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Используем базу данных. Тут и обсуждать-то нечего..
     
  12. rustamh

    rustamh Гость

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

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

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

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

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

    vital Больной Компом Детектед

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

    rustamh Гость

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

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




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

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

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

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


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

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

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

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Ищите в нете про OLE.
    Это не большая=) Это совсем не большая=) Но для текстового файла все-равно много слишком. Я бы порекомендовал какую-нить небольшую бд.. Благо, большой выбор..
     
  16. rustamh

    rustamh Гость

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

Поделиться этой страницей