Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в ListBox загрузить из текстового файла... [D5, Win95/98]


menel ©   (2002-11-19 15:23:00) 

Как в ListBox загрузить из текстового файла строки определенного формата, например начинающиеся с символа #
а все остальные игнорировать.

Спасибо


SI-riuss   (2002-11-19 16:05:00) [1]

Мысль понял, только я спрашивал не про данный случай, а вообще. У меня был такой гимор


Lord Warlock   (2002-11-19 16:01:00) [2]


> SI-riuss © (19.11.02 16:00)


Да можно, можно! Только обратным перебором как Mbo сказал, забыль просто..


SI-riuss   (2002-11-19 16:00:00) [3]

> Lord Warlock
Почему нельзя в цикле???


MBo   (2002-11-19 15:58:00) [4]

>Lord Warlock
можно


Lord Warlock   (2002-11-19 15:53:00) [5]


> SI-riuss © (19.11.02 15:51)


С Delete(i) нельзя использовать цикл for


MBo   (2002-11-19 15:52:00) [6]

>SI-riuss
потому что неправильно стираешь
for b:=Memo1.Lines.Count-1 downto 0 do ...


SI-riuss   (2002-11-19 15:51:00) [7]

Пардон, ребята. Почему у меня Delete(i) стирает i-число строк, начиная с первой?


SI-riuss   (2002-11-19 15:47:00) [8]

А проблема загрузить или отфильтровать?
Лучше вначале загрузить все, а потом фильтруем (например дело обстоит в Memo1):

var b: integer;
begin
for b:=0 to Memo1.Lines.Count do
if Copy(Memo1.Lines[b],1,1)<>"#" {или какая другая загогулина}then {... стираем строчку}
...
end;


Lord Warlock   (2002-11-19 15:41:00) [9]

han_malign © (19.11.02 15:33)

> Перед while можно еще сделать ListBox.Items.Clear;

Это можно


> З.Ы Надеюсь где end для while()do begin догадаешься поставить?

это не нужно


> Anatoly Podgoretsky © (19.11.02 15:32)
> ListBox.Items.Delete[i]


Все-таки ListBox.Items.Delete(i)


menel   (2002-11-19 15:37:00) [10]

Спасибо, попробую!


han_malign   (2002-11-19 15:35:00) [11]

что то я совсем по русски изъясняться разучился :))


han_malign   (2002-11-19 15:33:00) [12]

Перед while можно еще сделать ListBox.Items.Clear;
З.Ы Надеюсь где end для while()do begin догадаешься поставить?


Anatoly Podgoretsky   (2002-11-19 15:32:00) [13]

ListBox.Items.Delete[i]


Lord Warlock   (2002-11-19 15:32:00) [14]

Еще непример так:

ListBox1.Items.LoadFromFile("d:\1.txt");
i:=0;
while i<ListBox1.Items.Count do
if Copy(ListBox1.Items[i],1,1)="#" then
ListBox1.Items.Delete(i)
else
Inc(i);


han_malign   (2002-11-19 15:30:00) [15]

while not EOF(inF)do begin
ReadLn(inF,Str);
if((Str<>"")and(Str[1]="#")then ListBox.Items.Add(Copy(Str,2,Length(Str))); ???????????


menel   (2002-11-19 15:28:00) [16]

а кусочек кода, в частности удаления, плиз можно...


MBo   (2002-11-19 15:25:00) [17]

через readln.
а можно загрузить все, а ненужные удалить


Наверх

Титульная страница Поиск, карта сайта Написать письмо