Вниз
Скачать: CL | DM;

Мастера, есть такая задача, список повторяющихся фамилий,   Найти похожие ветки 

 
Вик_тор   (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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
1-32749
OlegR
2002-03-30 15:33
2002.04.11
Как прекратить обработку события?


1-32848
IronHawk
2002-03-27 10:32
2002.04.11
Приветствую Мастеров ! Прошу бААААльшой помощи, неоткажите....


1-32866
LazorenkoX
2002-03-29 13:03
2002.04.11
file of XXX


1-32849
Deus
2002-03-28 19:03
2002.04.11
StayOnTop


3-32636
Chainik
2002-03-14 14:41
2002.04.11
Помогите с переносом данных из DBGrid в Excel :((




   Наверх