![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Здравствуйте, проблема вот какая имеется форма, на которой находятся 3-и ComboBox-а, один ListBox и кнопка «Сохранить»
При запуске формы активен только ComboBox1 после того как будет выбрано одно из значений (кол-во значений 2), активируется ComboBox2 в нем доступно, если выбран 0 то 4 пункта, если 1 то 6, после выбора строки ComboBox2 активируется ComboBox3 в него подгружаются строки из текстового файла, которые тоже зависят от выбора в ComboBox1 и 2 (baz_PR.rtt). В зависимости от выбранных в ComboBox-ах строк в ListBox грузятся данные из текстового файла (baz_PO.rtt) Теперь, сама суть: Кнопку сохранить я не долго думая прописал так: Код:
procedure TForm1.Button4Click(Sender: TObject); var AFile: TextFile; C, i, z,v1,v2,v3 : Integer; t:string; begin AssignFile(AFile,dir+'BAZA\baz_PO.rtt'); Rewrite(AFile); begin z:=0; C:= ListBox1.Items.Count; for i := 1 to C do begin t:=ListBox1.Items.Strings[z]; WriteLn(AFile, '[',t,']'); v1:=ComboBox1.ItemIndex; WriteLn(AFile, 'tip =', v1); v2:=ComboBox2.ItemIndex; WriteLn(AFile, 'vid =', v2); v3:=ComboBox2.ItemIndex; WriteLn(AFile, 'pro =', v3); z:=z+1; end; CloseFile(AFile); end; end; И теперь возникла проблема с загрузкой данных из файлов по категориям указанным ComboBox-ами. Не могу никак придумать, как организовать выборку из текстового файла, если можно то приведите примеры кода. Последний раз редактировалось Faraon, 29.04.2010 в 20:46. |
#2
|
||||
|
||||
![]() А не хотите через IniFile это организовать?
Код:
procedure TForm1.FormCreate(Sender: TObject); var IniFile: TIniFile; i: Integer; begin IniFile := TIniFile.Create('c:\test.rtt'); IniFile.ReadSection('ListBox1',ListBox1.Items); for i := 0 to ListBox1.Count-1 do ListBox1.Items.Strings[i] := IniFile.ReadString('ListBox1',ListBox1.Items.Strings[i],''); IniFile.ReadSection('ComboBox1',ComboBox1.Items); for i := 0 to ComboBox1.Items.Count-1 do ComboBox1.Items.Strings[i] := IniFile.ReadString('ComboBox1',ComboBox1.Items.Strings[i],''); IniFile.ReadSection('ComboBox2',ComboBox2.Items); for i := 0 to ComboBox2.Items.Count-1 do ComboBox2.Items.Strings[i] := IniFile.ReadString('ComboBox2',ComboBox2.Items.Strings[i],''); IniFile.ReadSection('ComboBox3',ComboBox3.Items); for i := 0 to ComboBox3.Items.Count-1 do ComboBox3.Items.Strings[i] := IniFile.ReadString('ComboBox3',ComboBox3.Items.Strings[i],''); IniFile.Free; end; procedure TForm1.Button1Click(Sender: TObject); var IniFile: TIniFile; i: Integer; begin IniFile := TIniFile.Create('c:\test.rtt'); for i := 0 to ListBox1.Count-1 do IniFile.WriteString('ListBox1',IntToStr(i),ListBox1.Items[i]); for i := 0 to ComboBox1.Items.Count-1 do IniFile.WriteString('ComboBox1',IntToStr(i),ComboBox1.Items[i]); for i := 0 to ComboBox2.Items.Count-1 do IniFile.WriteString('ComboBox2',IntToStr(i),ComboBox2.Items[i]); for i := 0 to ComboBox3.Items.Count-1 do IniFile.WriteString('ComboBox3',IntToStr(i),ComboBox3.Items[i]); IniFile.Free; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
||||
|
||||
![]() Страдалецъ прав. Почитай про ИНИ файлы там все легко и просто. Идеально подходит для твоего случия.
Не твори зла, и жизнь повернется к тебе передом ![]() |
#4
|
|||
|
|||
![]() Цитата:
Сдесь проблема в самом сохранении, а в методе загрузки, при выборе параметров ComboBox(1,2,3), они должны запоминается для поля ListBox1, а при выборе из ЭТИХ тех же значений в ComboBox(1,2,3) в ListBox1 должны выводится строки соответствующие им. |
#5
|
||||
|
||||
![]() Не буду спорить, я предложил оптимальный вариант, адаптировать под свою задачу вы уже должны сами. Но то, что вы там изначально пытаетесь сделать, вообще с трудом понимаю поддается, а потому нерационально.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
|||
|
|||
![]() Спасибо буду пытатся организовать запись и чтение подругому....
|