|
阅读:1895回复:3
请教:vb+mapbasic中如何使用循环结构?
各位大侠:我用vb+mapbasic编写的如下程序,目的是打开exl表中带经纬度的基站,创建基站点在地图上,但循环结构语法出错(不能识别的命令:do),请大家帮忙看一看,多谢。<BR>Private Sub POWERALARM_Click(Index As Integer)
<br> <P> Dim MapPath As String<BR> MapPath = App.Path<BR> 'MapInfo.do "Dim newPoint As Object"<BR> MapInfo.Do "register table " ; """" ; MapPath ; "\Gis\图层文件\jz.xls" ; """" ; " type xls "<BR> MapInfo.Do " Open Table" ; """" ; MapPath ; "\Gis\图层文件\jz" ; """" ; " Interactive"<BR> MapInfo.Do "dim r1 as float"<BR> MapInfo.Do "dim r2 as float"<BR> MapInfo.Do "Dim i As Integer"<BR> MapInfo.Do "i = 2"<BR> MapInfo.Do "Do While i < 9"<BR> MapInfo.Do "fetch rec i from jz r1=jz.col9"<BR> MapInfo.Do "fetch rec i from jz r2=jz.col10"<BR> MapInfo.Do "create map for jz"<BR> MapInfo.Do "set map layer 0 editable"<BR> MapInfo.Do " create point into window Frontwindow() (r1,r2) Symbol (34,16711680,24) "<BR> MapInfo.Do " i = i + 1"<BR> MapInfo.Do "Loop"<BR>End Sub<BR></P> |
|
|
1楼#
发布于:2007-08-10 00:03
<P>不能使用MAPBASIC的"DO WHILE"循环语句,你直接使用VB的循环语句就行了.</P>
<P>告诉你一个小技巧,凡是能在mapinfo的mapbasic小窗口中用的命令,函数,在VB OLE方式中就可以使用.</P> |
|
|
|
2楼#
发布于:2007-08-10 09:48
<P>感谢lcs158,按照你的指点我将程序进行了更新,如下:</P>
<P>Private Sub POWERALARM_Click(Index As Integer)</P> <P> Dim MapPath As String<BR> MapPath = App.Path<BR> 'MapInfo.do "Dim newPoint As Object"<BR> MapInfo.Do "register table " ; """" ; MapPath ; "\Gis\图层文件\jz.xls" ; """" ; " type xls "<BR> MapInfo.Do " Open Table" ; """" ; MapPath ; "\Gis\图层文件\jz" ; """" ; " Interactive"<BR> MapInfo.Do "Dim r1 As Float"<BR> MapInfo.Do "Dim r2 As Float"<BR> Dim i As Integer<BR> i = 2<BR> Do While i < 9<BR> MapInfo.Do "fetch rec i from jz r1=jz.col9"<BR> MapInfo.Do "fetch rec i from jz r2=jz.col10"<BR> MapInfo.Do "create map for jz"<BR> MapInfo.Do "set map layer 0 editable"<BR> MapInfo.Do " create point into window Frontwindow() (r1,r2) Symbol (34,16711680,24) "<BR> i = i + 1<BR> Loop<BR>End Sub</P> <P>但编译时错误行为:MapInfo.Do "fetch rec i from jz r1=jz.col9"<BR>提示:变量或字段i未定义,不知是何原因?</P> |
|
|
3楼#
发布于:2007-08-13 14:58
<P>已经搞定</P>
|
|