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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2010, 16:17   #1
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию Memo Delphi

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

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
for i:= 0 to memo1.Lines.Count do
if edit1.Text = memo1.Lines[i] then
begin
 MessageDlg('Это слово уже есть в тексте Memo!',mtInformation,[mbOk],0);
  Exit; // выход из процедуры обработки события
end;
  Memo1.Lines.Add(edit1.Text);
end;

Последний раз редактировалось Stilet; 20.02.2011 в 19:25.
StudentMarat вне форума Ответить с цитированием
Старый 03.04.2010, 16:57   #2
Xatr
Форумчанин
 
Аватар для Xatr
 
Регистрация: 17.09.2008
Сообщений: 349
По умолчанию

чтобы посмотреть текущую строку, нужно это:
Код:
'Line: '+inttostr(Memo1.Perform(EM_LINEFROMCHAR,-1, 0))
в данном случае только:
Код:
label1.caption:='Line: '+inttostr(i+1);
а текущее слово нужно считать...
если чем помог, поставьте отзыв на весы

Последний раз редактировалось Xatr; 03.04.2010 в 17:00.
Xatr вне форума Ответить с цитированием
Старый 03.04.2010, 21:07   #3
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

есть подобная решенная задача, отдам за дешево

а так если совет, то в каждой строке мемо ищи слово из эдита
слово находится как массив символов до пробела\точки etc
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 20.02.2011, 19:14   #4
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Пока вот до чего додумался
Код:
procedure TForm1.Button1Click(Sender: TObject);
var // Объявляем переменные
Find:string; // Искомая строка
b: integer;
begin
find:=Edit1.Text; // Записываем в find текст из Edit
b :=  Pos(FIND, Memo1.Lines.Text);
    If(b<>0) and (Memo1.Lines.Text[b-1] <> ' ') and (Memo1.Lines.Text[b+Length(FIND)] <> ' ')
      Then
        Begin
          ShowMessage('Такое слово есть');
          Memo1.SetFocus();
          Memo1.SelStart:=Pos(FIND,Memo1.Lines.Text)-1;
          Memo1.SelLength:=Length(FIND);
        End
    else
    Begin
      Memo1.Lines.Add(edit1.Text);
    end;
end;
Здесь получается, что когда я ввожу в Memo текст "Я болею за спартак" а в edit ввести слово "спарта" то да программа добавляет его в конец текста в редакторе как и положено по заданию. Ну а если в edit ввести слово "спартак" то программа даже и не выдает сообщение, что это слово есть в Memo добавляет его в конец редактора. Помогите это исправить Help me
StudentMarat вне форума Ответить с цитированием
Старый 22.02.2011, 02:21   #5
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

вот написал. Даже номер строки определяет, если слово есть. Не получается номер слова. Помогите

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
PosIndex: Integer;

function SpacedWord(const A: string): string;
begin
Result :=Trim(A) + ' ';
end;
begin
PosIndex := Pos(SpacedWord(Edit1.Text), SpacedWord(Memo1.Lines.Text)) - 1;
if PosIndex >= 0 then
begin
ShowMessage('Такое слово есть');
label3.Caption:='Номер строки ' + IntToStr(memo1.CaretPos.y);
Memo1.SetFocus;
Memo1.SelStart := PosIndex;
Memo1.SelLength := Length(Edit1.Text);
end
else
Memo1.Lines.Add(Edit1.Text);
end;
StudentMarat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi(memo) 2009 Помощь студентам 7 18.02.2010 16:30
Delphi Работа с memo mega-X-mozg Помощь студентам 3 13.02.2010 21:09
Memo и Edit в Delphi werser Помощь студентам 4 24.08.2009 19:30
[Delphi] Memo с нумирацией строк Kolhan Помощь студентам 3 22.07.2009 08:26
компонент Memo в delphi vvaassiill Помощь студентам 1 29.05.2007 20:47