Форум: "Основная";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];
ВнизМастера, есть такая задача, список повторяющихся фамилий, Найти похожие ветки
← →
Вик_тор (2002-03-29 12:42) [0]сосчитать сколько раз каждая упоминалась. Фамилия в новой строчке TMemo и всё. Может кто делал тоже самое, поделитесь советом или кодом.
← →
Alx2 (2002-03-29 12:52) [1]
Var
Slist : TStringList;
k, id : Integer;
begin
SList := tStringList.Create;
SLiSt.Sorted := True;
SList.Duplicates := dupIgnore;
try
for k := 0 to Memo1.Lines.Count - 1 do
begin
Id := Slist.IndexOf(Memo1.Lines[k]);
if ID<0 then
SList.AddObject(Memo1.Lines[k],Pointer(1))
else
SList.Objects[Id] := Pointer(Integer(SList.Objects[Id])+1);
end;
finally
{В этом месте сформировался SList, в котором SList[k] - Фамилия. Integer(Slist.Objects[k]) - Количество таких фамилий}
SList.Free; // Попользовались результатом - можно удалить.
end;
end;
← →
Вик_тор (2002-03-29 13:13) [2]Alx2, спасибо, объясни только, как взять результат, я пишу после finally вот это
finally
for i:=0 to k-1 do
Memo3.Lines.Add(SList[k]);
SList.Free;
end;
и выдаётся ошибка.. т.е. я всего лишь хочу результат взять в другое мемо, где после фамилии пишется кол-во. Еще раз спасибо.
← →
ProgMan (2002-03-29 13:16) [3]Может,
Memo3.Lines.Add(SList[ i]);
← →
Вик_тор (2002-03-29 13:19) [4]Всё равно
Error "List index out of bounds (128)"
← →
Вик_тор (2002-03-29 13:21) [5]Всё равно
Error "List index out of bounds (128)"
или
Error "List index out of bounds (3)"
← →
Alx2 (2002-03-29 13:21) [6]Тогда вот так:
Var
Slist : TStringList;
k, id : Integer;
begin
SList := tStringList.Create;
SLiSt.Sorted := True;
SList.Duplicates := dupIgnore;
try
for k := 0 to Memo1.Lines.Count - 1 do
begin
Id := Slist.IndexOf(Memo1.Lines[k]);
if ID<0 then
SList.AddObject(Memo1.Lines[k],Pointer(1))
else
SList.Objects[Id] := Pointer(Integer(SList.Objects[Id])+1);
end;
for k := 0 to Slist.Count-1 do
Memo3.Lines.Add(SList[k]+". Count is: "+IntToStr(Integer(SList.Objects[k])));
finally
SList.free;
end;
end;
← →
Вик_тор (2002-03-29 13:47) [7]Алекс, премного благодарен, всё работает, с наилучшими пожеланиями!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c