阅读:1805回复:1
一段VB代码,知道的答案,不知道的当学习!
花几分钟看看下面代码,意思很清楚,知道的朋友解答下,不知道的就当和我一起学习学习!<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测试-----------------
|
|
1楼#
发布于:2009-07-31 16:15
<P>加一句pfeature.store试试</P>
|
|