[Delphi] Array of string - problem

0

Mam "mały" problemik. Chcę napisać program, który będzie zapisywał dane do tablicy dynamicznej (array of string). Nie wiem tylko, jak:

  1. Dane wprowadzone do memo i edita (czyt.: opis i tytuł) zapisać do pliku (tablica dynamiczna)
  2. Odczytać dane z pliku, gdy... kliknę w listbox na tytuł i wyświetli mi się odpowiedni opis.

Powiedzmy, że coś takiego udało mi się stworzyć, ale nie do końca, tak jak bym tego chciał. Otóż chciałbym ustawić wartość w Listbox.Sorted:=True, ale wtedy tytuły mi nie pasują do opisów, bo... kiedy:

Listbox.Sorted:=False; ==> to wtedy Indexy opisów:=Listbox.ItemIndex i wtedy jest OK
Listbox.Sorted:=True; ==> to wtedy tytuły są posortowane w listbox, a opisy nie pasują do tych tytułów. Dlaczego??? ;-(

0

Musisz napisać procedurę sortującą całe rekordy, a nie tytuły. Jeżeli nie ma tego dużo to sortowanie bąbelkowe z racji prostoty.

type
 TPareto = record
  KodyVal :Word;
  KodyID :String;
 end;

var Temp :TPareto;

 for i := 1 to Koniec-1 do
  for j := i+1 to Koniec do
   if Pareto[i].KodyVal < Pareto[j].KodyVal then
      begin
       Temp := Pareto[j];
       Pareto[j] := Pareto[i];
       Pareto[i] := Temp;
      end;

Jakoś tak (na szybko bez kompilatora)

0

a nie prościej zamiast tablicy wziąć TStringList :>

0

Miałem kiedyś podobny problem - i tak jak napisał Misiekd: skorzystaj ze TStringList lub ew. TList. Tablice się do tego zdecydowanie nie nadają.

1 użytkowników online, w tym zalogowanych: 0, gości: 1