' ========================================================================================================= ' FBQuestionnaire - FBQuestionnaire - FBQuestionnaire - FBQuestionnaire - FBQuestionnaire - FBQuestionnaire ' ========================================================================================================= Imports Microsoft.VisualBasic.FileIO Imports System.IO Imports System.Text.RegularExpressions Public Class FBQuestionnaire Public QDate, Real_Name, Email, Principle_Legal_Advisor, Secondary_Legal_Advisor, Overall_Service_Level, Why_Poor_Service, Legal_Advisors_Advice, Legal_Advisors_Responsiveness, Why_Poor_Response, Clarity_Of_Advice, Kept_Up_To_Date, Helpful_Secretaries, Helpful_Receptionist, How_Well_Did_We_Listen, Use_Again, Recommend, Used_Website, About_Website, Wants_Call_Back, Phone_Number, Best_Time, Other_Comments, Interested_in_a_Will, Interested_in_LPA, Interested_in_Probate, Interested_in_Employment_Law, Interested_in_Commercial_Property, Interested_in_Family_Law, Interested_in_Conveyancing, Interested_in_Landlord, Interested_in_Civil_Litigation, Interested_in_PI, Interested_in_Business_Law, Interested_in_Charity_Law As String Public HeaderRow, cr As String Public openfile As New OpenFileDialog() Public inputpath, inputfile, outputfile, filepath As String Public CurrLine As String = "" Public numfiles As Integer = 0 Public progressratio As Integer = 0 Public Still_Why_Poor_Service As Boolean = False Public Still_Why_Poor_Response As Boolean = False Public Still_Why_Wont_Recommend As Boolean = False Public Still_About_Website As Boolean = False Public Still_Other_Comments As Boolean = False Private Sub FBQuestionnaire_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim waitfor As DateTime ProgressBar1.Hide() For Each Arg As String In My.Application.CommandLineArgs If Arg.ToLower = "/auto" Then DoTheProcess() waitfor = Now.AddSeconds(10) Do Until Now > waitfor Application.DoEvents() Loop Me.Refresh() 'End End If Next End Sub Private Sub Process_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Process.Click DoTheProcess() End Sub Private Sub DoTheProcess() Dim createpath As Integer cr = vbCrLf ProgressBar1.Show() ProgressBar1.Value = 0 Me.Refresh() filepath = My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\Questionnaires" outputfile = My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\Questionnaires\ImportEmails" If Not My.Computer.FileSystem.DirectoryExists(filepath) Then createpath = MsgBox("The path (" & filepath & ") doesn't exist. Click YES to create it or NO to exit this program", MsgBoxStyle.YesNo, "Create Folder") MsgBox(createpath) If createpath = 6 Then My.Computer.FileSystem.CreateDirectory(filepath) ElseIf createpath = 7 Then End If End If Dim di As New IO.DirectoryInfo(filepath) Dim diar1 As IO.FileInfo() = di.GetFiles("EmailText*.txt") Dim dra As IO.FileInfo For Each dra In diar1 numfiles += 1 Next If numfiles > 0 Then ProcessOldImportEmailFiles() outputfile = outputfile & ".csv" End If If numfiles > 0 Then progressratio = 100 / numfiles For Each dra In diar1 Still_Why_Poor_Service = False Still_Why_Poor_Response = False Still_Why_Wont_Recommend = False Still_About_Website = False Still_Other_Comments = False ProcessInputFile(filepath & "\" & dra.ToString) ProgressBar1.Value += progressratio ProgressBar1.Refresh() If My.Computer.FileSystem.FileExists(dra.ToString & ".old") Then My.Computer.FileSystem.DeleteFile(dra.ToString & ".old") End If My.Computer.FileSystem.RenameFile(filepath & "\" & dra.ToString, dra.ToString & ".old") Next Cancel.Text = "Quit" Process.Hide() Else Process.Text = "No Files!" Process.Enabled = False Cancel.Text = "Quit" End If '---------------------------------------------------------------------------- 'Finished so close the App 'Application.Exit() 'End End Sub Private Sub ProcessOldImportEmailFiles() ' Delete oldest output file and rename others If My.Computer.FileSystem.FileExists(outputfile & "_005.csv") = True Then My.Computer.FileSystem.DeleteFile(outputfile & "_005.csv") End If If My.Computer.FileSystem.FileExists(outputfile & "_004.csv") = True Then My.Computer.FileSystem.RenameFile(outputfile & "_004.csv", "ImportEmails_005.csv") End If If My.Computer.FileSystem.FileExists(outputfile & "_003.csv") = True Then My.Computer.FileSystem.RenameFile(outputfile & "_003.csv", "ImportEmails_004.csv") End If If My.Computer.FileSystem.FileExists(outputfile & "_002.csv") = True Then My.Computer.FileSystem.RenameFile(outputfile & "_002.csv", "ImportEmails_003.csv") End If If My.Computer.FileSystem.FileExists(outputfile & "_001.csv") = True Then My.Computer.FileSystem.RenameFile(outputfile & "_001.csv", "ImportEmails_002.csv") End If If My.Computer.FileSystem.FileExists(outputfile & ".csv") = True Then My.Computer.FileSystem.RenameFile(outputfile & ".csv", "ImportEmails_001.csv") End If End Sub Private Sub ProcessInputFile(ByVal currentfile As String) Dim mystream As New StreamReader(currentfile) Dim textline As String = "" Do CurrLine = mystream.ReadLine() 'CurrLine = Trim(LCase(CurrLine)) If Not CurrLine Is Nothing Then ParseText(CurrLine) End If Loop Until CurrLine Is Nothing mystream.Close() textline = QDate & "," & Real_Name & "," & Email & "," & Principle_Legal_Advisor & "," & Secondary_Legal_Advisor & "," & Overall_Service_Level & "," & Why_Poor_Service & "," & Legal_Advisors_Advice & "," & Legal_Advisors_Responsiveness & "," & Why_Poor_Response & "," & Clarity_Of_Advice & "," & Kept_Up_To_Date & "," & Helpful_Secretaries & "," & Helpful_Receptionist & "," & How_Well_Did_We_Listen & "," & Use_Again & "," & Recommend & "," & Used_Website & "," & About_Website & "," & Wants_Call_Back & ",'" & Phone_Number & "'," & Best_Time & "," & Other_Comments & "," & Interested_in_a_Will & "," & Interested_in_LPA & "," & Interested_in_Probate & "," & Interested_in_Employment_Law & "," & Interested_in_Commercial_Property & "," & Interested_in_Family_Law & "," & Interested_in_Conveyancing & "," & Interested_in_Landlord & "," & Interested_in_Civil_Litigation & "," & Interested_in_PI & "," & Interested_in_Business_Law & "," & Interested_in_Charity_Law My.Computer.FileSystem.WriteAllText(outputfile, textline, True) End Sub Private Sub ParseText(ByVal Text As String) Dim Working As String Dim position As Integer Text = Trim(Text) Text = Regex.Replace(Text, ",", " ") If Text Like "*Sent:*" Then QDate = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 6)) QDate = Trim(Microsoft.VisualBasic.Left(QDate, 11)) End If If Text Like "*Below is the result of your feedback form*" Then Real_Name = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 64)) End If If Text Like "*) on *" Then position = InStr(Text, ") on ") Working = Microsoft.VisualBasic.Left(Text, position - 1) Email = Trim(Microsoft.VisualBasic.Right(Working, Len(Working) - 1)) End If If Text Like "*Principle_Legal_Advisor*" Then Principle_Legal_Advisor = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 25)) End If If Text Like "*Secondary_Legal_Advisor*" Then Secondary_Legal_Advisor = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 25)) End If If Text Like "*Overall_Service_Level*" Then Overall_Service_Level = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 23)) End If If Text Like "*Why_Poor_Service*" Then Why_Poor_Service = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 18)) Still_Why_Poor_Service = True End If If Text Like "*Legal_Advisors_Advice*" Then Legal_Advisors_Advice = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 23)) Still_Why_Poor_Service = False ElseIf Still_Why_Poor_Service = True And Not Text Like "*Why_Poor_Service*" Then Why_Poor_Service = Why_Poor_Service & " | " & Trim(Text) End If If Text Like "*Legal_Advisors_Responsiveness*" Then Legal_Advisors_Responsiveness = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 31)) End If If Text Like "*Why_Poor_Response*" Then Why_Poor_Response = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 19)) Still_Why_Poor_Response = True End If If Text Like "*Clarity_Of_Advice*" Then Clarity_Of_Advice = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 19)) Still_Why_Poor_Response = False ElseIf Still_Why_Poor_Response = True And Not Text Like "*Why_Poor_Response*" Then Why_Poor_Response = Why_Poor_Response & " | " & Trim(Text) End If If Text Like "*Kept_Up_To_Date*" Then Kept_Up_To_Date = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 17)) End If If Text Like "*Helpful_Secretaries*" Then Helpful_Secretaries = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 21)) End If If Text Like "*Helpful_Receptionist*" Then Helpful_Receptionist = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 22)) End If If Text Like "*How_Well_Did_We_Listen*" Then How_Well_Did_We_Listen = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 24)) End If If Text Like "*Use_Again*" Then Use_Again = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 11)) End If If Text Like "*Recommend:*" Then Recommend = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 11)) End If If Text Like "*Used_Website*" Then Used_Website = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 14)) End If If Text Like "*About_Website*" Then About_Website = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 15)) Still_About_Website = True End If If Text Like "*Call_Back:*" Then Still_About_Website = False If Text Like "*Call_Back: N*" Then Wants_Call_Back = "N" Else Wants_Call_Back = "Y" End If ElseIf Still_About_Website = True And Not Text Like "*About_Website*" Then About_Website = About_Website & " | " & Trim(Text) End If If Text Like "*Phone_Number*" Then Phone_Number = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 14)) End If If Text Like "*Best_Time_To_Call*" Then Best_Time = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 19)) End If If Text Like "*Other_Comments*" Then Other_Comments = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 16)) Still_Other_Comments = True End If If Text Like "*_in_a_Will*" Then Interested_in_a_Will = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 22)) Still_Other_Comments = False ElseIf Still_Other_Comments = True And Not Text Like "*Other_Comments*" Then Other_Comments = Other_Comments & " | " & Trim(Text) End If If Text Like "*_in_LPA*" Then Interested_in_LPA = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 19)) End If If Text Like "*_in_Probate*" Then Interested_in_Probate = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 23)) End If If Text Like "*_in_Employment_Law*" Then Interested_in_Employment_Law = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 30)) End If If Text Like "*_in_Commercial_Property*" Then Interested_in_Commercial_Property = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 35)) End If If Text Like "*_in_Family_Law*" Then Interested_in_Family_Law = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 26)) End If If Text Like "*_in_Conveyancing*" Then Interested_in_Conveyancing = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 28)) End If If Text Like "*_in_Landlord*" Then Interested_in_Landlord = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 24)) End If If Text Like "*_in_Civil_Litigation*" Then Interested_in_Civil_Litigation = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 32)) End If If Text Like "*_in_PI*" Then Interested_in_PI = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 18)) End If If Text Like "*_in_Business_Law*" Then Interested_in_Business_Law = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 28)) End If If Text Like "*_in_Charity_Law*" Then Interested_in_Charity_Law = Trim(Microsoft.VisualBasic.Right(Text, Len(Text) - 27)) End If End Sub Private Sub ProgressBar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProgressBar1.Click End Sub Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click Application.Exit() End End Sub End Class