乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: arman88

[编程交流] 摆脱文本格式

[复制链接]

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:49:54 | 显示全部楼层
亲爱的刺猬谢谢。我得到了它。它工作得很好眨眼:
我的源路径有点远:
C: \文档和设置\管理员\应用程序数据\ Autodesk\AutoCAD 2007\R17.0\chs\支持
 
我也找到了用于剥离多行文字的VBA代码,很快就会放到这里。
 
顺便说一句,在你的签名中找到了很棒的照片库!
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:53:24 | 显示全部楼层
  1. Option Explicit
  2. ' written by Bryco
  3. Function UnformatMtext(S As String) As String
  4. Dim P1 As Integer
  5. Dim P2 As Integer, P3 As Integer
  6. Dim intStart As Integer
  7. Dim strCom As String
  8. Dim strReplace As String
  9. Debug.Print S
  10. Select Case Left(S, 4)
  11. Case "\A0;", "\A1;", "\A2;"
  12. S = Mid(S, P1 + 5)
  13. End Select
  14. intStart = 1
  15. Do
  16. P1 = InStr(S, "%%")
  17. If P1 = 0 Then
  18. Exit Do
  19. Else
  20. Select Case Mid(S, P1 + 2, 1)
  21. Case "P"
  22. S = Replace(S, "%%P", "+or-")
  23. Case "D"
  24. S = Replace(S, "%%D", " deg")
  25. End Select
  26. End If
  27. Loop
  28. Do
  29. P1 = InStr(intStart, S, "", vbTextCompare)
  30. If P1 = 0 Then Exit Do
  31. strCom = Mid(S, P1, 2)
  32. Select Case strCom
  33. Case "\p"
  34. P2 = InStr(1, S, ";")
  35. S = Mid(S, P2 + 1)
  36. Case "\A", "\C", "\f", "\F", "\H", "\Q", "\T", "\W"
  37. P2 = InStr(P1 + 2, S, ";", vbTextCompare)
  38. P3 = InStr(P1 + 2, S, strCom, vbTextCompare)
  39. If P3 = 0 Then
  40. S = Left(S, P1 - 1) & Mid(S, P2 + 1)
  41. End If
  42. Do While P3 > 0
  43. P2 = InStr(P3, S, ";", vbTextCompare)
  44. S = Left(S, P3 - 1) & Mid(S, P2 + 1)
  45. 'Debug.Print s, strCom
  46. P3 = InStr(1, S, strCom, vbTextCompare)
  47. Loop
  48. 's = Left(s, P3 - 1) & mid(s, P3 + 1)
  49. 'Case "\L", "\O"
  50. 'Dim strLittle As String
  51. 'strLittle = LCase(strCom)
  52. 'P2 = InStr(P1 + 2, S, strLittle, vbTextCompare)
  53. 'S = Left(S, P1 - 1) & Mid(S, P1 + 2, P2 - (P1 + 2)) & Mid(S, P2 + 2)
  54. '//============== fixed by fla_2
  55. '// example {\fArial|b1|i0|c0|p34;\LGENERAL NOTES :}
  56. Case "\L", "\O"
  57. Dim strLittle As String
  58. strLittle = LCase(strCom)
  59. P2 = InStr(P1 + 2, S, strLittle, vbTextCompare)
  60. If P2 = 0 Then
  61. S = Left(S, P1 - 1) & Mid(S, P1 + 2)
  62. Else
  63. S = Left(S, P1 - 1) & Mid(S, P1 + 2, P2 - (P1 + 2)) & Mid(S, P2 + 2)
  64. End If
  65. '//==============
  66. Case "\S"
  67. P2 = InStr(P1 + 2, S, ";", vbTextCompare)
  68. P3 = InStr(P1 + 2, S, "/", vbTextCompare)
  69. If P3 = 0 Or P3 > P2 Then
  70. P3 = InStr(P1 + 2, S, "#", vbTextCompare)
  71. End If
  72. If P3 = 0 Or P3 > P2 Then
  73. P3 = InStr(P1 + 2, S, "^", vbTextCompare)
  74. End If
  75. S = Left(S, P1 - 1) & Mid(S, P1 + 2, P3 - (P1 + 2)) _
  76. & "/" & Mid(S, P3 + 1, (P2) - (P3 + 1)) & Mid(S, P2 + 1)
  77. Case "\U"
  78. strLittle = Mid(S, P1 + 3, 4)
  79. Debug.Print strLittle
  80. Select Case strLittle
  81. Case "2248"
  82. strReplace = "ALMOST EQUAL"
  83. Case "2220"
  84. strReplace = "ANGLE"
  85. Case "2104"
  86. strReplace = "CENTER LINE"
  87. Case "0394"
  88. strReplace = "DELTA"
  89. Case "0278"
  90. strReplace = "ELECTRIC PHASE"
  91. Case "E101"
  92. strReplace = "FLOW LINE"
  93. Case "2261"
  94. strReplace = "IDENTITY"
  95. Case "E200"
  96. strReplace = "INITIAL LENGTH"
  97. Case "E102"
  98. strReplace = "MONUMENT LINE"
  99. Case "2260"
  100. strReplace = "NOT EQUAL"
  101. Case "2126"
  102. strReplace = "OHM"
  103. Case "03A9"
  104. strReplace = "OMEGA"
  105. Case "214A"
  106. strReplace = "PROPERTY LINE"
  107. Case "2082"
  108. strReplace = "SUBSCRIPT2"
  109. Case "00B2"
  110. strReplace = "SQUARED"
  111. Case "00B3"
  112. strReplace = "CUBED"
  113. End Select
  114. S = Replace(S, "\U+" & strLittle, strReplace)
  115. Case "\~"
  116. S = Replace(S, "\~", " ")
  117. Case "\"
  118. intStart = P1 + 2
  119. S = Replace(S, "\", "")
  120. GoTo Selectagain
  121. Case "\P"
  122. intStart = P1 + 1
  123. GoTo Selectagain
  124. Case Else
  125. Exit Do
  126. End Select
  127. Selectagain:
  128. Loop
  129. Do
  130. P1 = InStr(1, S, "\P", vbTextCompare)
  131. If P1 = 0 Then
  132. Exit Do
  133. Else
  134. S = Left(S, P1 - 1) & vbCrLf & Mid(S, P1 + 2)
  135. End If
  136. Loop
  137. For intStart = 0 To 1
  138. If intStart = 0 Then
  139. strCom = "}"
  140. Else
  141. strCom = "{"
  142. End If
  143. P2 = InStr(1, S, strCom)
  144. Do While P2 > 0
  145. S = Left(S, P2 - 1) & Mid(S, P2 + 1)
  146. P2 = InStr(1, S, strCom)
  147. Loop
  148. Next intStart
  149. UnformatMtext = S
  150. End Function
  151. Sub Testmt()
  152. Dim Mt As AcadMText, V As Variant
  153. ThisDrawing.Utility.GetEntity Mt, V, "Pick an Mtext:"
  154. MsgBox Mt.TextString
  155. Debug.Print Mt.TextString
  156. MsgBox Mt.TextString
  157. Mt.TextString = UnformatMtext(Mt.TextString)
  158. MsgBox Mt.TextString
  159. End Sub
回复

使用道具 举报

0

主题

31

帖子

29

银币

初来乍到

Rank: 1

铜币
3
发表于 2022-7-6 09:55:27 | 显示全部楼层
很高兴你终于能让它工作了。。。。我通常检查&再次检查事情是否正常,但我昨天感觉不太好。。。
 
... & 感谢您点击链接。。。摄影是我的另一个爱好眨眼:
回复

使用道具 举报

16

主题

168

帖子

39

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 09:58:56 | 显示全部楼层
 
甜蜜的例行公事!它真的帮了我一把Ustn转换的多行文字,这是一个混乱!这帮我节省了一天的工作!
 
谢谢刺猬!!
回复

使用道具 举报

0

主题

31

帖子

29

银币

初来乍到

Rank: 1

铜币
3
发表于 2022-7-6 09:59:57 | 显示全部楼层
没有,很高兴这有帮助…&很好,搜索功能正在发挥作用
回复

使用道具 举报

0

主题

2

帖子

2

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 10:03:28 | 显示全部楼层
这条线索似乎是最新的,所以我会在这里问。
 
Ran StripMtext[309]。lsp上周进行了多次,效果非常好。
今天我收到一条错误消息:
条纹文字
StripMtext v3.09
选择对象:找到1个
 
选择对象:
错误:自动化错误。没有数据库
 
知道这意味着什么吗?
提前感谢,
加里
回复

使用道具 举报

0

主题

31

帖子

29

银币

初来乍到

Rank: 1

铜币
3
发表于 2022-7-6 10:06:34 | 显示全部楼层
尝试添加第二段新的多行文字?。。。它还会发生吗?。。。这会发生在其他图纸中吗?。。。可能是编程错误,而不是与您的设置有关。
回复

使用道具 举报

CAB

29

主题

781

帖子

430

银币

中流砥柱

Rank: 25

铜币
526
发表于 2022-7-6 10:09:35 | 显示全部楼层
你可以试试我的脱衣舞女看看,它出错了。
见附件。
使用(strip\u text MyString'*')删除所有
文本条CAB30。LSP
回复

使用道具 举报

0

主题

2

帖子

2

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 10:12:58 | 显示全部楼层
刺猬-是的,在任何绘画中都做同样的事情。仅供参考,我正在从PDF导入文本,该PDF将格式代码放在其中。
 
出租车-你的脱衣舞女也做同样的事。?!
 
这让我相信这是一个安装问题。这是新安装的AutoCAD2008,前几天我做了注册表清理,所以。。。。。。
我将卸载并重新安装AutoCAD,看看会发生什么。
 
谢谢你的帮助。我会告诉你发生了什么。
 
加里
回复

使用道具 举报

0

主题

31

帖子

29

银币

初来乍到

Rank: 1

铜币
3
发表于 2022-7-6 10:16:56 | 显示全部楼层
但这是否只发生在PDF导入的文本上?。。。它可能只是遇到了一个它无法处理的代码。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 05:54 , Processed in 0.512871 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表