Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.12.2011, 22:16
Mr_Banochka Mr_Banochka вне форума
Прохожий
 
Регистрация: 29.12.2011
Сообщения: 3
Репутация: 10
По умолчанию Работа с Memo

Всем добрый вечер.

Задача:
Есть файл со строками вида:
PHP код:
//////888/////
****5555****
////4444//// 

файл загружен в Memo21;

Есть строка в Memo2, вида "****" (строка известна);

Задача:
Скопировать эту строку полностью в Edit, чтобы получилось что Edit1.Text:='****5555****';.
Сделал вот так:

Код:
for i := 0 to Memo1.Lines.Count-1 do
 if Memo1.Lines.Strings[i] ="****" then
 Edit1.Text:=Memo1.Lines[i-1];

По идее этот код проверяет все строчку, а нужны только несколько первых символов. Дело в том, что известны первые символы (звездочки), а все что потом - может отличаться.

Рассчитываю на вашу помощь
Ответить с цитированием
  #2  
Старый 29.12.2011, 22:24
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Используй функцию Copy для копирования строки из Memo в локальный String - нужной длины. Затем проверяй скопированное.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
Mr_Banochka (30.12.2011)
  #3  
Старый 29.12.2011, 23:00
Mr_Banochka Mr_Banochka вне форума
Прохожий
 
Регистрация: 29.12.2011
Сообщения: 3
Репутация: 10
По умолчанию

Спасибо большое за подсказку. Сделал так:
Код:
descript:=Pos('****', Memo1.Text);
  if descript>0 then Edit3.Text:=Copy(Memo1.Text, descript, 500);

Но теперь столкнулся с определением длины строки. Знаю, что нужно сделать через length, но как определить номер строки??? не могу вкурить...
И еще, у меня строка довольно длинная и в маленькое окошко мемо все не помещается и разбивается на несколько строк, а это для меня не подходит. Когда делаю горизонтальную прокрутку, то все ок. Можно ли сделать как одну строку, но без скроллбара???

Заранее спасибо.
Ответить с цитированием
  #4  
Старый 29.12.2011, 23:07
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Не нужно брать из Memo1.Text, делай как и раньше по циклу.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
Mr_Banochka (30.12.2011)
  #5  
Старый 30.12.2011, 00:08
Mr_Banochka Mr_Banochka вне форума
Прохожий
 
Регистрация: 29.12.2011
Сообщения: 3
Репутация: 10
По умолчанию

Получилось нечто подобное:
Код:
 for i:=0 to Memo1.Lines.Count-1 do
     begin
          descript:=Pos('****', Memo1.Lines[i]);
          if descript>0 then Edit3.Text:=Copy(Memo1.lines[i], descript, length(memo1.Lines[i]));
Надеюсь кому-то поможет. И еще: можно ли этот кусок как-то оптимизировать или и так вполне сносно??? И по поводу переноса строк - вопрос остаётся открытым. Можно что-то придумать???
Ответить с цитированием
  #6  
Старый 30.12.2011, 00:15
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Mr_Banochka
... можно ли этот кусок как-то оптимизировать или и так вполне сносно??? И по поводу переноса строк - вопрос остаётся открытым. Можно что-то придумать???
Всё нормально и так.
Смотри WantReturns, WordWrap.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:23.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025