xzshy
路人甲
路人甲
  • 注册日期2007-07-07
  • 发帖数7
  • QQ
  • 铜币151枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1897回复:3

请教:vb+mapbasic中如何使用循环结构?

楼主#
更多 发布于:2007-08-09 11:29
各位大侠:我用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>
喜欢0 评分0
xzshy
路人甲
路人甲
  • 注册日期2007-07-07
  • 发帖数7
  • QQ
  • 铜币151枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-08-13 14:58
<P>已经搞定</P>
举报 回复(0) 喜欢(0)     评分
xzshy
路人甲
路人甲
  • 注册日期2007-07-07
  • 发帖数7
  • QQ
  • 铜币151枚
  • 威望0点
  • 贡献值0点
  • 银元0个
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>
举报 回复(0) 喜欢(0)     评分
lcs158
论坛版主
论坛版主
  • 注册日期2003-07-30
  • 发帖数319
  • QQ
  • 铜币19枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-08-10 00:03
<P>不能使用MAPBASIC的"DO WHILE"循环语句,你直接使用VB的循环语句就行了.</P>
<P>告诉你一个小技巧,凡是能在mapinfo的mapbasic小窗口中用的命令,函数,在VB OLE方式中就可以使用.</P>
[url=http://www.sohi.cn]北京搜海书店,做中国3S书籍最齐全,服务最好的品牌书店。看看我们的网站,现在有什么新书!!![/url]
举报 回复(0) 喜欢(0)     评分
游客

返回顶部