jw_cad 外部変形 - (1422) vbscriptで文字寸法を取得する(hcw,hch,hcd,hcc) -

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

 

vbscriptで文字寸法を取得する(hcw,hch,hcd,hcc)

:vbscriptで文字寸法を取得する(hcw,hch,hcd,hcc)
@echo off
if not exist %~dp0eval.vbs echo ExecuteGlobal WScript.StdIn.ReadAll > %~dp0eval.vbs
for /f "delims=:" %%n in ('findstr /n "^#!" %0') do (
  copy jwc_temp.txt myfiles > nul
  (
:   echo Option Explicit
    echo On Error Resume Next
:   echo On Error GoTo 0
    more +%%n %0
  ) | cscript //nologo %~dp0eval.vbs > jwc_temp.txt
)
goto:eof

REM #jww
REM #e

#!この次の行からプログラムを書いてください
'1)正規表現
Dim re
Set re = New RegExp
re.IgnoreCase = True '大文字と小文字を区別しない
re.Global = True '文字列全体を検索する

function reSplit(str)
  re.Pattern = "[ ]+"
  reSplit = Split(Trim(re.Replace(str," ")))
end function

function reTest(pat, str)
  re.Pattern = pat
  reTest = re.Test(str)
end function

Dim line, F
Dim i, hcw(11), hch(11), hcd(11), hcc(11)
Dim pcn, cn
cn = ""
With CreateObject("Scripting.FileSystemObject")
  With .OpenTextFile("myfiles")
  Do While Not .AtEndOfStream
    line = .ReadLine: F = reSplit(line)
    if reTest("^hcw",line) then 'hcw 文字幅
      for i = 1 to 10
        hcw(i) = F(i)
      next
    end if
    if reTest("^hch",line) then 'hch 文字高
      for i = 1 to 10
        hch(i) = F(i)
      next
    end if
    if reTest("^hcd",line) then 'hcd 文字間隔
      for i = 1 to 10
        hcd(i) = F(i)
      next
    end if
    if reTest("^hcc",line) then 'hcc 文字色
      for i = 1 to 10
        hcc(i) = F(i)
      next
    end if
    if reTest("^cn[0-9]", line) then 'cn 文字種
      pcn = LCase(Mid(line, 3)): if cn = "" then cn = pcn
    end if
  Loop
  End With
End With
if len(cn) > 2 then
  WScript.Echo "h#cn" & cn
else
  WScript.Echo "h#cn" & Join(Array(cn, hcw(cn), hch(cn), hcd(cn), hcc(cn)))
end if