65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Flat File Checker 进行数据验证

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2009 年 10 月 30 日

GPL3

2分钟阅读

viewsIcon

45347

downloadIcon

915

一篇关于使用 Flat File Checker 生成的平面文件模式进行数据验证的文章。

引言

通常需要在将平面文件导入数据库之前,或在从数据库导出数据之后验证它们。 Flat File Checker 允许您验证一组相互关联的平面文件 (*.csv, *.psv, *.txt, 等等),而无需直接在您的代码中解析它们。

您必须根据其验证文件的业务规则必须以 XML 文件的形式提供给 FLaFi 库,该 XML 文件通过 FlaFi 应用程序的图形用户界面创建。 以下是一些此类规则的示例

  • 字段中的值是必需的
  • 字段是具有给定格式且在给定范围内的日期
  • 字段结构必须匹配正则表达式
  • 两个文件已链接 [关系链接]
  • 必须将字段与另一个字段进行比较
  • 对一个或多个字段施加唯一约束
  • 必须根据数据库中存储的值进行验证

现在可以通过几个简单的步骤来解决验证任务

  • 创建平面文件模式(包含您要验证的文件的业务/数据规则的 XML 文件)
  • 将 Flat File Checker 库添加到您的 .NET 应用程序
  • 在您的应用程序中以最少的代码运行验证

背景

Flat File Checker 背后的想法是创建一个应用程序,该应用程序可以根据 XML 中存储的模式验证文本文件中的结构化数据,这类似于 XML 文件验证的方式。 这种方法将数据/业务规则与验证本身分离,因此需要的编码大大减少。

创建模式

以下是创建模式文件以供 FlaFi 验证使用的快速方法

  • 从 SourcForge.net 下载最新版本的 Flat File Checker 的安装程序
  • 安装应用程序并启动应用程序
  • 使用应用程序创建一个新模式,并将其本地保存为 XML 文件

创建模式后,您可以在浏览器中将其查看为可读的数据交换规范

schema_sample.jpg

将 Flat File Library 添加到您的解决方案

将 Flat File Library(请参阅顶部的链接)项目添加到 Visual Studio 中的解决方案。

运行验证并处理错误

要使用 Flat File Library,您需要使用以下主要类

  • FlatFileSchema - 包含文件集合的类
  • File - 虚拟类,用于访问与平面文件关联的多个对象:列、错误等。
  • DataError - 包含数据错误详细信息的类

您还可以将系统线程包含到您的项目中,因为验证是在异步模式下完成的

Imports System.Threading

以下代码显示了如何启动验证(RunValidation 子程序)并在需要时处理错误(FileSetValidated 委托子程序)。

'-----------------------------------------------------------
'                 VB.Net Example
'-----------------------------------------------------------
Private WithEvents _files As FlatFileSchema
Private do_checks As AutoResetEvent
' Start validation
Sub RunValidation()
 ' Use Flat File Checker user interface to create Schema file.
    _files = New FlatFileSchema(<Schema file path>)
      do_checks=_files.RunChecks()
End Sub

' Feedback errors when file(s) validation is complete
Private Sub FileSetValidated(ByVal sender As Object, _
ByVal e As SchemaValidatedEventArgs) _
                  Handles _files.Validated
 Dim file As FlatFile
 Dim err As DataError
 For Each file In _files.Files
       For Each err In file.Errors
          ' Feed back error to users here
          ...
       Next err
 Next file

End Sub

关注点

Flat File Checker 的控制台版本(附带的代码)使您可以仅用一行从命令行运行验证

c:/program files/flat file checker>flafi.exe <schema path>

cmd_sample.jpg

© . All rights reserved.