QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
同一台电脑运行,别人写的程序也没有专门写地址语句、文件保存类型,但是别人的宏能直接生成dxf文件。我写的程序结果保存在我的文档里,而且生成的是不带后缀的文件,手动加后缀或者写成Open "新建文本文档.dxf" For Output As #1。
" @" n3 n5 g9 c5 r% ZPS:生成的文件是没有问题的。结果老是存在我的文档里这个还没解决。
发表于 2020-1-30 09:03:11 | 显示全部楼层 来自: 中国北京
本帖最后由 woaishuijia 于 2020-1-31 04:24 编辑 % C4 p8 Y, Y6 x/ q

  }; n0 `; s0 b, R结合你另外一个帖子“”,我好像明白你的意思了。9 M# X7 G- Q' A, B+ q9 L* [8 c1 S
那个帖子里的Print #语句后面的文件号用的是1,这是有问题的。按照VB的语法规则,这个文件号是一个1~511的正整数,应该是由电脑自动生成。你这个直接使用1的情况,除非电脑只打开了一个文档,否则文件号1被其它文档占用,就出错了。只能先手动创建文档,再执行程序,我在那个帖子里的回复就是这样子的(那个回复为了简短,没有讨论编程技巧),为了保证程序顺利运行,要求先创建文档。
# d0 x1 _/ D0 R0 I* |把那个主程序和子程序的代码改一下
" I1 b5 C# }8 S4 e/ A) L
  1. Dim FileNumber As Integer- Y: j3 p; S$ w
  2. + Y0 ^9 u  J  U) ^" [: p8 ^
  3. Sub A()3 o0 Q: Z, R( m1 Y& P6 m
  4.     FileNumber = FreeFile()0 A8 c' ?: X' B/ H
  5.     Open "c:\1.dxf" For Output As #FileNumber
    2 R3 e' M; f8 r) `& [  K; u
  6.     Print #FileNumber, 0
    % @- t/ n5 [* e0 F* ^: A
  7.     Print #FileNumber, "SECTION"7 l* X& l- y! v2 H
  8.     Print #FileNumber, 23 h* b. [2 M3 n) a
  9.     Print #FileNumber, "ENTITIES"
    1 b: K' x- B& n6 |
  10.     Print #FileNumber, 05 S' P. Q. l1 o& L% U
  11.     DxfLine 0, 0, 100, 100, 1, "Continuous"
    , t/ b. }; O/ N0 @. E( ~& J8 u9 w
  12.     Print #FileNumber, "ENDSEC"$ f4 N  F) k9 Q/ V7 Q* D( k
  13.     Print #FileNumber, 0
    3 R# K4 u3 P! j; M
  14.     Print #FileNumber, "EOF"$ I3 C7 c. A/ N& e( @  D
  15.     Close #FileNumber/ Y) X3 O3 P0 f# }" i
  16. End Sub
    7 x" e3 i, q4 ~- [& p  n
  17. 8 E, E) g9 V3 G7 D( Y# }9 W) T# b
  18. Sub DxfLine(xs#, ys#, xe#, ye#, cl%, Optional Typ$)
    2 f4 O7 D8 R' {1 j2 v- ]9 r
  19.     Print #FileNumber, "LINE"
    # d" Z: P! G3 v  C3 K' s
  20.     Print #FileNumber, 8) R& @; g$ {3 X3 u; `6 Z! C+ v
  21.     Print #FileNumber, "0"
    $ K% \% ^! v3 S) B; |0 g
  22.     If Typ <> "" Then
    9 M" M/ [% a# i6 |
  23.        Print #FileNumber, 6! G! Z; C. I- }
  24.        Print #FileNumber, Typ' `" V5 J2 i8 j6 k0 l9 o* d+ }
  25.     End If7 \# C: q& u; ^, [& V
  26.     Print #FileNumber, 62' x% W) f: |0 M9 R7 W1 d- J
  27.     Print #FileNumber, cl
    9 n( ~+ ]0 g" ~/ T
  28.     Print #FileNumber, 108 E; x% f# O( C! w" ]4 e' j
  29.     Print #FileNumber, xs' x: B& {" x* f1 E: I
  30.     Print #FileNumber, 20
    4 @- G" Q/ F' Q' S6 z+ x) p; ~5 k
  31.     Print #FileNumber, ys# d7 W* b1 i/ `1 ]
  32.     Print #FileNumber, 30! Z3 K5 b$ s9 `* d
  33.     Print #FileNumber, 0#
    & D0 k/ r, v/ ?7 u( w3 W
  34.     Print #FileNumber, 11
    - U9 F) I1 W8 g
  35.     Print #FileNumber, xe
    $ l( M& z* I% W, J
  36.     Print #FileNumber, 21( t5 u# S) J$ [  M) x! R
  37.     Print #FileNumber, ye% O7 I$ ?& s  U7 w, i
  38.     Print #FileNumber, 31
    ! Z  W; b- m+ B
  39.     Print #FileNumber, 0## S; N9 o' t  _+ y
  40.     Print #FileNumber, 0  w1 ]  C9 v6 Y& T
  41. End Sub
    4 S0 v1 J3 h9 C& w, _7 n" R" i
复制代码
代码中第一行是在通用声明区声明一个名为 FileNumber 的整型全局变量,用于保存文件号
; D- n; \/ W3 O( h/ f5 @7 f( J$ x7 w第四行用 FreeFile 函数获得可用的文件号,后面的代码都使用这个文件号,包括子程序中的Print #语句,这也是使用全局变量的原因1 W, Y; G9 ~3 m2 `
第十八行,子程序的参数中的前四个都使用了显式类型声明字符“#”,表明这是Double 数据类型;第六个参数使用了Optional 关键字,表明这后面的参数是可选的:在调用子程序时,如果线形是“BYLAYER”,则不必带这个参数。如果不用这个关键字,在调用子程序时,就必须有这个参数,尽管它可能是空字符串。
) ?* P5 G, n8 h# {3 \% b+ H5 C+ N8 t第二十、二十三、二十六、二十八、三十、三十二、三十四、三十六、三十八和四十行,都去掉了双引号和空格,这里没必要使用字符串类型,用整型就可以3 e- |7 p7 k9 g  O
第二十二、二十四行去掉了变量后面的显式类型声明字符“$”,没必要(已经在在第十八行的参数列表中声明了)。同理,第二十七行去掉了双引号及其内部空格及逗号,去掉了变量后面的显式类型声明字符“%”,没必要/ m6 f- b) F. f0 j- B
第三十三、三十九行把"0.00"改成了0#
" I  L7 S6 T& O' l1 I8 o+ i, f: e) j去掉了原子程序中的
  1. Label:* e: o# r2 T4 F
  2.      Exit Sub
复制代码

评分

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

查看全部评分

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

本版积分规则


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

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

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