Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Счетчик повторения слов


Автор: alt5000 2.11.2007, 18:45
Всем доброго времени суток!

Прошу помочь мне решить такую задачку. В эррэйлисте есть список слов. в нем есть повторяющиеся слова. Мне нужно подсчитать сколько повторов каждого слова в этом списке. Заранее благодарен.

Автор: thomas 2.11.2007, 19:45
alt5000, 
Приветствую.
Смотри в сторону IComparer и Array.BinarySearch(...)
первое используй для сравнения своих слов
что-то типа этого
Код

public class VglNaam: IComparer
    {
        int IComparer.Compare(object var1, object var2)
        {
            if(var2.GetType()== typeof(gegevens))        
                return string.Compare(((gegevens)var1).naam,((gegevens)var2).naam);      //сравниваем две фамилии       
            else        
                return string.Compare(((gegevens)var1).naam,(string)var2); // сравниваем фамилию и string
        }
    }

А во втором используй свой класс реализующий IComparer для поиска дубликатов
Что-то типа этого
Код

myVgl=new VglNaam();
Object waardeObj=zoekwaarde; // значение слова для поиска берешь из своего массива
vindplaats = Array.BinarySearch(dataTabel, waardeObj, myVgl); // первый параметр где искать, второй что искать, третий как сравнивать значения.

А так тебе придется написать цикл переборки всех значений слов в массиве(ArrayList) и каждое сравнить с остальными. При этом прикрутить счетчик дубликатов и результат писать в отдельный массив.

Может не самое оригинальное решение, но логичное.

ЗЫ в первом листинге указание на структуру содержащую данные (Имя Фамилия дата рождения)
Код

public struct gegevens
    {
        public int nr;
        public string naam;
        public string voornaam;
        public DateTime gebdat;
        public long volgnr;
    }

ЗЫЗЫ Код на C# но особой разницы в подходе нет. Главное идею понять. Так что думаю на VB.NET сможешь написать.

Автор: alt5000 6.11.2007, 17:08
Спасибо, обязательно разберусь. Правда, в С#  я не очень, если бы код был на VB.Net Но в любом случае, попробую разобраться. Еще раз спасибо за помощь.

Автор: alexburzak 6.11.2007, 18:10
Цитата(alt5000 @ 6.11.2007,  17:08)
Спасибо, обязательно разберусь. Правда, в С#  я не очень, если бы код был на VB.Net Но в любом случае, попробую разобраться. Еще раз спасибо за помощь.

Тогда тупо берешь и переводишь: http://www.carlosag.net/Tools/CodeTranslator/Default.aspx smile 
Только все равно смотри код - так как это тупая машина...  smile 

Автор: Akina 6.11.2007, 20:27
Берешь сортировку подсчетом. Выкидываешь сортировку, оставляя подсчет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)