2013-09-12 3 views
-1

У меня есть большой текстовый файл с более чем 100k строк. Некоторые из строк являются дубликатами. Я бы хотел, чтобы вы дедупировали эти записи перед их обработкой. Я использую визуальный базовый 2010 Express, чтобы написать это.Deduplicate Text file VB.NET

Пример текста файла:

132165 
165461 
646843 
654654 
321358 
132165 
165461 
+3

Благодарит за размещение ваших требований. Теперь опубликуйте свою попытку ... –

+1

Мне кажется, что вы не хотите дедублировать файл. Ты хочешь нас. Вам нужно показать еще больше усилий. По крайней мере, вам нужно показать нам, что вы можете программировать. SO - это не сайт, на котором вы пишете код для людей, которые вообще не имеют понятия. –

+0

Чтобы помочь вам начать работу, я бы просто прочитал файл и разделил его на массив вокруг разрыва строки. Затем создайте другой массив, итерации по исходному. Для каждого элемента исходного массива проверьте, находится ли он в вашем новом, если он не находится, и добавьте его. После этого просто перепишите исходный текстовый файл с вашими результатами. Это не очень эффективно, но это сделает работу. –

ответ

4

Я хочу DeDupe эти записи перед обработкой их

Вы можете использовать HashSet(Of T)

Dim nodupes As New HashSet(Of String)(File.ReadLines(path)) 
For Each str As String In nodupes 
    ' no duplicate here ' 
Next 

Edit в Поскольку HashSet(Of T)does not guarantee to preserve the insertion order вы можете использовать следующий код, если необходимо обеспечить этот порядок:

Dim nodupeSet As New HashSet(Of String) 
Dim nodupes = From line In File.ReadLines(path) 
       Where nodupeSet.Add(line) 
For Each str As String In nodupes 
    ' no duplicate here ' 
Next