![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Подскажите пожалуйста
имею большой memo1 с текстом Код:
1.17 2.21 33.32 44.44 5.2 6.45 77 8.14 как программно удалить ту строку где отсутствует символ? (В данном случае это точка). |
|
#2
|
|||
|
|||
|
Код:
i:=0;
Repeat
s:=Memo1.Lines[i];
n:=pos('.', s);
if n=0 then Memo1.Lines.Delete[i]
else inc(i);
until i=Memo1.Lines.Count-1; |
| Этот пользователь сказал Спасибо PS11011010 за это полезное сообщение: | ||
logan22 (08.07.2012)
| ||
|
#3
|
||||
|
||||
|
Смотри последнюю ссылку в подписи.
|
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
logan22 (08.07.2012)
| ||
|
#4
|
|||
|
|||
|
Цитата:
спасибо за отзыв.. но жалуется [Error] Unit1.pas(505): Not enough actual parameters указывая на эту часть кода Код:
var
n, i: integer;
s : string;
begin
i:=0;
Repeat
s:=Memo1.Lines[i];
n:=pos('.', s);
if n=0 then Memo1.Lines.Delete[i]
else inc(i);
until i=Memo1.Lines.Count-1;Последний раз редактировалось Admin, 08.07.2012 в 22:36. |
|
#5
|
||||
|
||||
|
В круглые скобки возьми.
|
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
logan22 (09.07.2012)
| ||
|
#6
|
|||
|
|||
|
извините пожалуйста меня родимого за нагласть
![]() Но как будет правильно переделать так чтоб скорость выполнения данного кода была высокой??? Я слышал о такой вещи как СтринжЛист да? помогите пожалуйста |
|
#7
|
|||
|
|||
|
забей в поиск stringlist, можно ещё через Memo1.Lines.BeginUpdate
|
| Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
logan22 (09.07.2012)
| ||
|
#8
|
|||
|
|||
|
Цитата:
А по-моему ошибка такова: Код:
if n=0 then Memo1.Lines[i].Delete |
| Этот пользователь сказал Спасибо PS11011010 за это полезное сообщение: | ||
logan22 (09.07.2012)
| ||
|
#9
|
|||
|
|||
|
Если юзать данный код то после нажатия на кнопку программа зависает!)
|
|
#10
|
||||
|
||||
|
Цитата:
Код:
i:=0;
Repeat
s:=Memo1.Lines[i];
n:=pos('.', s);
if n=0 then Memo1.Lines.Delete[i];
inc(i);
until i=Memo1.Lines.Count-1; |
| Этот пользователь сказал Спасибо Kailon за это полезное сообщение: | ||
logan22 (11.07.2012)
| ||
|
#11
|
|||
|
|||
|
Не, не пашит.
Опять зависает!) А конкретнее если использовать Ваш код то жалуется на строчку Код:
if n=0 then Memo1.Lines.Delete[i]; ах да забыл сказать у меня Delphi 7 ![]() |
|
#12
|
||||
|
||||
|
Цитата:
|
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
logan22 (11.07.2012)
| ||
|
#13
|
|||
|
|||
|
Цитата:
А цикл в обратном порядке просто прокрутить не догадались? Код:
For i := Memo1.Lines.Count-1 DownTo 0 Do
If Pos('.',Memo1.Lines[i]) = 0 Then Memo1.Lines.Delete(I); |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
logan22 (11.07.2012)
| ||
|
#14
|
||||
|
||||
|
Топи F8 да смотри состояния переменных, может сам разберешься из-за чего циклится.
|
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
logan22 (11.07.2012)
| ||
|
#15
|
|||
|
|||
|
Цитата:
Как не странно, оно сработало! Но.... опять же сказу же зависла как сделало дело!) ![]() |