![]() |
|
|
![]()
|
|
| DCamer |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 29.1.2010 Репутация: нет Всего: нет |
При вводе текста в Edit1 нужно чтобы при нажатии на button в Edit2 был загружен перевод из текстового файла выполненного в стиле "Оригинал=Перевод", как такое можно создать?
Это сообщение отредактировал(а) DCamer - 26.3.2010, 00:15 --------------------
Нуб! Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| DCamer |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 29.1.2010 Репутация: нет Всего: нет |
Данкинг, В той теме программа по проверки правильности ввода перевода, но мне нужно другое, чтобы по файлу с переводом был поиск слова, а не сравнение номера строки (Я=1, I'am=1).
P.S. "Оригинал=Перевод" - это стиль в одном файле! Добавлено @ 00:27 Нужно чтобы при вводе оригинального текста в Edit1, в Edit2 выводился текст который справа от равно! Это сообщение отредактировал(а) DCamer - 26.3.2010, 00:28 --------------------
Нуб! Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Грузи файл в TStringList и в цикле ищи построчно. Для небольших объёмов подойдёт, но для больших, разумеется, без БД не обойтись. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| DCamer |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 29.1.2010 Репутация: нет Всего: нет |
Это сообщение отредактировал(а) DCamer - 26.3.2010, 02:51 --------------------
Нуб! Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010 |
|||
|
||||
| orthrus |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 400 Регистрация: 30.10.2007 Где: г. Усть-Илимск(Ир кутская обл.) Репутация: 4 Всего: 16 |
Если я всё правильно понял то можно воспользоваться замечательным шаблоном std::map. Будет примерно вот так:
1. Создаем чистый проект; 2. Кидаем нужные компоненты на форму, в нашем случае два Edit и один Button; 3. В описание класса формы в секцию private добавляем
4. В конструкторе формы, можно и в обработчике события OnCreate это кому как удобно, пишем следующий код:
5. в обработчике события OnClick кнопки Button пишем вот такой код:
6. Радуемся что всё работает P.S. В следующий раз если хотите чтоб за вас всё решили то идём в центр помощи -------------------- У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой ![]() |
||||||
|
|||||||
| Usper |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Если использовать встроенный в билдер класс TStringList, то всё окажется ещё проще:
в секцию private или public класса TForm1 запихиваем:
в конструктор формы:
в обработчик нажатия на кнопку:
Это сообщение отредактировал(а) Usper - 26.3.2010, 10:17 -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
||||||
|
|||||||
| DCamer |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 29.1.2010 Репутация: нет Всего: нет |
orthrus,
"[BCC32 Error] Unit2.h(21): E2316 'map' is not a member of 'std'" --------------------
Нуб! Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010 |
||||
|
|||||
| DCamer |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 29.1.2010 Репутация: нет Всего: нет |
Предыдущая ошибка исправлена добавлением инклудов, но есть другая
"[BCC32 Error] Unit2.cpp(25): E2094 'operator+' not implemented in type 'map<string,string,less<string>,allocator<pair<const string,string> > >' for arguments of type 'wchar_t *' Full parser context Unit2.cpp(24): parsing: void _fastcall TForm2::Button1Click(TObject *)" Добавлено через 6 минут и 31 секунду Usper, ваш код работает отлично, только немного не хватает, пример поиск слов "Текст раз, текст два" и в Edit2 перевод подряд этих слов Это сообщение отредактировал(а) DCamer - 26.3.2010, 12:31 --------------------
Нуб! Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010 |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Ну это вы уже замахнулись! Где вы видели такие словари? Если требуется подобный функционал нужно усложнять программу, парсить входную строку. Хотя это не так уж и сложно.
-------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| DCamer |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 29.1.2010 Репутация: нет Всего: нет |
удалено
Добавлено @ 13:53 Usper, словарь сам в таком же виде "Слово=Перевод" и чтобы edit2 соединял перевод слов, разделяя каждое слово пробелом Это сообщение отредактировал(а) DCamer - 26.3.2010, 13:54 --------------------
Нуб! Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010 |
|||
|
||||
| Usper |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Что?
Вот функция которая умеет разбивать строку по запятым:
Как видите ничего сложного. Соответственно код кнопки:
Ну и не забыть поместить объявление функции в объявление класса. Это сообщение отредактировал(а) Usper - 26.3.2010, 14:58 -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
||||
|
|||||
| DCamer |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 29.1.2010 Репутация: нет Всего: нет |
Например, если в Edit1 написан текст "Секретный файл", то в Edit2 должны быть выведены переводы слов "Секретный" и "файл" через пробел, т.е. "Secret file" --------------------
Нуб! Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010 |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Ну так и что? Почему мой вариант не устраивает? Замените запятую в Delimeters на пробел или даже добавьте его, поправьте формирование выходной строки тут:
и всё будет работать. -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| DCamer |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 29.1.2010 Репутация: нет Всего: нет |
Usper, вот это не устраивает:
[BCC32 Error] Unit2.cpp(30): E2109 Not an allowed type [BCC32 Error] Unit2.cpp(35): E2316 '_fastcall TForm2::Foo(AnsiString)' is not a member of 'TForm2' [BCC32 Error] Unit2.cpp(40): E2034 Cannot convert 'char *' to 'wchar_t *' [BCC32 Error] Unit2.cpp(40): E2342 Type mismatch in parameter 'Content' (wanted 'wchar_t *', got 'char *') [BCC32 Error] Unit2.cpp(46): E2467 '_fastcall TForm2::Foo(AnsiString)' cannot return a value --------------------
Нуб! Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010 |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |