Jw_cad 相談室−その2 New

 Jw_cad についての相談の場としてお使いください
情報の交換には Jw_cad 情報交換室 をご利用ください
なお、情報交換室と相談室の両方に同じ内容を投稿するのはご遠慮ください

2009年9月以前の発言過去ログのページからご覧ください。

それ以降の過去ログは消失しています。
申し訳ありませんが、復活の予定はありません。


  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム  
71 / 1497     ←次へ | 前へ→

Re:複数jwwファイルの図番(同位置の文字列)の一括変換
 kojima  - 20/2/6(木) 23:36 -
1枚だけ以下の外変を実行してください。
外変を実行した図面と同じフォルダ内の全てのJWWファイルに対して
外変で指定した範囲内の文字を検索して、該当する文字ならば置換します。
RUby1.8専用の外変です。RUby1.9以降では動作しません。

実行前に、表題変更.txtをタブ区切りで作成しておいてください。

以下 その1


@REM 複数ファイルの指定範囲内にある文字の一括変更
@echo off
REM #jww
REM #cd
REM #ht10
REM #ht30
REM #zc
REM #zz
REM #zs
REM #hf
REM #bz
REM #h3
REM #g1
REM #1変更範囲の左下を指示してください
REM #2変更範囲の右上を指示してください
REM #hp
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt
pause
goto end
#!ruby -Ks
require 'kconv'
#data_mojiとdata_noをarray2(二重配列)に収集する。
def data_no_collect(data,i,array2,data_moji,no,hash,j,b_n)
data_no=no+j
array2<<[data_moji,data_no]
i=data_next(data,i,data_moji,hash,b_n)
return i
end
#data_mojiのバイト数の分だけiを次へ進める。
def data_next(data,i,data_moji,hash,b_n)
i2=i
if data_moji=="CDataMoji"
f_i=data[i+83,1].unpack("C")[0]
m_i=data[i+84+f_i,1].unpack("C")[0]
m_byte=83+f_i+m_i+2
hash[data_moji]=m_byte
i += hash[data_moji]
elsif data_moji=="CDataSunpou"
f_i=data[i+145,1].unpack("C")[0]
m_i=data[i+146+f_i,1].unpack("C")[0]
m_byte=147+f_i+m_i
hash[data_moji]=m_byte
i += hash[data_moji]
i += 236 if b_n>=420
elsif data_moji=="CDataSolid"
if data[i+5,1].unpack("C")[0] == 10
i += hash[data_moji]+4
else
i += hash[data_moji]
end
elsif data_moji=="CDataTen"
if data[i+4,1].unpack("C")[0] == 100
i += hash[data_moji]+20
else
i += hash[data_moji]
end
else
i += hash[data_moji]
end
return i
end
#文字のバイト数
def size(str)
if RUBY_VERSION =~/^1\.9|^2|^3/
return str.bytesize
else
return str.size
end
end
#文字データの変更
def ch_henkan(data,i,data_moji,b_n,m_hash,x_min,y_min,x_max,y_max)
pl,kiten,lc,sun_flg,ly,lg,z=data[i,15].unpack("LCSSSSS")
x1,y1,x2,y2,mojisyu=data[i+15,36].unpack("ddddL")
w,h,d,kakudo=data[i+51,32].unpack("dddd")
f_i=data[i+83,1].unpack("C")[0]
font=data[i+84,f_i]
m_i=data[i+84+f_i,1].unpack("C")[0]
if m_i==255
m_i2=data[i+84+f_i+1,1].unpack("S")[0]
str=data[i+85+f_i+1,m_i2].to_s
else
str=data[i+85+f_i,m_i].to_s
end
if x_min<x1 && x_min<x2 && x_max>x1 && x_max>x2 && x_min<x1 && x_min<x2 && x_max>x1 && x_max>x2 &&
y_min<y1 && y_min<y2 && y_max>y1 && y_max>y2 && y_min<y1 && y_min<y2 && y_max>y1 && y_max>y2

if m_hash[str]
str2=m_hash[str]
else
str2=str
end
else
str2=str
end
$data<<[pl,kiten,lc,sun_flg,ly,lg,z].pack("LCSSSSS")
$data<<[x1,y1,x2,y2,mojisyu].pack("ddddL")
$data<<[w,h,d,kakudo,f_i].pack("ddddC")
$data<<font
if size(str2)<255
$data<<[size(str2)].pack("C")
else
$data<<[255].pack("C")
$data<<[size(str2)].pack("S")
end
$data<<str2
n=1
if str==str2
n=0
end

return n
end
printf("表題変更.txtの編集は終了していますか? YES:1 NO:2\n")
i=STDIN.gets.chomp.to_i
unless i==1
system("notepad 表題変更.txt")
end

moji_hash={}
f=open("表題変更.txt","r")
while f.gets
xy=$_.chomp.split("\t")
moji_hash[xy[0]]=xy[1]
end
f.close

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Ed...@ai126198129255.60.access-internet.ne.jp>
・ツリー全体表示

複数jwwファイルの図番(同位置の文字列)の一括変換 kubo 20/2/6(木) 10:30
Re:複数jwwファイルの図番(同位置の文字列)の一括... kojima 20/2/6(木) 23:36
その2 kojima 20/2/6(木) 23:37
補足 kojima 20/2/6(木) 23:48
Re:複数jwwファイルの図番(同位置の文字列)の一括... R.N 20/2/7(金) 2:34
Re:複数jwwファイルの図番(同位置の文字列)の一括... kubo 20/2/7(金) 15:52
Re:複数jwwファイルの図番(同位置の文字列)の一括... kojima 20/2/7(金) 21:40
Re:複数jwwファイルの図番(同位置の文字列)の一括... kubo 20/2/8(土) 17:53
Re:複数jwwファイルの図番(同位置の文字列)の一括... kubo 20/2/7(金) 17:59
Re:複数jwwファイルの図番(同位置の文字列)の一括... R.N 20/2/9(日) 22:04
Re:複数jwwファイルの図番(同位置の文字列)の一括... kubo 20/2/9(日) 22:35
Re:複数jwwファイルの図番(同位置の文字列)の一括... R.N 20/2/10(月) 1:00
Re:複数jwwファイルの図番(同位置の文字列)の一括... kojima 20/2/10(月) 11:43
Re:複数jwwファイルの図番(同位置の文字列)の一括... kubo 20/2/11(火) 23:08

71 / 1497     ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム  
 705745
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.03b3
Jw_cad Copyright (C)1997-2016 Jiro Shimizu & Yoshifumi Tanaka