加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何创建DBF文件

(2007-06-30 11:08:54)
分类: ArcGIS学习
 

本例要实现的是如何创建一个单独的DBF文件。

  要点

首先设定DBF文件的字段个数,再创建新的IField对象,生成新字段,设置其属性,再加入到IFields对象中,最后用IFeatureWorkspace.CreateTable方法创建一个新的DBF文件并返回ITable对象。

主要用到IField接口,IFieldEdit接口,IFields接口,IFieldsEdit接口。

  程序说明

函数CreateDBF根据输入的路径和文件名创建一个DBF文件并返回一个ITable对象。

  代码

<!--DWLayoutTable-->

Private Function CreateDBF (sFilePath As String, sFileName As String) As ITable

'createDBF: simple function to create a DBASE file.

'note: the name of the DBASE file should not contain the .dbf extension

On Error GoTo ErrorHandler:

    Dim pFeatureWorkspace           As IFeatureWorkspace

    Dim pWorkspaceFactory           As IWorkspaceFactory

    Dim FileFolder                  As New Scripting.FileSystemObject

    Dim pFieldsEdit                 As esriCore.IFieldsEdit

    Dim pFieldEdit                  As esriCore.IFieldEdit

    Dim pFields                     As IFields

    Dim pField                      As IField

    Dim sDir                        As String

    'Open the Workspace

    Set pWorkspaceFactory = New ShapefileWorkspaceFactory

    If Not FileFolder.FolderExists(sFilePath) Then

        MsgBox "路径不存在" & vbCr & sFilePath

        Exit Function

    End If

    sDir = Dir(sFilePath & sFileName & ".dbf")

    If (sDir <> "") Then

        MsgBox ("文件已存在")

        Exit Function

    End If

    Set pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(sFilePath, 0)

    'if a fields collection is not passed in then create one

    'create the fields used by our object

    Set pFields = New esriCore.Fields

    Set pFieldsEdit = pFields

    pFieldsEdit.FieldCount = 6

    'Create text Fields

    Set pField = New Field

    Set pFieldEdit = pField

    With pFieldEdit

        .Name = "SmallInteger"

        .Type = esriFieldTypeSmallInteger

    End With

    Set pFieldsEdit.Field(0) = pField

    Set pField = New Field

    Set pFieldEdit = pField

    With pFieldEdit

        .Name = "Integer"

        .Type = esriFieldTypeInteger

    End With

    Set pFieldsEdit.Field(1) = pField

    Set pField = New Field

    Set pFieldEdit = pField

    With pFieldEdit

        .Name = "Single"

        .Type = esriFieldTypeSingle

    End With

    Set pFieldsEdit.Field(2) = pField

    Set pField = New Field

    Set pFieldEdit = pField

    With pFieldEdit

        .Precision = 5

        .Scale = 5

        .Name = "Double"

        .Type = esriFieldTypeDouble

    End With

    Set pFieldsEdit.Field(3) = pField

    Set pField = New Field

    Set pFieldEdit = pField

    With pFieldEdit

        .Length = 30

        .Name = "String"

        .Type = esriFieldTypeString

    End With

    Set pFieldsEdit.Field(4) = pField

    Set pField = New Field

    Set pFieldEdit = pField

    With pFieldEdit

        .Name = "Date"

        .Type = esriFieldTypeDate

    End With

    Set pFieldsEdit.Field(5) = pField

    Set createDBF = pFeatureWorkspace.CreateTable(sFileName, pFields, Nothing, Nothing, "")

    sDir = Dir(sFilePath & sFileName & ".dbf")

    If (sDir <> "") Then

        MsgBox ("Build Success")

    Else

        MsgBox ("Build Fail")

    End If

    Exit Function

ErrorHandler:

    MsgBox Err.Description

End Function

Private Sub UIButtonControl1_Click()

    Dim pVBProject              As VBProject

    Dim pTable                  As ITable

On Error GoTo ErrorHandler:

    Set pVBProject = ThisDocument.VBProject

    'Dont include .dbf extension

    Set pTable = CreateDBF (pVBProject.FileName & "\..\..\..\.." & "\data", "MyDBFFile")

    Exit Sub

ErrorHandler:

    MsgBox Err.Description

End Sub

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有