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

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

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

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

Ответ
 
Опции темы
Старый 20.08.2008, 18:20   #1
Aziz
Оператор ЭВМ
 
Регистрация: 24.02.2007
Сообщений: 20
Написано 0 полезных сообщений
(для 0 пользователей)
Злость чтение ресурса TXT


мобильный переводчик

var okCommand:command;
iru:integer;
ru, en:string;

okCommand:= createCommand('OK', CM_OK, 1);// Создание формы
showForm; addCommand(okCommand);
iru:= formAddTextField('Введите слово на русском', '', 20, TF_ANY);

while (getClickedCommand <> okCommand) do delay(100);
ru:=formGetText(iru);

это ввод в форму слова на русском
а в ресурсном файле например следующие строчки

ru:=я; en:=i;
ru:=ты; en:=you;
ru:=da; en:=yes;
......
ru:=дом; en:=home;
или такие строки (я не знаю как удобнее)

if ru:='я' then en:='i';
if ru:='ты' then en:='you';
......
if ru:='дом' then en:='home';
как сделать чтоб при вводе в форму слова например ДОМ
программа открывала ресурсный файл и искала строку с переводом, т.е HOME, чтобы можно было вывести его в конвайсе

clearForm;
showCanvas; // Растр

setColor(255,0,0); drawText(ku,10,30);
(Offline)
 
Ответить с цитированием
Старый 20.08.2008, 21:49   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: чтение ресурса TXT

Ну, например, ресурсный файл типа
HOME
ДОМ
...
...
#
#
А поиск тогда как-то так:
var
 
word:string;
 
en:string;
 
rus:string;
 
found:boolean;
begin
 
 word
:=...//Вводим слово
 
repeat
  en
:=readLine(res);//Читаем английское слово
  
rus:=readLine(res);//Читаем его перевод
  
if UpCase(word)=en then
  begin
   word
:=rus;
   
found:=True;
  
end;
 
until (en='#')or(found);
 
//В переменной word будет перевод, или английское слово, если перевод не найден 
(Offline)
 
Ответить с цитированием
Старый 21.08.2008, 04:07   #3
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: чтение ресурса TXT

1. Во первых UpCase не пашет для русских букв.
2. А перекодировку из Win-1251 в UTF-8 кто будет делать?

Поиск русского текста в ресурсе действительно дело проблематичное. При неумелом подходе можно много времени тратить попусту.
(Offline)
 
Ответить с цитированием
Старый 21.08.2008, 07:54   #4
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: чтение ресурса TXT

Ну, если делать только англо-русский перевод, то применять UpCase для русских слов не потребуется =).
Ну а перекодировку я не писал потому, что просто показывал принцип поиска, а не рабочую программу.
(Offline)
 
Ответить с цитированием
Старый 21.08.2008, 14:05   #5
Aziz
Оператор ЭВМ
 
Регистрация: 24.02.2007
Сообщений: 20
Написано 0 полезных сообщений
(для 0 пользователей)
Re: чтение ресурса TXT

Народ! А что тогда в замен для UpCase?

ViNT большое спасибо! Но твой код допускает баги ( и даже без COLOR="DarkOrange"]UpCase[/color]а не работает с кирилицей (utf 8)

подскажите пожалуйста все-таки!
как сделать чтоб

home
дом
yes
да
no
нет
можно было переводить как в одну так и в обратную сторону. может как то так?

en =home
ru=дом
en =yes
ru=да
en =no
ru=нет
плиз!плиз!плиз!
(Offline)
 
Ответить с цитированием
Старый 21.08.2008, 15:34   #6
Aziz
Оператор ЭВМ
 
Регистрация: 24.02.2007
Сообщений: 20
Написано 0 полезных сообщений
(для 0 пользователей)
Re: чтение ресурса TXT

word,wort:string;
word:=...//Вводим слово
repeat

ru:=readLine(res);//Читаем английское слово
en:=readLine(res);//Читаем его перевод
if word=ru then wort:=en;
until (ru='#') or (word=ru);


если в списке руские слова то нифига не находит в поиске!
HOME
ДОМ
YES
ДА
если в списке транслит то находит!
HOME
DOM
YES
DA

подскажите решение для кирилицы плиз!
(Offline)
 
Ответить с цитированием
Старый 21.08.2008, 17:51   #7
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: чтение ресурса TXT

Сообщение от odd Посмотреть сообщение
1. Во первых UpCase не пашет для русских букв.
2. А перекодировку из Win-1251 в UTF-8 кто будет делать?

Поиск русского текста в ресурсе действительно дело проблематичное. При неумелом подходе можно много времени тратить попусту.
А второй пункт выполнил? Файл со словами в какой кодировке?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Aziz (22.08.2008)
Старый 21.08.2008, 21:33   #8
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: чтение ресурса TXT

Я просто приводил пример оптимальной структуры файла, а кодировку естественно, нужно учитывать. Функция для перекодировки из win-1251 в utf8 есть ЗДЕСЬ.
На счет UpCase - думаю, можно написать функцию и для русских строк, но придется перебирать строку побайтно, большие строки будут обрабатываться дольше(хотя, возможно, стандартная функция работает так же).
(Offline)
 
Ответить с цитированием
Старый 21.08.2008, 23:21   #9
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: чтение ресурса TXT

Я пользуюсь такой функцией перекодировки из Win-1251 в UTF-8 (написал сам):
function win2utf(sstring): string;
var 
lenchiinteger;
  
ststring;
begin
 st
:=''len:=Length(s)-1;
 for 
i:=0 to len do begin ch:=ord(GetChar(s,i)); if ch>122 then st:=st+chr(ch+1104) else st:=st+chr(ch); end;
 
win2utf:=st;
end
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Aziz (22.08.2008)
Старый 22.08.2008, 12:50   #10
Aziz
Оператор ЭВМ
 
Регистрация: 24.02.2007
Сообщений: 20
Написано 0 полезных сообщений
(для 0 пользователей)
Re: чтение ресурса TXT

СПС ФРЕНДЫ

1) я когда сохранял в блокноте то выбирал УТФ 8, че в программе все ровно он видит как Win? надо прописывать перекодировку?
2) если 1 верно, то но как пользоваться этой функцией?

function win2utf(s: string): string;
var len, ch, i: integer;
st: string;
begin
st:=''; len:=Length(s)-1;
for i:=0 to len do begin ch:=ord(GetChar(s,i)); if ch>122 then st:=st+chr(ch+1104) else st:=st+chr(ch); end;
win2utf:=st;
end;
переменная для ввода слова в форму (word:=// введите слово.... "я ввел дом")

и что? как то так что ли ?

NewWord:=word(win2utf) ??



п.с. Думаю это мой финальный вопрос по этой теме))
извините нуба что отвлекаю!

Последний раз редактировалось Aziz, 22.08.2008 в 13:13.
(Offline)
 
Ответить с цитированием
Старый 22.08.2008, 15:50   #11
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: чтение ресурса TXT

Текст сохраняешь в Win-1251 (он же ANSI). Так он места меньше будет занимать.
Читаешь русские строки так:

s:=ReadLine(res); s:=win2utf(s); 
А потом уже можешь сравнивать типа:

if 'ДОМ' then ... 
(Offline)
 
Ответить с цитированием
Старый 22.08.2008, 18:26   #12
Aziz
Оператор ЭВМ
 
Регистрация: 24.02.2007
Сообщений: 20
Написано 0 полезных сообщений
(для 0 пользователей)
Re: чтение ресурса TXT

спасибо ViNT
спасибо pilgrim
огромное спасибо odd

____________________________

please close the post
(Offline)
 
Ответить с цитированием
Старый 26.02.2014, 12:57   #13
RblSb
Оператор ЭВМ
 
Аватар для RblSb
 
Регистрация: 25.08.2013
Адрес: Москва
Сообщений: 45
Написано 13 полезных сообщений
(для 28 пользователей)
Ответ: чтение ресурса TXT

С чтением русского текста все понятно, а как его нормально записать в файл в фс?
точнее неважно как записывать, главное чтобы потом можно было нормально открыть обратно

Последний раз редактировалось RblSb, 26.02.2014 в 15:03.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение произвольной строки из ресурса Skythrone Библиотеки 12 02.12.2008 11:57
русский текст из .txt ресурса beZ_probleM Основной форум 7 17.10.2008 21:37
Развитие ресурса... johnk Наш форум 14 05.03.2007 15:56
Вожможно ли загрузить картинку не из ресурса ^SeM^ Основной форум 33 04.02.2007 09:08


Часовой пояс GMT +1, время: 13:11.


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