QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 5345|回复: 1
收起左侧

[求助] 请教件事,Open "新建文本文档" For Output As #1成果输出位置怎么固定?

[复制链接]
发表于 2020-1-23 23:02:26 | 显示全部楼层 |阅读模式 来自: 中国江苏镇江
安装
主题分类用于问题归类:

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
同一台电脑运行,别人写的程序也没有专门写地址语句、文件保存类型,但是别人的宏能直接生成dxf文件。我写的程序结果保存在我的文档里,而且生成的是不带后缀的文件,手动加后缀或者写成Open "新建文本文档.dxf" For Output As #1。
0 \1 N2 B1 n3 O3 ]; o+ n& B( GPS:生成的文件是没有问题的。结果老是存在我的文档里这个还没解决。
发表于 2020-1-30 09:03:11 | 显示全部楼层 来自: 中国北京
本帖最后由 woaishuijia 于 2020-1-31 04:24 编辑
* S3 a5 x! L, J) }- U6 D  E0 k) A# D/ @. h& h  \; |/ r0 b
结合你另外一个帖子“”,我好像明白你的意思了。7 h0 G  j& J6 v
那个帖子里的Print #语句后面的文件号用的是1,这是有问题的。按照VB的语法规则,这个文件号是一个1~511的正整数,应该是由电脑自动生成。你这个直接使用1的情况,除非电脑只打开了一个文档,否则文件号1被其它文档占用,就出错了。只能先手动创建文档,再执行程序,我在那个帖子里的回复就是这样子的(那个回复为了简短,没有讨论编程技巧),为了保证程序顺利运行,要求先创建文档。! Z! Y8 j1 a1 g5 p0 \' E
把那个主程序和子程序的代码改一下
* Q  S, w  t: {
  1. Dim FileNumber As Integer
    / N9 k5 F  v  o+ L
  2. 7 B/ P# _3 U( o- e
  3. Sub A()
    1 S/ V2 o' w- y) T- q
  4.     FileNumber = FreeFile()
    # ~6 v+ q: O' {) k/ j
  5.     Open "c:\1.dxf" For Output As #FileNumber
    " W% U( c$ W6 }( z8 E. }4 T
  6.     Print #FileNumber, 0
    1 t2 }, Q  ^, q
  7.     Print #FileNumber, "SECTION"
    # i3 L4 Q' ?2 h- q
  8.     Print #FileNumber, 21 t( E( u" K; H# P
  9.     Print #FileNumber, "ENTITIES"4 N& T7 J; j' B8 `
  10.     Print #FileNumber, 0
    $ ?$ M& _2 w5 U: L' a5 d
  11.     DxfLine 0, 0, 100, 100, 1, "Continuous"
    8 Y) x2 l% K0 o7 Z8 t. S. @
  12.     Print #FileNumber, "ENDSEC"$ i4 b, J: x8 s6 I
  13.     Print #FileNumber, 0+ A3 ~) ^* W8 n1 P6 ]
  14.     Print #FileNumber, "EOF"
    2 C' o. S; B9 O1 k( K" `
  15.     Close #FileNumber5 h; N3 b) t4 Z$ D% C
  16. End Sub
    3 {. q6 {* K& b
  17. 4 _  W; q' P; h; |) R2 B. D) T
  18. Sub DxfLine(xs#, ys#, xe#, ye#, cl%, Optional Typ$)
    9 [4 a5 c& B5 s: F
  19.     Print #FileNumber, "LINE"
    2 D, b& J: F2 Q3 `1 E2 a' Q
  20.     Print #FileNumber, 8$ b+ l# c6 H" ]! e+ K
  21.     Print #FileNumber, "0"- ]$ g( @+ r8 K/ J; C5 x! n7 D
  22.     If Typ <> "" Then
    * \6 a3 ?: {6 s/ q/ ]" `( u
  23.        Print #FileNumber, 6
    ' D; I6 B. v% S+ F! K7 P' _
  24.        Print #FileNumber, Typ
    - b' E* O4 W( U! I/ G& N9 ~5 ?
  25.     End If
    - \8 x/ t2 h) C, N
  26.     Print #FileNumber, 629 y+ L+ u6 V+ ?- ^5 D) p5 I2 l3 X
  27.     Print #FileNumber, cl
    # j' w3 I$ x8 p/ D# [2 K: Y
  28.     Print #FileNumber, 10. U6 N2 r! H; v0 f
  29.     Print #FileNumber, xs
    6 q& ^. C0 V: i- k* B
  30.     Print #FileNumber, 20
    . k- f/ B% G( `. n9 T, c7 U
  31.     Print #FileNumber, ys. V  s# l/ b2 Y' Z9 _" ?
  32.     Print #FileNumber, 30
    * V9 C9 B2 w* Q3 s
  33.     Print #FileNumber, 0#
    3 u$ T7 [) T( C8 S
  34.     Print #FileNumber, 112 e) j7 D* l. h; e2 K; g8 i
  35.     Print #FileNumber, xe4 G. F4 b( x# q3 c8 }, N  R2 X
  36.     Print #FileNumber, 21
    * w! \5 D% B1 h6 s  }
  37.     Print #FileNumber, ye- |# Q3 C% g& J# l
  38.     Print #FileNumber, 316 e1 Q- n! G& H
  39.     Print #FileNumber, 0#! L- }; `7 t# E! q2 f& v
  40.     Print #FileNumber, 0; u5 a+ Z7 p6 m# F! e5 [& _4 l4 U+ `
  41. End Sub
    0 U2 o/ u% p" P1 ?  I. E9 T: E
复制代码
代码中第一行是在通用声明区声明一个名为 FileNumber 的整型全局变量,用于保存文件号# F6 p: f0 ]# Z" W4 z3 v' P
第四行用 FreeFile 函数获得可用的文件号,后面的代码都使用这个文件号,包括子程序中的Print #语句,这也是使用全局变量的原因
& ?3 n: f' M$ x5 t# o第十八行,子程序的参数中的前四个都使用了显式类型声明字符“#”,表明这是Double 数据类型;第六个参数使用了Optional 关键字,表明这后面的参数是可选的:在调用子程序时,如果线形是“BYLAYER”,则不必带这个参数。如果不用这个关键字,在调用子程序时,就必须有这个参数,尽管它可能是空字符串。2 _3 V5 N4 l/ Y$ [. H+ a
第二十、二十三、二十六、二十八、三十、三十二、三十四、三十六、三十八和四十行,都去掉了双引号和空格,这里没必要使用字符串类型,用整型就可以, d2 x1 N6 `" q2 n7 Y$ b
第二十二、二十四行去掉了变量后面的显式类型声明字符“$”,没必要(已经在在第十八行的参数列表中声明了)。同理,第二十七行去掉了双引号及其内部空格及逗号,去掉了变量后面的显式类型声明字符“%”,没必要
7 Z6 f& J' O7 Q; z第三十三、三十九行把"0.00"改成了0#+ O4 S+ r$ t) H2 i
去掉了原子程序中的
  1. Label:
    * E- a" i! d/ j! d2 h
  2.      Exit Sub
复制代码

评分

参与人数 1三维币 +20 收起 理由
kuangben8 + 20 感谢您解答了求助的问题。

查看全部评分

发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表