form5.ListBox1.ItemIndex := 0;
for a := 0 to form5.ListBox1.Items.Count -1 do begin
if Form5.ListBox1.Items[Form5.ListBox1.ItemIndex] = 'Заголовок'
then begin
while Form5.ListBox1.Items[Form5.ListBox1.ItemIndex] = 'Тема' do begin
form5.Memo3.Lines.Add(form5.ListBox1.Items[Form5.ListBox1.itemindex]);
form5.ListBox1.ItemIndex := form5.ListBox1.ItemIndex + 1;
end;
end;
end;
Работа с циклами
Такой вопрос: загружаю в лист бокс большой файл похожий на ini выглядит он так:
Заголовок
.......
.........
.....
Конец
Примечания
.....
.
....
Конец
мне необходимо получить информацию из раздела "заголовок" все включающиеся строчки до фразы "конец"
вот предлагаю алгоритм что не так подскажите?
Код:
может я не тот цикл использую?
2. Во втором цикле (while который) у вас используется условие равенства элемента со строкой 'Тема', получается что этот цикл будет работать только при выполнении этого условия. Причем, именно в этом цикле у вас меняется ItemIndex. Могу предположить, что ваш алгоритм тупо будет form5.ListBox1.Items.Count раз проверять 0-ой элемент списка на равенство сначала с Заголовком, а потом с Темой.
Попробуй в эту сторону думать:
Код:
var
a:integer;
begin
a:=0;
while a<Form5.ListBox1.Count do
begin
if Form5.ListBox1.Items[a]='Заголовок' then
begin
inc(a);
while Form5.ListBox1.Items[a]<>'Конец' do
begin
Form5.Memo3.Lines.Add(Form5.ListBox1.Items[a]);
inc(a);
end
end;
inc(a);
end
end;
a:integer;
begin
a:=0;
while a<Form5.ListBox1.Count do
begin
if Form5.ListBox1.Items[a]='Заголовок' then
begin
inc(a);
while Form5.ListBox1.Items[a]<>'Конец' do
begin
Form5.Memo3.Lines.Add(Form5.ListBox1.Items[a]);
inc(a);
end
end;
inc(a);
end
end;
а так всё работает.. видно до ошибки заполняет..