![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Доброго времени суток товарищи программисты. 
		
	
		
		
		
		
		
	
		
		
	
	
	Помогите пожалуйста решить следующею проблему. Суть вопроса в следующем! Имеется мемо со следующими данными 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  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Не совсем понял, что требуется... Но таки попытаю удачу. 
		
	
		
		
		
		
			
		
		
		
		
		
			Код: 
	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, 14.06.2011 в 07:23.  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Вот так точно работает. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Существует легенда, что Иосиф Флавий - известный историк первого века - выжил и стал известным благодаря математической одаренности. В ходе иудейской войны он в составе отряда из 41 иудейского воина был загнан римлянами в пещеру. Предпочитая самоубийство плену, воины решили выстроиться в круг и последовательно убивать каждого третьего из живых до тех пор, пока не останется ни одного человека. Однако Иосиф наряду с одним из своих единомышленников счел подобный конец бессмысленным - он быстро вычислил спасительные места в порочном круге, на которые посища. И лишь поэтавил себя и своего товартому мы знаем его историю. так думаю яснее будет что должно получится!  | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
  | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 label x; это что такое?  и куда его писать? 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 label x; ... . . x: . . .это куда писать???  | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Перед 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, 14.06.2011 в 07:34.  | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 1 2 3 причем чтоб я не в водил получается всегда 1 2 3  | 
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Код: 
	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; {под удаление попадает последний элемент} |