Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-32788
ArtSoft
2002-03-31 23:02
2002.04.11
HEX_to_INTEGER


1-32899
webnew
2002-03-29 17:46
2002.04.11
Подключение к IIS 5.0


1-32813
Rustam
2002-04-01 10:47
2002.04.11
как вертикально разместить текст в колонкеGRIDa


14-32974
Nest
2002-03-05 14:08
2002.04.11
Юмор про программистов http://evny.com.ua/?hist/pmer00


1-32729
cok
2002-03-27 18:14
2002.04.11
Автозапуск(быстрый)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский