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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2009, 18:51   #1
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
Печаль Memo вопросы)

Доброго время суток
Прошу вас помочь
1 в моём мемо есть символы "/" мне их нужно все удалить (пробывал StringReplece искал символ и заменятял на нечего неполучалась ) как зделать?
2 ещё в моём мемо есть повтоляющиеся строки от них хотелось бы избавится

Help please..
jone вне форума Ответить с цитированием
Старый 22.02.2009, 19:09   #2
Armorer
Подтвердите свой е-майл
 
Регистрация: 07.04.2007
Сообщений: 120
По умолчанию

Со StringReplece пробовал так?
Код:
Memo1.Text := StringReplace( Memo1.Text, '/', '', [rfReplaceAll] );
Armorer вне форума Ответить с цитированием
Старый 22.02.2009, 19:21   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
в моём мемо есть повтоляющиеся строки от них хотелось бы избавится
---
Код:
for i:=0 to Memo1.Lines.Count - 2 do
 begin
 j := i+1;
 while j<=Memo1.Lines.Count - 1 do
  begin
  if Memo1.Lines.Strings[j] = Memo1.Lines.Strings[i] then
   begin
   Memo1.Lines.Delete(j);
   dec(j);
   end;
  inc(j);
  end;
 end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 22.02.2009 в 19:40. Причина: не то скопировал. Исправил
Sazary вне форума Ответить с цитированием
Старый 22.02.2009, 19:23   #4
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

Второе не робит программа просто виснит
за 1 спс



пример



sian777/
sian777/
kur1967/
kur1967/
elya2176/
elya2176/
vavilnat/
vavilnat/

повторяются не все
jone вне форума Ответить с цитированием
Старый 22.02.2009, 19:45   #5
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

СПС большое вроде работает но 8к строк долго обрабатывает

Последний раз редактировалось jone; 22.02.2009 в 19:51.
jone вне форума Ответить с цитированием
Старый 22.02.2009, 19:48   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

jone Смотрите пост #3. Сначало не тот код скопировал. Уже исправил.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.02.2009, 20:04   #7
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

Объсни как это работает интересно
Можно ли както ускорить процесс?
jone вне форума Ответить с цитированием
Старый 22.02.2009, 20:09   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
for i:=0 to Memo1.Lines.Count - 2 do   //проходим по строкам до предпоследней
 begin
 j := i+1;    //начинаем смотреть со следующей (относительно текущей) строки
 while j<=Memo1.Lines.Count - 1 do    //и до последней
  begin
  if Memo1.Lines.Strings[j] = Memo1.Lines.Strings[i] then   //если две строки равны
   begin
   Memo1.Lines.Delete(j);  //то удаляем ту, что находится дальше
   dec(j);    //т.к. строку удалили, то на ее место встала другая. Ее тоже надо посмотреть
   end;
  inc(j);   //переходим к следующей строке
  end;
 end;
Цитата:
Можно ли както ускорить процесс?
Мне лично как-то в голову не приходит другой метод.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.02.2009, 00:45   #9
VVM
Форумчанин
 
Аватар для VVM
 
Регистрация: 06.06.2007
Сообщений: 282
По умолчанию

Цитата:
Можно ли както ускорить процесс?
Не проверял, но, возможно, если скопировать содержимое мемо в переменнную и обрабатывать ее, то процесс будет гораздо быстрее.
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.
VVM вне форума Ответить с цитированием
Старый 23.02.2009, 01:09   #10
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

Цитата:
скопировать содержимое мемо в переменнную
хм. разве что TStringList.
если в строку - сложнее обрабатывать переносы строк. и дольше - выбор строки нужно разпарсить её на 10 и 13 символы.
ИМХО это дольше
Роман Радер вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы по if, else? molodoyy Помощь студентам 5 21.03.2010 15:34
Вопросы по if, else? molodoyy Общие вопросы C/C++ 1 25.10.2008 18:55
Перевод из Memo по английскому в Memo по русскому Sanek777 Общие вопросы Delphi 5 26.09.2008 00:17
В Memo сделать так, чтобы текст был разного цвета, разноцветный memo Artem Компоненты Delphi 3 07.09.2007 13:40
В Memo ввёл раз!!! в Memo ввёл два!!! а где Memo ввёл раз??? Хs-You Компоненты Delphi 6 19.08.2007 19:48