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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.06.2011, 05:56
Gribok Gribok вне форума
Новичок
 
Регистрация: 25.09.2009
Сообщения: 53
Репутация: 4
По умолчанию удалить все Nые строки из memo

Доброго времени суток товарищи программисты.
Помогите пожалуйста решить следующею проблему.
Суть вопроса в следующем!
Имеется мемо со следующими данными
1
2
3
4
5
вот данные записаны в строку.
Код:
var
i:integer;
begin
Memo2.Clear;
for i:=1 to StrToInt(Edit1.Text)  do
Memo2.Lines.Add(IntToStr(i));
Здесь мы создаем наш список.

теперь следующие!
необхадимо удалить скажем каждую 3 строку из мемо
в итоге получим
1
2
3
4
5
создали наш список
далее
1
2
пусто т к удалил 3стоку
4
5
далее
пусто т к удали 1 строку
2
4
5
далее
2
4
пусто т к удалил 5 строку
далее
пусто т к удалил 2 строку
4 осталось
значит если взять список из 5 строк и удалять каждую 3 строку то останется 3
как добиться такова результата??
Ответить с цитированием
  #2  
Старый 14.06.2011, 07:12
Аватар для Gravitas
Gravitas Gravitas вне форума
Новичок
 
Регистрация: 12.06.2011
Сообщения: 61
Версия Delphi: 7
Репутация: 38
По умолчанию

Не совсем понял, что требуется... Но таки попытаю удачу.
Код:
label x;
var
c:integer;
begin
x:
  c:=1;
  while ((Memo1.lines.count<>2) and (C<=Memo1.Lines.Count)) do begin
    c:=c+2;
    Memo1.lines.Delete(c);
  end;
if (Memo1.Lines.Count<>3) then goto x;
end;
Вот как то так.
__________________
Gravitas

Последний раз редактировалось Gravitas, 14.06.2011 в 07:23.
Ответить с цитированием
  #3  
Старый 14.06.2011, 07:24
Аватар для Gravitas
Gravitas Gravitas вне форума
Новичок
 
Регистрация: 12.06.2011
Сообщения: 61
Версия Delphi: 7
Репутация: 38
По умолчанию

Вот так точно работает.
__________________
Gravitas
Ответить с цитированием
  #4  
Старый 14.06.2011, 07:25
Gribok Gribok вне форума
Новичок
 
Регистрация: 25.09.2009
Сообщения: 53
Репутация: 4
По умолчанию

Цитата:
Сообщение от Gravitas.
Не совсем понял, что требуется... Но таки попытаю удачу.
Код:
label x;
var
c:integer;
begin
x:
  c:=1;
  while ((Memo1.lines.count<>2) and (C<=Memo1.Lines.Count)) do begin
    c:=c+2;
    Memo1.lines.Delete(c);
  end;
if (Memo1.Lines.Count<>3) then goto x;
end;
Вот как то так.


Существует легенда, что Иосиф Флавий - известный историк первого века - выжил и стал
известным благодаря математической одаренности. В ходе иудейской войны он в составе отряда из
41 иудейского воина был загнан римлянами в пещеру. Предпочитая самоубийство плену, воины
решили выстроиться в круг и последовательно убивать каждого третьего из живых до тех пор, пока
не останется ни одного человека. Однако Иосиф наряду с одним из своих единомышленников счел
подобный конец бессмысленным - он быстро вычислил спасительные места в порочном круге, на
которые посища. И лишь поэтавил себя и своего товартому мы знаем его историю.
так думаю яснее будет что должно получится!
Ответить с цитированием
  #5  
Старый 14.06.2011, 07:29
Аватар для Gravitas
Gravitas Gravitas вне форума
Новичок
 
Регистрация: 12.06.2011
Сообщения: 61
Версия Delphi: 7
Репутация: 38
По умолчанию

Цитата:
Сообщение от Gribok
Существует легенда, что Иосиф Флавий - известный историк первого века - выжил и стал
известным благодаря математической одаренности. В ходе иудейской войны он в составе отряда из
41 иудейского воина был загнан римлянами в пещеру. Предпочитая самоубийство плену, воины
решили выстроиться в круг и последовательно убивать каждого третьего из живых до тех пор, пока
не останется ни одного человека. Однако Иосиф наряду с одним из своих единомышленников счел
подобный конец бессмысленным - он быстро вычислил спасительные места в порочном круге, на
которые посища. И лишь поэтавил себя и своего товартому мы знаем его историю.
так думаю яснее будет что должно получится!
Терь понял. И код кстати работает)
__________________
Gravitas
Ответить с цитированием
  #6  
Старый 14.06.2011, 07:29
Gribok Gribok вне форума
Новичок
 
Регистрация: 25.09.2009
Сообщения: 53
Репутация: 4
По умолчанию

label x; это что такое? и куда его писать?
Ответить с цитированием
  #7  
Старый 14.06.2011, 07:30
Gribok Gribok вне форума
Новичок
 
Регистрация: 25.09.2009
Сообщения: 53
Репутация: 4
По умолчанию

Цитата:
Сообщение от Gravitas.
Терь понял. И код кстати работает)

label x;
...
.
.
x:
.
.
.это куда писать???
Ответить с цитированием
  #8  
Старый 14.06.2011, 07:32
Аватар для Gravitas
Gravitas Gravitas вне форума
Новичок
 
Регистрация: 12.06.2011
Сообщения: 61
Версия Delphi: 7
Репутация: 38
По умолчанию

Перед var
Полный код процедуры:
Код:
procedure TForm1.Button1Click(Sender: TObject);
label x;
var
c:integer;
begin
x:
  c:=1;
  while ((Memo1.lines.count<>2) and (C<=Memo1.Lines.Count)) do begin
    c:=c+2;
    Memo1.lines.Delete(c);
  end;
if (Memo1.Lines.Count<>3) then goto x;
end;
__________________
Gravitas

Последний раз редактировалось Gravitas, 14.06.2011 в 07:34.
Ответить с цитированием
  #9  
Старый 14.06.2011, 07:34
Gribok Gribok вне форума
Новичок
 
Регистрация: 25.09.2009
Сообщения: 53
Репутация: 4
По умолчанию

Цитата:
Сообщение от Gravitas.
Перед var
Полный код процедуры:
Код:
procedure TForm1.Button1Click(Sender: TObject);
label x;
var
c:integer;
begin
x:
  c:=1;
  while ((Memo1.lines.count<>2) and (C<=Memo1.Lines.Count)) do begin
    c:=c+2;
    Memo1.lines.Delete(c);
  end;
if (Memo1.Lines.Count<>3) then goto x;
end;
почемуто остается всегда
1
2
3
причем чтоб я не в водил получается всегда 1 2 3
Ответить с цитированием
  #10  
Старый 14.06.2011, 07:55
Gribok Gribok вне форума
Новичок
 
Регистрация: 25.09.2009
Сообщения: 53
Репутация: 4
По умолчанию

Код:
var
i : Integer;
begin
i := StrToInt(Edit2.Text); {номер, который надо удалять }
while Memo2.Lines.Count > 1 do begin
Memo2.Lines.Delete(i-1); {строки в мемо индексируются с нуля}
Inc(i, StrToInt(Edit2.Text) - 1); {следующий удаляемый элемент}
i := i mod Memo2.Lines.Count; {если забрались за границу мемо}
if i = 0 then i := Memo2.Lines.Count; {под удаление попадает последний элемент}
вот все! всем спасибо за помощь!!
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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