QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
5天前
查看: 5331|回复: 1
收起左侧

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

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

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

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

x
同一台电脑运行,别人写的程序也没有专门写地址语句、文件保存类型,但是别人的宏能直接生成dxf文件。我写的程序结果保存在我的文档里,而且生成的是不带后缀的文件,手动加后缀或者写成Open "新建文本文档.dxf" For Output As #1。" B# c  `# z. j
PS:生成的文件是没有问题的。结果老是存在我的文档里这个还没解决。
发表于 2020-1-30 09:03:11 | 显示全部楼层 来自: 中国北京
本帖最后由 woaishuijia 于 2020-1-31 04:24 编辑
) q7 t+ M* g9 r9 H/ p4 G; c; }- o3 b) k
结合你另外一个帖子“”,我好像明白你的意思了。
5 b  v* |8 L7 Y9 J那个帖子里的Print #语句后面的文件号用的是1,这是有问题的。按照VB的语法规则,这个文件号是一个1~511的正整数,应该是由电脑自动生成。你这个直接使用1的情况,除非电脑只打开了一个文档,否则文件号1被其它文档占用,就出错了。只能先手动创建文档,再执行程序,我在那个帖子里的回复就是这样子的(那个回复为了简短,没有讨论编程技巧),为了保证程序顺利运行,要求先创建文档。. p9 [- f  b$ C/ V! B/ @6 i  ^  v
把那个主程序和子程序的代码改一下" O5 p, C! S- S$ ~  T' G8 L
  1. Dim FileNumber As Integer, G5 x: m* g0 s) A

  2. 5 V8 P9 O% h) X& c: q0 `( W
  3. Sub A()8 ?8 @1 E  Y3 i% ^
  4.     FileNumber = FreeFile()0 z' |' d0 p/ H& d; B. k. M! P
  5.     Open "c:\1.dxf" For Output As #FileNumber2 h9 @2 I$ R4 p6 `2 p' S
  6.     Print #FileNumber, 0
    0 y( ~6 w: z3 ^# v" k; p
  7.     Print #FileNumber, "SECTION"
    5 F% S2 J3 J% h3 w4 E  x- C
  8.     Print #FileNumber, 2' u1 [! j9 }2 e$ F, S# h6 B
  9.     Print #FileNumber, "ENTITIES"
    $ d6 G4 y* S- Q: x2 _  ^2 i+ I1 R2 l
  10.     Print #FileNumber, 0
    6 A. Z8 @% q8 {4 y
  11.     DxfLine 0, 0, 100, 100, 1, "Continuous"- F3 B( j+ A& \2 x; W* \
  12.     Print #FileNumber, "ENDSEC"
    , i4 ~! Z3 R% p  b( b
  13.     Print #FileNumber, 0
    : a* u! O! W# h, ?
  14.     Print #FileNumber, "EOF"
    + ?+ u6 a* E  a9 [/ c
  15.     Close #FileNumber, s/ n% F' t% j  P! N
  16. End Sub
    1 {& p- m) z/ H

  17. ! z& E7 B. k! e" n) Z
  18. Sub DxfLine(xs#, ys#, xe#, ye#, cl%, Optional Typ$)
      m! E9 Z: W$ b) z
  19.     Print #FileNumber, "LINE"
    ' g0 p/ l: e* N$ o% {$ W3 M
  20.     Print #FileNumber, 8
    / K% a- u+ m5 f5 h# ], d1 m) F
  21.     Print #FileNumber, "0"
    ) B  w  T+ y$ V
  22.     If Typ <> "" Then
    & S1 N) D& g) h5 f. @
  23.        Print #FileNumber, 6  @$ `' i$ h& S- y
  24.        Print #FileNumber, Typ
    , p: w0 b& R) C5 v
  25.     End If
    + L. [0 j2 x; q" F, a
  26.     Print #FileNumber, 62
    ' J! x7 U% G. O
  27.     Print #FileNumber, cl0 T5 a: s- q% y
  28.     Print #FileNumber, 10! J6 v! d8 i* F* u; M% W
  29.     Print #FileNumber, xs
    , f$ u+ x' L9 m; c8 b) ]
  30.     Print #FileNumber, 20# R/ s, {, Q. |& p
  31.     Print #FileNumber, ys
    : J; O  U* z3 O/ `. y4 I$ n
  32.     Print #FileNumber, 30
    5 X& }  k( S0 p* C2 i  \  Z! e2 Y# S, @
  33.     Print #FileNumber, 0#. b! d+ [: Q9 E& `$ G! k; ~: Q# w
  34.     Print #FileNumber, 11
    # o( T4 }7 l1 k% l0 @9 O7 \
  35.     Print #FileNumber, xe
    / |/ i' S; b: \; ~
  36.     Print #FileNumber, 215 S; n; Z* v1 ?# B
  37.     Print #FileNumber, ye6 z8 D2 i* b% n; }
  38.     Print #FileNumber, 31
    0 ]( o6 k' c9 U+ g. w5 i
  39.     Print #FileNumber, 0#
    - Z0 {% Y$ {5 W: p9 V) \4 P0 L; D
  40.     Print #FileNumber, 0
    . ?" M+ t' D! o3 [4 x6 z
  41. End Sub* u$ T6 q3 x) j; R7 ^3 z
复制代码
代码中第一行是在通用声明区声明一个名为 FileNumber 的整型全局变量,用于保存文件号+ I- ~( x* u6 C- _
第四行用 FreeFile 函数获得可用的文件号,后面的代码都使用这个文件号,包括子程序中的Print #语句,这也是使用全局变量的原因3 j+ y: n& w4 n  M9 k% Q6 D& Z
第十八行,子程序的参数中的前四个都使用了显式类型声明字符“#”,表明这是Double 数据类型;第六个参数使用了Optional 关键字,表明这后面的参数是可选的:在调用子程序时,如果线形是“BYLAYER”,则不必带这个参数。如果不用这个关键字,在调用子程序时,就必须有这个参数,尽管它可能是空字符串。& G( j. s3 p) ~) N, \
第二十、二十三、二十六、二十八、三十、三十二、三十四、三十六、三十八和四十行,都去掉了双引号和空格,这里没必要使用字符串类型,用整型就可以/ y# T8 g( n) h! V& R
第二十二、二十四行去掉了变量后面的显式类型声明字符“$”,没必要(已经在在第十八行的参数列表中声明了)。同理,第二十七行去掉了双引号及其内部空格及逗号,去掉了变量后面的显式类型声明字符“%”,没必要5 m8 `1 P1 a4 Q1 V
第三十三、三十九行把"0.00"改成了0#
( H6 s. w# u2 C8 ]( L) M) M去掉了原子程序中的
  1. Label:
    ; ~  J8 ^4 m3 A; n2 [3 ^3 i
  2.      Exit Sub
复制代码

评分

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

查看全部评分

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

本版积分规则


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

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

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