-
Notifications
You must be signed in to change notification settings - Fork 1
/
Count_Words.vb
71 lines (70 loc) · 2.49 KB
/
Count_Words.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Imports System.IO
Module Count_Words
'Skapad av Markus Nordin
'Kod Utmaning Count Words
'Läs in från fil och skapa en sammanfattning
'd:\test.txt (3764 ord enligt Google Docs)
'3835 enligt programmet, men då räknas siffror
'IsNumeric ska användas för att undvika siffror
Sub Main()
Dim Sökväg As String = "d:\test.txt"
Dim testString As String = LäsInFil(Sökväg)
Dim Buffer As String = ""
Dim MaxAntalOrd As Integer = 0
Dim AntalOrd As Integer = 0
Dim Bokstav As Char = ""
Dim Ord As New List(Of String)
For Each Bokstav In testString
Select Case Bokstav 'Filter för strängen. Tar bort det vi inte vill ha
Case " "
If Buffer = "" Then
Else
If Char.IsNumber(Buffer) Then
Buffer = ""
Else
Ord.Add(Buffer)
Buffer = ""
End If
End If
Case "-"
Case "#"
Case Else
Buffer = Buffer & Bokstav
End Select
Next
'Sista ordet i dokumentet
If Buffer = "" Then
Else
Ord.Add(Buffer)
Buffer = ""
End If
AntalOrd = Ord.Count 'Räknar antal ord
Console.WriteLine("Antal ord är " & AntalOrd)
Call SkrivFil("d:\test2.txt", Ord) 'skriver ut en testfil med informationen i Array Ord
Console.ReadKey()
End Sub
Function LäsInFil(ByVal Filnamn As String)
Dim Fil As String = ""
Dim Buffer As String = ""
Dim Sökväg As String = Filnamn
If File.Exists(Sökväg) = False Then
Console.WriteLine("Hittade inte filen")
Else
Try
Buffer = File.ReadAllText(Sökväg)
Catch ex As Exception
'Console.WriteLine(ex)
Console.WriteLine("Något gick fel")
End Try
End If
Fil = Buffer.Replace(vbCrLf, " ") 'Tar bort ENTER slag och ersätter med ett mellanslag.
Buffer = Fil
Fil = Buffer.Replace(vbTab, " ")
Return Fil
End Function
Sub SkrivFil(ByVal Filnamn As String, ByVal testString As IList(Of String))
Dim Sökväg As String = Filnamn
Dim Buffer As List(Of String) = testString
File.WriteAllLines(Sökväg, Buffer)
End Sub
End Module