Na szybko, więc mogłem się gdzieś machnąć i zapewne można to zrobić inaczej.
Tu jest na przykładzie stałego tekstu [a]
, ale to już sobie możesz dopracować.
w type deklaruję rekord:
TLicz = record
pozycja : integer;
ilosc : integer;
end;
W kodzie:
var
i : integer;
flaga : boolean;
tab : array of TLicz;
maxValue, maxPosition : integer;
begin
flaga := false;
maxPosition := 0;
maxValue := 0;
for i := 0 to ListBox1.Items.Count - 1 do
begin
if (Pos('[a]', ListBox1.Items[i]) > 0) then
begin
if not flaga then
begin
flaga := true;
SetLength(tab, High(tab) + 2);
tab[High(tab)].pozycja := i;
end;
end
else
flaga := false;
if flaga then
tab[High(tab)].ilosc := tab[High(tab)].ilosc + 1;
end;
//tu szukam największej liczby wystąpień
for i := 0 to High(tab) do
if tab[i].ilosc > maxValue then
begin
maxValue := tab[i].ilosc;
maxPosition := tab[i].pozycja;
end;
//wynik wypisuję na pasku
Caption := IntToStr(maxPosition) + '/' + IntToStr(maxValue);