Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2010, 23:18   #1
kardinal94
Форумчанин
 
Аватар для kardinal94
 
Регистрация: 26.04.2010
Сообщений: 105
По умолчанию Типа синонимайзер

Всем еще раз доброго времени суток. Мне тут нужна одна программка, типа рерайт, но только для меня.
Суть в том, что при наборе текста автоматом меняются слова. Базу буду делать сам. Исходя из этого есть идеи, может у вас будут получше.
Итак, мне надо текст набирать в Мемо, при наборе программа обращается к базе, если находит такое слово, автоматом заменяет.
Теперь САБЖ.
Есть идея сделать базу например в INI.
Пишу там
[Привет]
1=Здравствуйте.
2= Добрый день.
При необходимости читаю ('Привет', '1' или '2' или '3') беру любой из них. Но таким образом надо будет каждое слово прописывать).
При этом насколько я понимаю мне надо каждую строку мемо делать стринг, обращаться к каждому слову отдельно и искть ее в базе.
У кого какие идеи и способы реализации.
kardinal94 вне форума Ответить с цитированием
Старый 30.07.2010, 23:20   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

ничего не понял. Приведите пример
psycho-coder вне форума Ответить с цитированием
Старый 30.07.2010, 23:28   #3
kardinal94
Форумчанин
 
Аватар для kardinal94
 
Регистрация: 26.04.2010
Сообщений: 105
По умолчанию

Извините. Мозг спит уже два часа ). Например, пишу текст в Мемо, сижу просто набираю, например я написал "Привет, как у вас дела?". Разбивается стринг на слова "Привер", "Как", "у", "Вас", "дела", "?". программа идет в INI файл, ищет сектор:
[Привет], там например содержится 1=Здравствуйте, 2= Добрый день. вместо слова "Привет" подставляет одно из значений сектора (Здравствуйте или добрый день). и так с каждым словом. Так понятней?
kardinal94 вне форума Ответить с цитированием
Старый 30.07.2010, 23:30   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

То есть она выводит список доступных вариантов из [Привет]?
psycho-coder вне форума Ответить с цитированием
Старый 30.07.2010, 23:32   #5
kardinal94
Форумчанин
 
Аватар для kardinal94
 
Регистрация: 26.04.2010
Сообщений: 105
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
То есть она выводит список доступных вариантов из [Привет]?
Подставляет вместо "Привет" один из доступных вариантов.
kardinal94 вне форума Ответить с цитированием
Старый 30.07.2010, 23:33   #6
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

А какой именно? А если их там пять или шесть? На свой выбор?
psycho-coder вне форума Ответить с цитированием
Старый 30.07.2010, 23:39   #7
kardinal94
Форумчанин
 
Аватар для kardinal94
 
Регистрация: 26.04.2010
Сообщений: 105
По умолчанию

В идеале конечно можно было подсветку слов, которые есть в базе сделать и при клипе правой кнопкой мыши в popup варианты и заменяешь, НО там одним Memo думаю не обойтись, нужны сторонние компоненты, а это не очень хорошо и реализация будет намного окей.

А так пока можно загружать в какую то форму, listbox и выбирать

Последний раз редактировалось artemavd; 31.07.2010 в 10:09.
kardinal94 вне форума Ответить с цитированием
Старый 30.07.2010, 23:45   #8
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

А ну тогда, загрузить *.ini файл в память и с ним работать.
При наборе текста проверять, например через PosEx, содержатся ли совпадения в файле. Если есть то запускать обработку.
Если не к спеху завтра вечером могу взяться помочь.

А по хорошему думаю нужно базу данных юзать

Последний раз редактировалось psycho-coder; 30.07.2010 в 23:46. Причина: доп
psycho-coder вне форума Ответить с цитированием
Старый 31.07.2010, 00:02   #9
kardinal94
Форумчанин
 
Аватар для kardinal94
 
Регистрация: 26.04.2010
Сообщений: 105
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
А ну тогда, загрузить *.ini файл в память и с ним работать.
При наборе текста проверять, например через PosEx, содержатся ли совпадения в файле. Если есть то запускать обработку.
Если не к спеху завтра вечером могу взяться помочь.

А по хорошему думаю нужно базу данных юзать
ну база будет думаю слишком тяжелая будет. В принципе принцип работы с INI понятен, мне надо просто там искать сектор с названием, идентичным каждому слову текста, только не понятно мне как брать из мемо каждое слово по отдельности и как именно его обрабатывать? Через цикл? буду рад помощи. В принципе не очень спешу
kardinal94 вне форума Ответить с цитированием
Старый 31.07.2010, 00:13   #10
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Ну, добыть набираемое слово можно так
Код:
procedure TForm1.Memo1Change(Sender: TObject);
begin
  if Tag > 0 then
  begin
    Memo1.SelStart := Tag;
    Memo1.SelLength := Abs(Length(Memo1.Text) - Tag);
    Label2.Caption := Memo1.SelText;
    Memo1.SelStart := Length(Memo1.Text);
  end;
end;

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #32 then Tag := Memo1.SelStart;
end;
Разумеется еще есть над чем поработать
Вложения
Тип файла: rar imlist.rar (169.5 Кб, 44 просмотров)

Последний раз редактировалось psycho-coder; 31.07.2010 в 00:15.
psycho-coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Синонимайзер в microsoft word ? Lavr Microsoft Office Word 2 24.04.2010 18:13
in Формула типа String out результат типа Double Gypsy Общие вопросы Delphi 3 16.04.2010 10:21
Запись числа типа инт в ячейку двумерного массива типа char AxenicX Помощь студентам 1 25.09.2009 00:35
Бесплатный онлайн синонимайзер!!!! VipBlackSeoF Помощь студентам 1 30.01.2009 08:57