Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 15.06.2011, 15:53   #1
Dexter
AnyKey`щик
 
Аватар для Dexter
 
Регистрация: 15.12.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос Как создать словарь?

Всем привет! Я хочу создать словарь для моб.телефона,например,эсперанто-русский Вопрос к профи:как реализовать это на MP?
Типа вот этого:
Вложения
Тип файла: zip mobilelexicon.zip (752.8 Кб, 523 просмотров)
(Offline)
 
Ответить с цитированием
Старый 15.06.2011, 15:56   #2
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Как создать словарь?

Скачать из интернета большой-большой словарь в txt(словари для взлома паролей подойдут) и читать оттуда слова?
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 15.06.2011, 16:15   #3
Dexter
AnyKey`щик
 
Аватар для Dexter
 
Регистрация: 15.12.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Как создать словарь?

Нет.Словарь для перевода с одного языка на другой.Пример я выложил)
(Offline)
 
Ответить с цитированием
Старый 15.06.2011, 16:28   #4
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Ответ: Как создать словарь?

Как вариант создать масив(заполнять из файлла) в котором одно значение слово, другое перевод. Осущеествить поиск слова и вывести соответствующее значение.
__________________




(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dexter (16.06.2011)
Старый 15.06.2011, 20:28   #5
YellowAfterlife
ПроЭктировщик
 
Аватар для YellowAfterlife
 
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений
(для 219 пользователей)
Ответ: Как создать словарь?

Для вашей информации, именно такая штука описана в справке MidletPascal 2 - Раздел Tutorial - Advanced Features. Последняя часть (Resources).
Если подгружать данные в память, то можно воспользоватся Lib_htable, который прилагается как пример тут. Hashtable позволяет хранить данные не по индексу, а по имени. То есть можно вносить в ключ с именем слова на одном языке слово (+описание?) на другом языке.
Если это помогает, кнопка "Полезно" находится в нижнем правом углу сообщений.
__________________

Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо YellowAfterlife за это полезное сообщение:
Aymurza (03.10.2013), Dexter (16.06.2011)
Старый 16.06.2011, 18:31   #6
DIMMON4IK
Знающий
 
Аватар для DIMMON4IK
 
Регистрация: 21.07.2009
Адрес: Украина
Сообщений: 219
Написано 44 полезных сообщений
(для 78 пользователей)
Ответ: Как создать словарь?

Создаешь на каждый язык 2 файла: в первом - слово, во втором - перевод. В программе загружаешь слова и их переводы в 2 массива, ищешь в 1 массиве нужное слово, выводишь перевод со второго массива по номеру элемента в первом массиве
__________________


(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dexter (16.06.2011)
Старый 16.06.2011, 19:44   #7
_Nox_
ПроЭктировщик
 
Регистрация: 21.06.2009
Адрес: Беларусь, Столбцы
Сообщений: 148
Написано 32 полезных сообщений
(для 57 пользователей)
Ответ: Как создать словарь?

Если предварительно отсортировать по первой букве,затем отсортировать по второй букве (в отрезках с одинаковой первой буквой) и т д. (на компьютере конечно), то можно применить бинарный поиск, и находить искомое слово довольно быстро

+ сразу разбить все слова на файлы по первой букве, чтобы не грузить всё и сразу а только ту часть в которой мы будем осуществлять поиск
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dexter (16.06.2011)
Старый 16.06.2011, 19:54   #8
Dexter
AnyKey`щик
 
Аватар для Dexter
 
Регистрация: 15.12.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Как создать словарь?

Я в программировании совсем новичок.
Пробовал использовать исходники программы PhoneBook,но там вылетает "Необработанное исключение" Out of Memory Error...
Если вам не сложно,то выложите,пожалуйста,рабочие исходники.
Вложения
Тип файла: zip PhoneBook.zip (56.9 Кб, 524 просмотров)
(Offline)
 
Ответить с цитированием
Старый 16.06.2011, 20:26   #9
Dexter
AnyKey`щик
 
Аватар для Dexter
 
Регистрация: 15.12.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Как создать словарь?

Сообщение от _Nox_ Посмотреть сообщение
Если предварительно отсортировать по первой букве,затем отсортировать по второй букве (в отрезках с одинаковой первой буквой) и т д. (на компьютере конечно), то можно применить бинарный поиск, и находить искомое слово довольно быстро

+ сразу разбить все слова на файлы по первой букве, чтобы не грузить всё и сразу а только ту часть в которой мы будем осуществлять поиск
Это для меня пока сложновато Мне пример нужен,исходники...
__________________
Кто не был новичком,пусть тот первым бросит в меня камень!
(Offline)
 
Ответить с цитированием
Старый 24.06.2011, 16:20   #10
Dexter
AnyKey`щик
 
Аватар для Dexter
 
Регистрация: 15.12.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Как создать словарь?

import java.io.*;
import java.util.Hashtable;

public class ResourcesUTF8
{

    public ResourcesUTF8(String s, String s1, String s2)
    {
        buffer = new StringBuffer();
        endFile = false;
        fileName = null;
        extenssion = "";
        load = false;
        error = false;
        extenssion = s2;
        load = false;
        name = s1;
        directory = '/' + (s != null && s.trim().length() != 0 ? s + '/' : "");
    }

    public String get(String s)
    {
        if(!load && !load())
            return "";
        String s1 = (String)hashtable.get(s);
        if(s1 == null)
            return "";
        else
            return s1;
    }

    public void unload()
    {
        hashtable = null;
        if(fileName != null)
        {
            name = null;
            extenssion = null;
            directory = null;
        }
        load = false;
        endFile = true;
        buffer = null;
    }

    public boolean load()
    {
        InputStream inputstream;
        if(error)
            return false;
        inputstream = null;
        InputStream inputstream1;
        boolean flag;
        inputstream1 = getInputStream();
        if(inputstream1 != null)
            break MISSING_BLOCK_LABEL_37;
        flag = false;
        if(inputstream != null)
            try
            {
                inputstream.close();
            }
            catch(IOException ioexception) { }
        return flag;
        boolean flag1;
        inputstream = new DataInputStream(inputstream1);
        hashtable = new Hashtable();
        endFile = false;
        buffer = new StringBuffer();
        for(String s = readKey(inputstream); s != null; s = readKey(inputstream))
        {
            String s1 = s.trim();
            if(s1.length() > 0)
            {
                String s2 = readValue(inputstream);
                if(s2 != null)
                    hashtable.put(s1, s2.trim());
            }
        }

        inputstream.close();
        load = true;
        flag1 = true;
        if(inputstream != null)
            try
            {
                inputstream.close();
            }
            catch(IOException ioexception1) { }
        try
        {
            return flag1;
        }
        catch(Exception exception)
        {
            error = true;
        }
        unload();
        flag = false;
        if(inputstream != null)
            try
            {
                inputstream.close();
            }
            catch(IOException ioexception2) { }
        return flag;
        Exception exception1;
        exception1;
        if(inputstream != null)
            try
            {
                inputstream.close();
            }
            catch(IOException ioexception3) { }
        throw exception1;
    }

    private InputStream getInputStream()
    {
        if(error)
            return null;
        if(fileName == null)
        {
            InputStream inputstream = null;
            String s = System.getProperty("microedition.locale");
            if(s != null)
            {
                s = s.replace('-', '_');
                fileName = directory + name + "_" + s + "." + extenssion;
                inputstream = getClass().getResourceAsStream(fileName);
                if(inputstream != null)
                    return inputstream;
                int i = s.indexOf('_');
                if(i != -1)
                {
                    s = s.substring(0, i);
                    fileName = directory + name + "_" + s + "." + extenssion;
                    inputstream = getClass().getResourceAsStream(fileName);
                    if(inputstream != null)
                        return inputstream;
                }
            }
            fileName = directory + name + "." + extenssion;
            inputstream = getClass().getResourceAsStream(fileName);
            if(inputstream == null)
            {
                error = true;
                unload();
                return null;
            } else
            {
                return inputstream;
            }
        } else
        {
            return getClass().getResourceAsStream(fileName);
        }
    }

    private String readKey(DataInputStream datainputstream)
        throws IOException
    {
        if(endFile)
            return null;
        buffer.setLength(0);
        int i;
        for(i = -1; (i = datainputstream.read()) > 0 && i != 10 && i != 61;)
        {
            char c = (char)i;
            buffer.append(c);
        }

        if(i == -1)
        {
            endFile = true;
            return null;
        } else
        {
            return buffer.toString();
        }
    }

    private String readValue(InputStream inputstream)
        throws IOException
    {
        if(endFile)
            return null;
        buffer.setLength(0);
        for(int i1 = 0; (i1 = inputstream.read()) > 0 && i1 != 10;)
        {
            int i = i1 & 0xff;
            switch(i >> 4)
            {
            case 0: // '\0'
            case 1: // '\001'
            case 2: // '\002'
            case 3: // '\003'
            case 4: // '\004'
            case 5: // '\005'
            case 6: // '\006'
            case 7: // '\007'
                buffer.append((char)i);
                break;

            case 12: // '\f'
            case 13: // '\r'
                int j = getByte(inputstream);
                if((j & 0xc0) != 128)
                    throw new UTFDataFormatException();
                buffer.append((char)((i & 0x1f) << 6 | j & 0x3f));
                break;

            case 14: // '\016'
                int k = getByte(inputstream);
                int l = getByte(inputstream);
                if((k & 0xc0) != 128 || (l & 0xc0) != 128)
                    throw new UTFDataFormatException();
                buffer.append((char)((i & 0xf) << 12 | (k & 0x3f) << 6 | (l & 0x3f) << 0));
                break;

            case 8: // '\b'
            case 9: // '\t'
            case 10: // '\n'
            case 11: // '\013'
            default:
                throw new UTFDataFormatException();
            }
        }

        return buffer.toString();
    }

    private int getByte(InputStream inputstream)
        throws IOException, UTFDataFormatException
    {
        int i = inputstream.read();
        if(i < 0 || i == 10)
        {
            endFile = true;
            throw new UTFDataFormatException();
        } else
        {
            return i;
        }
    }

    public static final char DELIMITER = 61;
    private Hashtable hashtable;
    private StringBuffer buffer;
    private boolean endFile;
    private String fileName;
    private String directory;
    private String extenssion;
    private String name;
    private boolean load;
    private boolean error;
}
import java.io.*;
import java.util.Hashtable;

public class ResourcesUTF8
{

    public ResourcesUTF8(String s, String s1, String s2)
    {
        buffer = new StringBuffer();
        endFile = false;
        fileName = null;
        extenssion = "";
        load = false;
        error = false;
        extenssion = s2;
        load = false;
        name = s1;
        directory = '/' + (s != null && s.trim().length() != 0 ? s + '/' : "");
    }

    public String get(String s)
    {
        if(!load && !load())
            return "";
        String s1 = (String)hashtable.get(s);
        if(s1 == null)
            return "";
        else
            return s1;
    }

    public void unload()
    {
        hashtable = null;
        if(fileName != null)
        {
            name = null;
            extenssion = null;
            directory = null;
        }
        load = false;
        endFile = true;
        buffer = null;
    }

    public boolean load()
    {
        InputStream inputstream;
        if(error)
            return false;
        inputstream = null;
        InputStream inputstream1;
        boolean flag;
        inputstream1 = getInputStream();
        if(inputstream1 != null)
            break MISSING_BLOCK_LABEL_37;
        flag = false;
        if(inputstream != null)
            try
            {
                inputstream.close();
            }
            catch(IOException ioexception) { }
        return flag;
        boolean flag1;
        inputstream = new DataInputStream(inputstream1);
        hashtable = new Hashtable();
        endFile = false;
        buffer = new StringBuffer();
        for(String s = readKey(inputstream); s != null; s = readKey(inputstream))
        {
            String s1 = s.trim();
            if(s1.length() > 0)
            {
                String s2 = readValue(inputstream);
                if(s2 != null)
                    hashtable.put(s1, s2.trim());
            }
        }
И соответсвенно,word.txt и tran.txt Это Mobilelexicon.
__________________
Кто не был новичком,пусть тот первым бросит в меня камень!
(Offline)
 
Ответить с цитированием
Старый 24.06.2011, 21:17   #11
im_zorg
Знающий
 
Регистрация: 25.10.2009
Сообщений: 338
Написано 53 полезных сообщений
(для 61 пользователей)
Ответ: Как создать словарь?

Оо как тут все сложно..
Program ReTranslit;
var
itemId,i,id : integer;
cmdNext : command;
cmdQuit : command;
name : string;
slovo1,slovo2:array [0..9] of string;

procedure loading;//процедура загрузки слов в словарь, это сделаешь сам я пока вручную пропишу 10ть слов
begin
i:=0;
slovo1[i]:='Привет';slovo2[i]:='Hello'; i:=i+1;
slovo1[i]:='My';slovo2[i]:='Myqw'; i:=i+1;
slovo1[i]:='Имя';slovo2[i]:='Name'; i:=i+1;
slovo1[i]:='Начало';slovo2[i]:='Begin'; i:=i+1;
slovo1[i]:='Конец';slovo2[i]:='End'; i:=i+1;
slovo1[i]:=' и т.д.';slovo2[i]:='и т.д.'; i:=i+1;
slovo1[i]:='';slovo2[i]:=''; i:=i+1;
slovo1[i]:='';slovo2[i]:=''; i:=i+1;
slovo1[i]:='';slovo2[i]:=''; i:=i+1;
slovo1[i]:='';slovo2[i]:=''; i:=0;
end;

begin
loading;
ShowForm;
itemId := FormAddTextField('Введите слово', '', 20, TF_ANY);
cmdNext := CreateCommand('ОК', CM_OK, 1);
AddCommand(cmdNext);
repeat until GetClickedCommand = cmdNext;
name := FormGetText(itemId);
for i:=0 to 9 do if slovo1[i]=name then begin id:=i; break; end;
ShowCanvas;
DrawText(slovo2[id], 0, 0);
Repaint;
cmdQuit := CreateCommand('Quit', CM_EXIT, 1);
AddCommand(cmdQuit);
repeat until GetClickedCommand = cmdQuit;
end.
Потом если захочешь добавишь авторегистр слова которое пишет пользователь, загрузку из тхт сделай сам.. я с тела этот пример писал(если что не работает простите..), так же советую добавить перевод с русского на английский и наоборот, делается это с помощью dolang:boolean додумаешься тоже сам))))
__________________
Я вернулсо в мидлет паскаль О_о уже написал новый проект Сайт моей компании: http://mpcompany.ucoz.com/ Сайт проекта "Путник" : http://putnik-project.ru/
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dexter (24.06.2011)
Старый 24.06.2011, 21:19   #12
im_zorg
Знающий
 
Регистрация: 25.10.2009
Сообщений: 338
Написано 53 полезных сообщений
(для 61 пользователей)
Ответ: Как создать словарь?

__________________
Кто не был новичком,пусть тот первым бросит в меня камень!
Лови
__________________
Я вернулсо в мидлет паскаль О_о уже написал новый проект Сайт моей компании: http://mpcompany.ucoz.com/ Сайт проекта "Путник" : http://putnik-project.ru/
(Offline)
 
Ответить с цитированием
Старый 24.06.2011, 23:52   #13
Dexter
AnyKey`щик
 
Аватар для Dexter
 
Регистрация: 15.12.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Как создать словарь?

Написал,откомпилировал(mp2.02by odd).
"Необработанное исключение"No Class Def Found Error
java.lang.NoClass.DefFoundError
M
Где здесь ошибка?
Вложения
Тип файла: 7z Dict.7z (3.2 Кб, 489 просмотров)
__________________
Кто не был новичком,пусть тот первым бросит в меня камень!
(Offline)
 
Ответить с цитированием
Старый 27.06.2011, 14:36   #14
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Как создать словарь?

Отсутствует M.class - это самый главный класс с кодом твоего приложения. Проверь тщательно исходник почему он может не компилироваться, например одна и та же переменная объявлена дважды.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dexter (27.06.2011)
Старый 27.06.2011, 17:36   #15
Dexter
AnyKey`щик
 
Аватар для Dexter
 
Регистрация: 15.12.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Как создать словарь?

Это мой антивирь не любит M.class))) Сейчас во время компиляции отключил его и прога заработала
Вложения
Тип файла: 7z Dict.7z (4.9 Кб, 504 просмотров)
__________________
Кто не был новичком,пусть тот первым бросит в меня камень!
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 19:04.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com