xiaolito
路人甲
路人甲
  • 注册日期2008-12-24
  • 发帖数44
  • QQ
  • 铜币237枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1805回复:1

一段VB代码,知道的答案,不知道的当学习!

楼主#
更多 发布于:2009-07-20 17:08
花几分钟看看下面代码,意思很清楚,知道的朋友解答下,不知道的就当和我一起学习学习!<BR>Sub add_Field()<BR>Dim pdoc As IMxDocument<BR>Dim pmap As IMap<BR>Dim play As IFeatureLayer<BR>Dim pFClass As IFeatureClass<BR>Dim pfcursor As IFeatureCursor<BR>Dim pfeature As IFeature<BR>Dim pCurve As ICurve<BR>Dim pfields As IFieldsEdit<BR>Dim pfield As IFieldEdit<BR><BR>Set pdoc = ThisDocument<BR>Set pmap = pdoc.FocusMap<BR>Set play = pmap.Layer(0)<BR>Set pFClass = play.FeatureClass<BR>'----添加一个feild---------<BR>Set pfields = pFClass.Fields<BR><BR>Set pfield = New Field<BR>  With pfield<BR>     .name = "Length"<BR>     .Type = esriFieldTypeString<BR>     .Length = 20<BR>     <BR>  End With<BR>pfields.AddField pfield<BR>MsgBox "添加成功!"<BR>'---------end -------------<BR>  Set pfcursor = pFClass.Search(Nothing, True)<BR>  Set pfeature = pfcursor.NextFeature<BR>  Set pCurve = pfeature.Shape<BR>  <BR>Do Until pfeature Is Nothing<BR>pfeature.Value(pFClass.FindField("Length")) = pCurve.Length<BR>' pfcursor.UpdateFeature pfeature<BR>Set pfeature = pfcursor.NextFeature<BR>Loop<BR>End Sub<BR>以上代码正确运行,但是为什么属性表中增加了Length这个字段,可为什么还是没有值呢?<BR>如果我用下面代码测试,里面却时已经赋值了呀,为什么没有,难道没保存?但怎么保存可以显示这个字段了???<BR><BR>'------------测试-------------------<BR>'Dim i As Integer<BR>'For i = 0 To 3<BR>'pfeature.Value(pFClass.FindField("Length")) = pCurve.Length<BR><BR>'MsgBox pfeature.Value(pFClass.FindField("Length"))<BR>'Set pfeature = pfcursor.NextFeature<BR>'Next<BR>'-----------end测试-----------------
喜欢0 评分0
bruce_chou
路人甲
路人甲
  • 注册日期2003-10-10
  • 发帖数8
  • QQ
  • 铜币121枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2009-07-31 16:15
<P>加一句pfeature.store试试</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部