vb.net 浏览文件夹读取指定文件夹下的csv文件 并验证,显示错误信息

Imports System.Text
Imports Microsoft.VisualBasic.FileIO

Imports Shell32

Public Class Form1

    Protected Sub errorInfo(ByVal filePath As String)
        Dim csv()() As String
        Dim fs = Microsoft.VisualBasic.FileIO.FileSystem.GetFiles("D:\ALF_FILE\UPLOAD\Batch\data\", SearchOption.SearchTopLevelOnly, "*.csv")
        For Each fl In fs
            Dim fileName = fl.Substring(fl.LastIndexOf("\") + 1)
            Dim lines() As String = IO.File.ReadAllLines(fl, Encoding.GetEncoding("gb2312"))
            ReDim Preserve csv(lines.GetUpperBound(0) + 100)
            Dim csvHead() = lines(0).Split(","c)
            Dim errMasage = New StringBuilder()
            If fileName.StartsWith("D00") Then
                For x As Integer = 0 To lines.GetUpperBound(0)
                    errMasage = New StringBuilder()
                    csv(x) = lines(x).Split(","c)
                    If csv(x)(csvIndex("资料类型", csvHead)) = "资料类型" Then
                        Continue For
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("文件名", csvHead))) Then
                        errMasage.Append("文件名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料类型", csvHead))) Then
                        errMasage.Append("资料类型不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("类别", csvHead))) Then
                        errMasage.Append("类别不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧目名", csvHead))) Then
                        errMasage.Append("剧目名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("编剧", csvHead))) Then
                        errMasage.Append("编剧不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("编剧方式", csvHead))) Then
                        errMasage.Append("编剧方式不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("导演", csvHead))) Then
                        errMasage.Append("导演不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("主要演员", csvHead))) Then
                        errMasage.Append("主要演员不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("来源", csvHead))) Then
                        errMasage.Append("来源不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料简介", csvHead))) Then
                        errMasage.Append("资料简介不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        errMasage.Append("剧种不能为空 ")
                    End If
                    If Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("0") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead))) Then
                                errMasage.Append("当剧种为话剧的时候话剧不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为话剧的时候流派、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("1") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("2") Then
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候话剧、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("3") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("4") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候其他戏曲不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Then
                                errMasage.Append("当剧种为地方戏或其他戏曲的时候话剧、流派必须为空 ")
                            End If
                        End If
                    End If
                    Call loadTab(errMasage.ToString, x, fl)
                Next
            End If
            If fileName.StartsWith("D01") Then
                For x As Integer = 0 To lines.GetUpperBound(0)
                    errMasage = New StringBuilder()
                    csv(x) = lines(x).Split(","c)
                    If csv(x)(csvIndex("资料类型", csvHead)) = "资料类型" Then
                        Continue For
                    End If

                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("文件名", csvHead))) Then
                        errMasage.Append("文件名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料类型", csvHead))) Then
                        errMasage.Append("资料类型不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("类别", csvHead))) Then
                        errMasage.Append("类别不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("题名", csvHead))) Then
                        errMasage.Append("题名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("主讲人", csvHead))) Then
                        errMasage.Append("主讲人不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("来源", csvHead))) Then
                        errMasage.Append("来源不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料简介", csvHead))) Then
                        errMasage.Append("资料简介不能为空 ")
                    End If
                    Call loadTab(errMasage.ToString, x, fl)
                Next
            End If
            If fileName.StartsWith("D10") Then

                For x As Integer = 0 To lines.GetUpperBound(0)
                    errMasage = New StringBuilder()
                    csv(x) = lines(x).Split(","c)
                    If csv(x)(csvIndex("资料类型", csvHead)) = "资料类型" Then
                        Continue For
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("文件名", csvHead))) Then
                        errMasage.Append("文件名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料类型", csvHead))) Then
                        errMasage.Append("资料类型不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("类别", csvHead))) Then
                        errMasage.Append("类别不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧目名", csvHead))) Then
                        errMasage.Append("剧目名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("作词", csvHead))) Then
                        errMasage.Append("作词不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("演出者", csvHead))) Then
                        errMasage.Append("演出者不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("来源", csvHead))) Then
                        errMasage.Append("来源不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料简介", csvHead))) Then
                        errMasage.Append("资料简介不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        errMasage.Append("剧种不能为空 ")
                    End If
                    If Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("0") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead))) Then
                                errMasage.Append("当剧种为话剧的时候话剧不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为话剧的时候流派、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("1") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("2") Then
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候话剧、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("3") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("4") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候其他戏曲不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Then
                                errMasage.Append("当剧种为地方戏或其他戏曲的时候话剧、流派必须为空 ")
                            End If
                        End If
                    End If
                    Call loadTab(errMasage.ToString, x, fl)
                Next
            End If
            If fileName.StartsWith("D11") Then
                errMasage = New StringBuilder()
                For x As Integer = 0 To lines.GetUpperBound(0)
                    csv(x) = lines(x).Split(","c)
                    If csv(x)(csvIndex("资料类型", csvHead)) = "资料类型" Then
                        Continue For
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("文件名", csvHead))) Then
                        errMasage.Append("文件名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料类型", csvHead))) Then
                        errMasage.Append("资料类型不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("类别", csvHead))) Then
                        errMasage.Append("类别不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("题名", csvHead))) Then
                        errMasage.Append("题名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("主讲人", csvHead))) Then
                        errMasage.Append("主讲人不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("来源", csvHead))) Then
                        errMasage.Append("来源不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料简介", csvHead))) Then
                        errMasage.Append("资料简介不能为空 ")
                    End If
                    Call loadTab(errMasage.ToString, x, fl)
                Next
            End If
            If fileName.StartsWith("D20") Then

                For x As Integer = 0 To lines.GetUpperBound(0)
                    errMasage = New StringBuilder()
                    csv(x) = lines(x).Split(","c)
                    If csv(x)(csvIndex("资料类型", csvHead)) = "资料类型" Then
                        Continue For
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("文件名", csvHead))) Then
                        errMasage.Append("文件名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料类型", csvHead))) Then
                        errMasage.Append("资料类型不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("类别", csvHead))) Then
                        errMasage.Append("类别不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("题名", csvHead))) Then
                        errMasage.Append("题名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("主要人物", csvHead))) Then
                        errMasage.Append("主要人物不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("来源", csvHead))) Then
                        errMasage.Append("来源不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料简介", csvHead))) Then
                        errMasage.Append("资料简介不能为空 ")
                    End If
                    If Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("来源", csvHead))) Then
                        If csv(x).ElementAtOrDefault(csvIndex("来源", csvHead)).Equals("0") Then

                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("书(刊、资料)名", csvHead)))) _
                                Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("页码", csvHead)))) _
                                Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版单位", csvHead)))) _
                                Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版日期", csvHead)))) _
                                Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("分类号", csvHead)))) _
                                Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("网络名称", csvHead)))) Then

                                errMasage.Append("当剧种为原件复制的时候书(刊、资料)名、页码、出版单位、出版日期、分类号、网络名称必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("来源", csvHead)).Equals("1") Then

                            If (String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("书(刊、资料)名", csvHead)))) _
                                 Or (String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("页码", csvHead)))) _
                                 Or (String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版单位", csvHead)))) _
                                 Or (String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版日期", csvHead)))) Then

                                errMasage.Append("当剧种为原件复制的时候书(刊、资料)名、页码、出版单位、出版日期不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("网络名称", csvHead)))) Then

                                errMasage.Append("当剧种为来自书刊的时候网络名称必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("来源", csvHead)).Equals("2") Then
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("书(刊、资料)名", csvHead)))) _
                               Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("页码", csvHead)))) _
                               Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版单位", csvHead)))) _
                               Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版日期", csvHead)))) _
                               Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("分类号", csvHead)))) Then

                                errMasage.Append("当剧种为原件复制的时候书(刊、资料)名、页码、出版单位、出版日期、分类号必须为空 ")
                            End If
                        End If
                    End If
                    Call loadTab(errMasage.ToString, x, fl)
                Next
            End If
            If fileName.StartsWith("D21") Then

                For x As Integer = 0 To lines.GetUpperBound(0)
                    errMasage = New StringBuilder()
                    csv(x) = lines(x).Split(","c)
                    If csv(x)(csvIndex("资料类型", csvHead)) = "资料类型" Then
                        Continue For
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("文件名", csvHead))) Then
                        errMasage.Append("文件名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料类型", csvHead))) Then
                        errMasage.Append("资料类型不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("类别", csvHead))) Then
                        errMasage.Append("类别不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("题名", csvHead))) Then
                        errMasage.Append("题名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        errMasage.Append("剧种不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("来源", csvHead))) Then
                        errMasage.Append("来源不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料简介", csvHead))) Then
                        errMasage.Append("资料简介不能为空 ")
                    End If
                    If Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("来源", csvHead))) Then
                        If csv(x).ElementAtOrDefault(csvIndex("来源", csvHead)).Equals("0") Then

                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("书(刊、资料)名", csvHead)))) _
                                Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("页码", csvHead)))) _
                                Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版单位", csvHead)))) _
                                Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版日期", csvHead)))) _
                                Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("分类号", csvHead)))) _
                                Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("网络名称", csvHead)))) Then

                                errMasage.Append("当剧种为原件复制的时候书(刊、资料)名、页码、出版单位、出版日期、分类号、网络名称必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("来源", csvHead)).Equals("1") Then

                            If (String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("书(刊、资料)名", csvHead)))) _
                                 Or (String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("页码", csvHead)))) _
                                 Or (String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版单位", csvHead)))) _
                                 Or (String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版日期", csvHead)))) Then

                                errMasage.Append("当剧种为原件复制的时候书(刊、资料)名、页码、出版单位、出版日期不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("网络名称", csvHead)))) Then

                                errMasage.Append("当剧种为来自书刊的时候网络名称必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("来源", csvHead)).Equals("2") Then
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("书(刊、资料)名", csvHead)))) _
                               Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("页码", csvHead)))) _
                               Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版单位", csvHead)))) _
                               Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版日期", csvHead)))) _
                               Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("分类号", csvHead)))) Then

                                errMasage.Append("当剧种为原件复制的时候书(刊、资料)名、页码、出版单位、出版日期、分类号必须为空 ")
                            End If
                        End If
                    End If
                    If Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("0") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead))) Then
                                errMasage.Append("当剧种为话剧的时候话剧不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为话剧的时候流派、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("1") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("2") Then
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候话剧、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("3") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("4") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候其他戏曲不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Then
                                errMasage.Append("当剧种为地方戏或其他戏曲的时候话剧、流派必须为空 ")
                            End If
                        End If
                    End If
                    Call loadTab(errMasage.ToString, x, fl)
                Next
            End If
            If fileName.StartsWith("D30") Then
                For x As Integer = 0 To lines.GetUpperBound(0)
                    errMasage = New StringBuilder()
                    csv(x) = lines(x).Split(","c)
                    If csv(x)(csvIndex("资料类型", csvHead)) = "资料类型" Then
                        Continue For
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("文件名", csvHead))) Then
                        errMasage.Append("文件名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料类型", csvHead))) Then
                        errMasage.Append("资料类型不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("类别", csvHead))) Then
                        errMasage.Append("类别不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("正题名", csvHead))) Then
                        errMasage.Append("正题名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("著者名", csvHead))) Then
                        errMasage.Append("著者名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("著作方式", csvHead))) Then
                        errMasage.Append("著作方式不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("页数", csvHead))) Then
                        errMasage.Append("页数不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版单位", csvHead))) Then
                        errMasage.Append("出版单位不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版时间", csvHead))) Then
                        errMasage.Append("出版时间不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("分类号", csvHead))) Then
                        errMasage.Append("分类号不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("篇目类型", csvHead))) Then
                        errMasage.Append("篇目类型不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料简介", csvHead))) Then
                        errMasage.Append("资料简介不能为空 ")
                    End If
                    If Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("0") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead))) Then
                                errMasage.Append("当剧种为话剧的时候话剧不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为话剧的时候流派、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("1") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("2") Then
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候话剧、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("3") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("4") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候其他戏曲不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Then
                                errMasage.Append("当剧种为地方戏或其他戏曲的时候话剧、流派必须为空 ")
                            End If
                        End If
                    End If
                    Call loadTab(errMasage.ToString, x, fl)
                Next
            End If
            If fileName.StartsWith("D31") Then
                For x As Integer = 0 To lines.GetUpperBound(0)
                    errMasage = New StringBuilder()
                    csv(x) = lines(x).Split(","c)
                    If csv(x)(csvIndex("资料类型", csvHead)) = "资料类型" Then
                        Continue For
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("文件名", csvHead))) Then
                        errMasage.Append("文件名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料类型", csvHead))) Then
                        errMasage.Append("资料类型不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("类别", csvHead))) Then
                        errMasage.Append("类别不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("正题名", csvHead))) Then
                        errMasage.Append("正题名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("著者名", csvHead))) Then
                        errMasage.Append("著者名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("著作方式", csvHead))) Then
                        errMasage.Append("著作方式不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("页数", csvHead))) Then
                        errMasage.Append("页数不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版单位", csvHead))) Then
                        errMasage.Append("出版单位不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("出版时间", csvHead))) Then
                        errMasage.Append("出版时间不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("分类号", csvHead))) Then
                        errMasage.Append("分类号不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("篇目类型", csvHead))) Then
                        errMasage.Append("篇目类型不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        errMasage.Append("剧种不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料简介", csvHead))) Then
                        errMasage.Append("资料简介不能为空 ")
                    End If
                    If Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("0") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead))) Then
                                errMasage.Append("当剧种为话剧的时候话剧不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为话剧的时候流派、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("1") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("2") Then
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候话剧、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("3") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("4") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候其他戏曲不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Then
                                errMasage.Append("当剧种为地方戏或其他戏曲的时候话剧、流派必须为空 ")
                            End If
                        End If
                    End If
                    Call loadTab(errMasage.ToString, x, fl)
                Next
            End If
            If fileName.StartsWith("D32") Then
                For x As Integer = 0 To lines.GetUpperBound(0)
                    errMasage = New StringBuilder()
                    csv(x) = lines(x).Split(","c)
                    If csv(x)(csvIndex("资料类型", csvHead)) = "资料类型" Then
                        Continue For
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("文件名", csvHead))) Then
                        errMasage.Append("文件名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料类型", csvHead))) Then
                        errMasage.Append("资料类型不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("类别", csvHead))) Then
                        errMasage.Append("类别不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("正题名", csvHead))) Then
                        errMasage.Append("正题名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("作者", csvHead))) Then
                        errMasage.Append("作者不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        errMasage.Append("剧种不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料简介", csvHead))) Then
                        errMasage.Append("资料简介不能为空 ")
                    End If
                    If Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("0") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead))) Then
                                errMasage.Append("当剧种为话剧的时候话剧不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为话剧的时候流派、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("1") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("2") Then
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候话剧、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("3") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("4") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候其他戏曲不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Then
                                errMasage.Append("当剧种为地方戏或其他戏曲的时候话剧、流派必须为空 ")
                            End If
                        End If
                    End If
                    Call loadTab(errMasage.ToString, x, fl)
                Next
            End If
            If fileName.StartsWith("D33") Then
                For x As Integer = 0 To lines.GetUpperBound(0)
                    errMasage = New StringBuilder()
                    csv(x) = lines(x).Split(","c)
                    If csv(x)(csvIndex("资料类型", csvHead)) = "资料类型" Then
                        Continue For
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("文件名", csvHead))) Then
                        errMasage.Append("文件名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料类型", csvHead))) Then
                        errMasage.Append("资料类型不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("类别", csvHead))) Then
                        errMasage.Append("类别不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("正题名", csvHead))) Then
                        errMasage.Append("正题名不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("作者", csvHead))) Then
                        errMasage.Append("作者不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        errMasage.Append("剧种不能为空 ")
                    End If
                    If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("资料简介", csvHead))) Then
                        errMasage.Append("资料简介不能为空 ")
                    End If
                    If Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead))) Then
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("0") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead))) Then
                                errMasage.Append("当剧种为话剧的时候话剧不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为话剧的时候流派、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("1") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("2") Then
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead)))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候话剧、其他戏曲必须为空 ")
                            End If
                        End If
                        If csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("3") Or csv(x).ElementAtOrDefault(csvIndex("剧种", csvHead)).Equals("4") Then
                            If String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("其他戏曲", csvHead))) Then
                                errMasage.Append("当剧种为京剧或昆曲的时候其他戏曲不能为空 ")
                            End If
                            If (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("话剧", csvHead)))) Or (Not String.IsNullOrEmpty(csv(x).ElementAtOrDefault(csvIndex("流派", csvHead)))) Then
                                errMasage.Append("当剧种为地方戏或其他戏曲的时候话剧、流派必须为空 ")
                            End If
                        End If
                    End If
                    Call loadTab(errMasage.ToString, x, fl)
                Next
            End If


        Next
    End Sub



    Function csvIndex(ByVal cvsValue As String, ByVal csvHead() As String) As Integer

        Dim i = Array.IndexOf(csvHead, cvsValue)
        Return i

    End Function

    Private Sub loadTab(ByVal errMasage As String, ByVal x As Integer, ByVal fl As String)
        If Not String.IsNullOrEmpty(errMasage.ToString) Then
            Dim fileName = fl.Substring(fl.LastIndexOf("\") + 1)
            Dim errorMassage = New StringBuilder()
            errorMassage.Append("文件").Append(fileName).Append("第").Append(x).Append("行错误,").Append(errMasage)
            ListView1.Items.Add(errorMassage.ToString)

        End If
    End Sub



    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim strId As String
        strId = Command()
        ListView1.Items.Clear()
        ListView1.Clear()
        ListView1.FullRowSelect = True
        ListView1.AllowColumnReorder = True     '对行进行程序排列,用鼠标进行排列
        ListView1.View = View.List
        ListView1.Items.Add("错误信息")
        ListView1.Items.Add("请选择验证文件")

        ListView1.Width = 1500

    End Sub


    Dim shlShell As Shell32.Shell
    Dim shlFolder As Shell32.Folder
    Private Const BIF_RETURNONLYFSDIRS = &H1

    Private Sub selectFoder_Click(sender As System.Object, e As System.EventArgs) Handles selectFoder.Click
        

        If shlShell Is Nothing Then
            shlShell = New Shell32.Shell
        End If
        shlFolder = shlShell.BrowseForFolder(0, "请选择文件夹", 0)
        If Not shlFolder Is Nothing Then
            TextBox1.Text = Trim(shlFolder.Items.Item.Path)
        End If
    End Sub

    Private Sub check_Click(sender As System.Object, e As System.EventArgs) Handles check.Click
        Call errorInfo(TextBox1.Text)
    End Sub
End Class

posted on 2013-01-12 18:57  风中夜  阅读(595)  评论(0编辑  收藏  举报

导航