過去ログ

                                Page    1551
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼複数のファイルの図面の線種など一括変更の仕方  加藤 21/11/10(水) 10:01
   ┗Re:複数のファイルの図面の線種など一括変更の仕方  kojima 21/11/10(水) 12:12
      ┗Re:複数のファイルの図面の線種など一括変更の仕方  加藤 21/11/10(水) 21:33
         ┗Re:複数のファイルの図面の線種など一括変更の仕方  加藤 21/11/10(水) 21:58
            ┗Re:複数のファイルの図面の線種など一括変更の仕方  Keiichi 21/11/11(木) 7:35
               ┣[投稿者削除]   
               ┃  ┗Re:複数のファイルの図面の線種など一括変更の仕方  Keiichi 21/11/11(木) 13:03
               ┗Re:複数のファイルの図面の線種など一括変更の仕方  加藤 21/11/11(木) 18:22
                  ┣Re:複数のファイルの図面の線種など一括変更の仕方  Keiichi 21/11/11(木) 18:52
                  ┗pathの設定が必要  kojima 21/11/11(木) 20:10
                     ┗Re:pathの設定が必要  加藤 21/11/11(木) 23:07
                        ┗Re:pathの設定が必要  kojima 21/11/12(金) 12:51
                           ┗Re:pathの設定が必要  加藤 21/11/12(金) 20:46
                              ┗Re:pathの設定が必要  kojima 21/11/12(金) 23:47
                                 ┣続き  kojima 21/11/12(金) 23:48
                                 ┗Re:pathの設定が必要  加藤 21/11/13(土) 22:58
                                    ┗行頭の半角スペースと文字コード  kojima 21/11/14(日) 13:49
                                       ┗Re:行頭の半角スペースと文字コード  加藤 21/11/14(日) 21:12

 ───────────────────────────────────────
 ■題名 : 複数のファイルの図面の線種など一括変更の仕方
 ■名前 : 加藤
 ■日付 : 21/11/10(水) 10:01
 -------------------------------------------------------------------------
   いつもお世話になります。

お客様から頂いたJWWの図面を

全ての属性を解除
全ての寸法図形を解除
全てのブロック図形を解除
全ての線をペン1に
全ての文字色をペン1に
全ての文字のフォントをMS明朝に

上記の作業をいつも手動でやってました。

それを随分前にここのサイトで何かのbatファイル(ruby?)と言うものでそのファイルと同じフォルダー内に入れた図面を一括で上記の作業をしてもらうようなものを教えて頂いたのですが、PCを変えてからエラーが出てうまくいきません。

今の物でエラーを出なくするか他にも上記の作業を一括で出来るものはありますか?

エラーの内容をコピペしようとしたのですが(黒い画面)コピペが出来ませんでした。

これかなと思うものは

Encoding::compatibility Error

でした。


素人なのであまり難しいことはできませんが宜しくお願いします。

 ───────────────────────────────────────  ■題名 : Re:複数のファイルの図面の線種など一括変更の仕方  ■名前 : kojima  ■日付 : 21/11/10(水) 12:12  -------------------------------------------------------------------------
   ▼加藤さん:
>いつもお世話になります。
>
>お客様から頂いたJWWの図面を
>
>全ての属性を解除
>全ての寸法図形を解除
>全てのブロック図形を解除
>全ての線をペン1に
>全ての文字色をペン1に
>全ての文字のフォントをMS明朝に
>
>上記の作業をいつも手動でやってました。
>
>それを随分前にここのサイトで何かのbatファイル(ruby?)と言うものでそのファイルと同じフォルダー内に入れた図面を一括で上記の作業をしてもらうようなものを教えて頂いたのですが、PCを変えてからエラーが出てうまくいきません。

そのPCにrubyがインストールされていない?
または、以前のPCと違うバージョンのrubyをインストールされたのでしょう。


以前のPCに保存されているRubyインストーラーをコピーして再インストール。Pathの設定も忘れないでください。

 ───────────────────────────────────────  ■題名 : Re:複数のファイルの図面の線種など一括変更の仕方  ■名前 : 加藤  ■日付 : 21/11/10(水) 21:33  -------------------------------------------------------------------------
   ▼kojimaさん:
>▼加藤さん:
>>いつもお世話になります。
>>
>>お客様から頂いたJWWの図面を
>>
>>全ての属性を解除
>>全ての寸法図形を解除
>>全てのブロック図形を解除
>>全ての線をペン1に
>>全ての文字色をペン1に
>>全ての文字のフォントをMS明朝に
>>
>>上記の作業をいつも手動でやってました。
>>
>>それを随分前にここのサイトで何かのbatファイル(ruby?)と言うものでそのファイルと同じフォルダー内に入れた図面を一括で上記の作業をしてもらうようなものを教えて頂いたのですが、PCを変えてからエラーが出てうまくいきません。
>
>そのPCにrubyがインストールされていない?
>または、以前のPCと違うバージョンのrubyをインストールされたのでしょう。
>
>
>以前のPCに保存されているRubyインストーラーをコピーして再インストール。Pathの設定も忘れないでください。

kojima様
早速のアドバイスありがとうございました。

やはりそのrubyというものなんですね。

実はそれをこの数日ネットで調べながらインストールしようとやってたんですが、あまりにも難しくて諦めてしまいました。

出来たつもりでも実際にbatファイルを実行すすと再びエラーになってしまいます。

何が悪いのかもわからず、どうなったらrubyのインストールに成功したのかもわからなくて・・・


以前のPCもすでに手元にありません、どこかに素人でもrubyをインストールする手順がわかるサイトとかありますか?

宜しくお願いします。

 ───────────────────────────────────────  ■題名 : Re:複数のファイルの図面の線種など一括変更の仕方  ■名前 : 加藤  ■日付 : 21/11/10(水) 21:58  -------------------------------------------------------------------------
   ▼加藤さん:
>▼kojimaさん:
>>▼加藤さん:
>>>いつもお世話になります。
>>>
>>>お客様から頂いたJWWの図面を
>>>
>>>全ての属性を解除
>>>全ての寸法図形を解除
>>>全てのブロック図形を解除
>>>全ての線をペン1に
>>>全ての文字色をペン1に
>>>全ての文字のフォントをMS明朝に
>>>
>>>上記の作業をいつも手動でやってました。
>>>
>>>それを随分前にここのサイトで何かのbatファイル(ruby?)と言うものでそのファイルと同じフォルダー内に入れた図面を一括で上記の作業をしてもらうようなものを教えて頂いたのですが、PCを変えてからエラーが出てうまくいきません。
>>
>>そのPCにrubyがインストールされていない?
>>または、以前のPCと違うバージョンのrubyをインストールされたのでしょう。
>>
>>
>>以前のPCに保存されているRubyインストーラーをコピーして再インストール。Pathの設定も忘れないでください。
>
>kojima様
>早速のアドバイスありがとうございました。
>
>やはりそのrubyというものなんですね。
>
>実はそれをこの数日ネットで調べながらインストールしようとやってたんですが、あまりにも難しくて諦めてしまいました。
>
>出来たつもりでも実際にbatファイルを実行すすと再びエラーになってしまいます。
>
>何が悪いのかもわからず、どうなったらrubyのインストールに成功したのかもわからなくて・・・
>
>
>以前のPCもすでに手元にありません、どこかに素人でもrubyをインストールする手順がわかるサイトとかありますか?
>
>宜しくお願いします。


追記

先ほどネットを見ながらrubyをインストールしました、成功したかどうかの判断方法ものっていたので成功したと思います。
しかしbatファイルはエラーで止まってしまいます。

rubyとbatファイルのバージョン?が違うのでしょうか?
何か確認する方法ありますか?

いろんなバージョンのrubyが選択できたのですが一番新しいものをインストールしました、それがだめだったのでしょうか?

どなたかわかる方がおられましたら宜しくお願いします。

 ───────────────────────────────────────  ■題名 : Re:複数のファイルの図面の線種など一括変更の仕方  ■名前 : Keiichi  ■日付 : 21/11/11(木) 7:35  -------------------------------------------------------------------------
   ▼加藤さん:
>いろんなバージョンのrubyが選択できたのですが一番新しいものをインストールしました、それがだめだったのでしょうか?

ActiveScriptRuby(1.8.7-p330
https://www.artonx.org/data/asr/

これを使えばほとんどの外部変形が動くと思います
これで動かなかったら原因は分かりません

 ───────────────────────────────────────  ■題名 : [投稿者削除]  ■名前 :  ■日付 :  -------------------------------------------------------------------------
   この書き込みは投稿者によって削除されました。(21/11/11(木) 13:23)

 ───────────────────────────────────────  ■題名 : Re:複数のファイルの図面の線種など一括変更の仕方  ■名前 : Keiichi  ■日付 : 21/11/11(木) 13:03  -------------------------------------------------------------------------
   ▼R.Nさん:
後半に書かれているlibraryを入れなくて動くのがActiveScriptRuby-1.8.7-p330です。
紹介ペーシの最初にも
ここで入手したRubyの圧縮ファイル ActiveScriptRuby-1.8.7-p330(ActiveRuby.msi)には、VisualuRubyのバイナリ(swin.so)は導入されています。
このように書かれています。
取りあえずこれを入れて動かなかったらアドバイスしたらどうですか?
情報も大事ですけど、初心者にあれこれいろんな事を言うと混乱するだけです

 ───────────────────────────────────────  ■題名 : Re:複数のファイルの図面の線種など一括変更の仕方  ■名前 : 加藤  ■日付 : 21/11/11(木) 18:22  -------------------------------------------------------------------------
   ▼Keiichiさん:
>▼加藤さん:
>>いろんなバージョンのrubyが選択できたのですが一番新しいものをインストールしました、それがだめだったのでしょうか?
>
>ActiveScriptRuby(1.8.7-p330
>https://www.artonx.org/data/asr/
>
>これを使えばほとんどの外部変形が動くと思います
>これで動かなかったら原因は分かりません

keiichiさん、ありがとうございました。
早速試してみましたが同じ内容のエラーが出ます。

先日インストールしたruby3.0.2-1×64というものがだめなのかと思いアンインストールしましたがそしたら、今度は

rubyは内部コマンド操作可能なプログラム又はバッチファイルとして認識されません。

と出ます。

インストールするときにインストール先などの変更とかが必要なのでしょうか?

今は規定通りcのプログラムファイル(×86)というところにインストールしました。

もう無理なのかなと半分諦めてるのでのし良かったらアドバイスお願いします。

 ───────────────────────────────────────  ■題名 : Re:複数のファイルの図面の線種など一括変更の仕方  ■名前 : Keiichi  ■日付 : 21/11/11(木) 18:52  -------------------------------------------------------------------------
   ▼加藤さん:
削除されましたがR.Nさんがレスされたruby導入を詳しく書かれているページです
http://yakushima-tonbo.com/jw_cad/ruby/

頑張って下さい

 ───────────────────────────────────────  ■題名 : pathの設定が必要  ■名前 : kojima  ■日付 : 21/11/11(木) 20:10  -------------------------------------------------------------------------
   ▼加藤さん:

>今は規定通りcのプログラムファイル(×86)というところにインストールしました。
>
>もう無理なのかなと半分諦めてるのでのし良かったらアドバイスお願いします。

半角スペースが含まれているフォルダ名は避ける。
(cのプログラムファイル(×86)は×)

c:\rubyというフォルダを作成して、そこにインストールするのが望ましい。

インストール後にpathの設定が必要です。

pathの設定法
https://memorva.jp/memo/dev/windows_path.php

c:\ruby\bin
を追記する。

 ───────────────────────────────────────  ■題名 : Re:pathの設定が必要  ■名前 : 加藤  ■日付 : 21/11/11(木) 23:07  -------------------------------------------------------------------------
   ▼kojimaさん:
>▼加藤さん:
>
>>今は規定通りcのプログラムファイル(×86)というところにインストールしました。
>>
>>もう無理なのかなと半分諦めてるのでのし良かったらアドバイスお願いします。
>
>半角スペースが含まれているフォルダ名は避ける。
>(cのプログラムファイル(×86)は×)
>
>c:\rubyというフォルダを作成して、そこにインストールするのが望ましい。
>
>インストール後にpathの設定が必要です。
>
>pathの設定法
>https://memorva.jp/memo/dev/windows_path.php
>↓
>c:\ruby\bin
>を追記する。

ありがとうございました。
しかしやはり出来ませんでした。

cドライブにrubyというフォルダーを作ってそこにインストールしました。
それでbatファイルをクリックすると同じエラーがでます。

教えていただいたサイトのインストールの確認方法で

ディスクトップに ruby console アイコンをクリックする。
黒いウインドウが開くので、キーボードで ruby△-v と入力して Enterキーを押す。
ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mswin32] 画像
と表示されたらrubyのインストールは完了です。


とありますが、これはちゃんとできました。


pathのところですが環境変数の画面は
加藤(私です)の環境変数とシステムの環境変数の二つありますがどちらのpathでしょうか?

とりあえず両方やってみたのですがうまくいかないです。

どちらのpathの中身も3種類ほどありましてそのうちのどれを変更すればいいのでしょうか?

適当な一つを

%SystemRoot%\System32\Wbem  ←もともとここの後ろにはセミコロンはありませんでした。

これを下のように変えましたがこれでよかったでしょうか?

%SystemRoot%\System32\Wbem;c:\ruby\bin;

皆様に親切に教えていただいてるのに私の頭がついていけず申し訳ないです。
また気が付くことがあれば教えてください。

宜しくお願いします。

 ───────────────────────────────────────  ■題名 : Re:pathの設定が必要  ■名前 : kojima  ■日付 : 21/11/12(金) 12:51  -------------------------------------------------------------------------
   batファイルの
ruby -x %~f0

c:\ruby\bin\ruby -x %~f0
に変更してから実行してみてください。

「rubyは内部コマンド操作可能なプログラム又はバッチファイルとして認識されません」というメッセージがでれば、
c:\rubyにインストールされていません。

通常のエラーだと、以前のPCにインストールされていたのは、
Ruby2.1〜Ruby2.4の可能性があります。
Ruby2.7で仕様変更がされているので最新バージョンのRubyでは正常動作しません。

 ───────────────────────────────────────  ■題名 : Re:pathの設定が必要  ■名前 : 加藤  ■日付 : 21/11/12(金) 20:46  -------------------------------------------------------------------------
   ▼kojimaさん:
>batファイルの
>ruby -x %~f0
>を
>c:\ruby\bin\ruby -x %~f0
>に変更してから実行してみてください。
>
>「rubyは内部コマンド操作可能なプログラム又はバッチファイルとして認識されません」というメッセージがでれば、
>c:\rubyにインストールされていません。
>
>通常のエラーだと、以前のPCにインストールされていたのは、
>Ruby2.1〜Ruby2.4の可能性があります。
>Ruby2.7で仕様変更がされているので最新バージョンのRubyでは正常動作しません。

何度も本当にありがとうございます。

御指示いただいたようにbatファイルをメモ帳で開いて1行目を編集して別名で保存しました。
それを実行したら

ファイル名のあとに・ス・ス・ス・ス・・・のような感じのよくわからないエラーが出ました。

このbatファイルは同じフォルダー内にあるjwwのファイルの中身を線色や文字色を変えてくれるものでした。

ですのでファイル名が出たことは前進したのかなと思います。

そしてその下には


nil can't be coerced info Fixnym

と出ました。

編集する前のbatファイルをクリックしたときは
「rubyは内部コマンド又は外部コマンド、操作可能なプログラム又はバッチファイルとして認識されません」

と出ていました。

このbatファイル自体がだめなのでしょうか?

分かりましたら宜しくお願いします。

 ───────────────────────────────────────  ■題名 : Re:pathの設定が必要  ■名前 : kojima  ■日付 : 21/11/12(金) 23:47  -------------------------------------------------------------------------
   以下のbatファイルをコピペして実行してみてください。


c:\ruby\bin\ruby -x %~f0
pause
goto end
#!ruby -Ks
$lc=1
#data_mojiとdata_noをarray2(二重配列)に収集する。
def data_no_collect(data,i,array2,data_moji,no,hash,j)
data_no=no+j
array2<<[data_moji,data_no]
i=data_next(data,i,data_moji,hash)
return i
end
#data_mojiのバイト数の分だけiを次へ進める。
def data_next(data,i,data_moji,hash)
if data_moji=="CDataMoji"
font_change(data,i,data_moji)

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"
lc_change2(data,i,data_moji)
font_change2(data,i,data_moji)

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+236
hash[data_moji]=m_byte
i += hash[data_moji]
elsif data_moji=="CDataSolid"
if data[i+5] == 10
i += hash[data_moji]+4
else
i += hash[data_moji]
end
elsif data_moji=="CDataTen"
lc_change(data,i,data_moji)#線・円の場合は、$str_hに対応する線色に変更
if data[i+4] == 100
i += hash[data_moji]+20
else
i += hash[data_moji]
end
else
lc_change(data,i,data_moji)#線・円の場合は、$str_hに対応する線色に変更
i += hash[data_moji]
end
return i
end
#線・円を線色1に変更する
def lc_change(data,i,data_moji)
data[i+5,2]=[$lc].pack("S")
end
#寸法図形を線色1に変更する
def lc_change2(data,i,data_moji)
data[i+20,2]=[$lc].pack("S")
end
#文字色を線色1 文字のフォントをMS 明朝にする
def font_change(data,i,data_moji)
data[i+5,2]=[$lc].pack("S")
data[i+47,4]=[0].pack("L")
f_i=data[i+83,1].unpack("C")[0]
data[i+83,1]=[9].pack("C")
data[i+83+1,f_i]="MS 明朝".unpack("C*").pack("C*")
end
#寸法図形の線色1 フォントをMS 明朝にする
def font_change2(data,i,data_moji)
data[i+67,2]=[$lc].pack("S")
data[i+109,4]=[0].pack("L")
f_i=data[i+145,1].unpack("C")[0]
data[i+145,1]=[9].pack("C")
data[i+145+1,f_i]="MS 明朝".unpack("C*").pack("C*")
end
#メインルーチン
path=Dir.pwd
file_a=(Dir.entries(path)).select{|item|item=~/\.jww$/i}
file_a.each{|file|
base_name = $` if file =~ /\.jww$/i
new_file_neme = base_name+"_2"+".jww"
begin
i=0
data=""
open(file,"rb"){|f|data=f.read}
#◎jwwデータの宣言
i += 8
#◎図面のバージョン
b_n=data[i,4].unpack("L")[0]
i += 4
if b_n<351
puts "バージョンNO#{b_n}には対応していません。パスします";next
end
memo_byte=data[i,1].unpack("C")[0]
i += 1+memo_byte
i += 8
0.upto(15){|i1|i += 20
0.upto(15){|i2|i += 8}
}
i += 14*4#ダミー
i += 100
0.upto(15){|i1|
0.upto(15){|i2|byte=data[i,1].unpack("C")[0];i += byte+1}
}
0.upto(15){|i1|byte=data[i,1].unpack("C")[0];i += byte+1}
i += 96
if b_n>=300
1.upto(8){|i1|i += 28}
else
1.upto(4){|i1|i += 24}
end
if b_n >=300
i += 44
if b_n <404
i += 12
else
i += 12
end
end
i +=2820
0.upto(256){|i1|lcn_byte=data[i,1].unpack("C")[0];i += 1+lcn_byte;i += 16}
i+=528
0.upto(32){|i1|
ltn_byte=data[i,1].unpack("C")[0];i += 1+ltn_byte;i += 4
i+=80
}

 ───────────────────────────────────────  ■題名 : 続き  ■名前 : kojima  ■日付 : 21/11/12(金) 23:48  -------------------------------------------------------------------------
    i += 380
int1=data[i,2].unpack("S")[0]
if int1==255*256+255
i += 2
n2=data[i,4].unpack("L")[0]
i += 4
else
n2=int1
i += 2
end
hash={"CDataSen"=>47,"CDataTen"=>35,"CDataEnko"=>75,"CDataSolid"=>79,"CDataBlock"=>59}
data_moji="";array2=[];no=0;j=0
while no<n2
no += 1
int1=data[i,2].unpack("S")[0]
if int1==255*256+255
i += 4
n=data[i,2].unpack("S")[0]
i += 2
data_moji=data[i,n]
i += n
i=data_no_collect(data,i,array2,data_moji,no,hash,j)
j += 1
elsif int1==127*256+255
i += 2
n=data[i,4].unpack("L")[0]-128*256*256*256
i += 4
array2.each{|item|
if item[1] == n
data_moji=item[0]
break
end
}
i=data_next(data,i,data_moji,hash)
else
n=int1-(128*256)
i += 2
array2.each{|item|
if item[1] == n
data_moji=item[0]
break
end
}
i=data_next(data,i,data_moji,hash)
end
end
bl_list_i=data.index("CDataList")
if bl_list_i
no += 1;list_no=no+j
bl_l_n=data[i,2].unpack("S")[0]
i += 17
bl_l_no=0
while bl_l_no<bl_l_n
no += 1
bl_l_no += 1
i += 15
m_no=data[i,4].unpack("L")[0]
i += 4
flg=data[i,4].unpack("L")[0]
i += 4
time=data[i,4].unpack("l")[0]
if time>=0
i += 4
name_byte=data[i,1].unpack("C")[0]
i += 1+name_byte
else
i += 4
time1,time2=data[i,8].unpack("LL")
i += 8
name_byte=data[i,1].unpack("C")[0]
i += 1+name_byte
end

w=data[i,2].unpack("S")[0];i += 2
if w==256*255+255
l=data[i,4].unpack("L")[0];i += 4;
z_n=l
else
z_n=w
end
z_no=0
while z_no<z_n
no += 1
z_no += 1
int=data[i,2].unpack("S")[0]
if int==255*256+255
i += 4
n=data[i,2].unpack("S")[0]
i += 2
data_moji=data[i,n]
i += n
i=data_no_collect(data,i,array2,data_moji,no,hash,j)
j += 1
elsif int==127*256+255
i += 2
n=data[i,4].unpack("L")[0]-(128*256*256*256)
i += 4
array2.each{|item|
if item[1] == n
data_moji=item[0]
break
end
}
i=data_next(data,i,data_moji,hash)
else
n=(data[i,2].unpack("S")[0])-(128*256)
i += 2
array2.each{|item|
if item[1] == n
data_moji=item[0]
break
end
}
i=data_next(data,i,data_moji,hash)
end
end
if bl_l_no<bl_l_n
if list_no>127*256+255
i += 6
else
i += 2
end
end
end
end
open(new_file_neme,"wb"){|f|f.write data}
puts "#{file}のコピー #{new_file_neme}を作成し、線色:#{$lc} 文字色:#{$lc} 文字フォント:MS 明朝 に変更しました",""
rescue
puts "#{file}でエラーが発生しました パスします"
puts $!
end
}
__END__
:end

 ───────────────────────────────────────  ■題名 : Re:pathの設定が必要  ■名前 : 加藤  ■日付 : 21/11/13(土) 22:58  -------------------------------------------------------------------------
   ▼kojimaさん:
>以下のbatファイルをコピペして実行してみてください。
>
>
>c:\ruby\bin\ruby -x %~f0
>pause
>goto end
>#!ruby -Ks
>$lc=1
>#data_mojiとdata_noをarray2(二重配列)に収集する。
>def data_no_collect(data,i,array2,data_moji,no,hash,j)
> data_no=no+j
> array2<<[data_moji,data_no]
> i=data_next(data,i,data_moji,hash)
> return i
>end
>#data_mojiのバイト数の分だけiを次へ進める。
>def data_next(data,i,data_moji,hash)
> if data_moji=="CDataMoji"
> font_change(data,i,data_moji)
>
> 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"
> lc_change2(data,i,data_moji)
> font_change2(data,i,data_moji)
>
> 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+236
> hash[data_moji]=m_byte
> i += hash[data_moji]
> elsif data_moji=="CDataSolid"
> if data[i+5] == 10
> i += hash[data_moji]+4
> else
> i += hash[data_moji]
> end
> elsif data_moji=="CDataTen"
> lc_change(data,i,data_moji)#線・円の場合は、$str_hに対応する線色に変更
> if data[i+4] == 100
> i += hash[data_moji]+20
> else
> i += hash[data_moji]
> end
> else
> lc_change(data,i,data_moji)#線・円の場合は、$str_hに対応する線色に変更
> i += hash[data_moji]
> end
> return i
>end
>#線・円を線色1に変更する
>def lc_change(data,i,data_moji)
> data[i+5,2]=[$lc].pack("S")
>end
>#寸法図形を線色1に変更する
>def lc_change2(data,i,data_moji)
> data[i+20,2]=[$lc].pack("S")
>end
>#文字色を線色1 文字のフォントをMS 明朝にする
>def font_change(data,i,data_moji)
> data[i+5,2]=[$lc].pack("S")
> data[i+47,4]=[0].pack("L")
> f_i=data[i+83,1].unpack("C")[0]
> data[i+83,1]=[9].pack("C")
> data[i+83+1,f_i]="MS 明朝".unpack("C*").pack("C*")
>end
>#寸法図形の線色1 フォントをMS 明朝にする
>def font_change2(data,i,data_moji)
> data[i+67,2]=[$lc].pack("S")
> data[i+109,4]=[0].pack("L")
> f_i=data[i+145,1].unpack("C")[0]
> data[i+145,1]=[9].pack("C")
> data[i+145+1,f_i]="MS 明朝".unpack("C*").pack("C*")
>end
>#メインルーチン
>path=Dir.pwd
>file_a=(Dir.entries(path)).select{|item|item=~/\.jww$/i}
>file_a.each{|file|
> base_name = $` if file =~ /\.jww$/i
> new_file_neme = base_name+"_2"+".jww"
> begin
> i=0
> data=""
> open(file,"rb"){|f|data=f.read}
> #◎jwwデータの宣言
> i += 8
> #◎図面のバージョン
> b_n=data[i,4].unpack("L")[0]
> i += 4
> if b_n<351
> puts "バージョンNO#{b_n}には対応していません。パスします";next
> end
> memo_byte=data[i,1].unpack("C")[0]
> i += 1+memo_byte
> i += 8
> 0.upto(15){|i1|i += 20
> 0.upto(15){|i2|i += 8}
> }
> i += 14*4#ダミー
> i += 100
> 0.upto(15){|i1|
> 0.upto(15){|i2|byte=data[i,1].unpack("C")[0];i += byte+1}
> }
> 0.upto(15){|i1|byte=data[i,1].unpack("C")[0];i += byte+1}
> i += 96
> if b_n>=300
> 1.upto(8){|i1|i += 28}
> else
> 1.upto(4){|i1|i += 24}
> end
> if b_n >=300
> i += 44
> if b_n <404
> i += 12
> else
> i += 12
> end
> end
> i +=2820
> 0.upto(256){|i1|lcn_byte=data[i,1].unpack("C")[0];i += 1+lcn_byte;i += 16}
> i+=528
> 0.upto(32){|i1|
> ltn_byte=data[i,1].unpack("C")[0];i += 1+ltn_byte;i += 4
> i+=80
> }

ありがとうございます。
この上のものと続きの中のやつを上下つなげてひとつのbatファイルとして保存して実行しましたが。うまくいきませんでした。

d;/フォルダー名/バッチファイル名.bat:210:syntax error,unexpected tCONSTANT,rxpecting KEND
int=data[i,2]unpack("s")[0]

みたいなものが30行ほどでます。
コピペが出来なかったので見ながら打ち込みましたから間違いがあるかもしれませんが・・・

そろそろ諦めたほうがよさそうですかね。

 ───────────────────────────────────────  ■題名 : 行頭の半角スペースと文字コード  ■名前 : kojima  ■日付 : 21/11/14(日) 13:49  -------------------------------------------------------------------------
   この掲示板を経由してコピペすると、行頭に半角スペースが付加される場合があります。
その場合は、行頭の半角スペースを削除する。

特に、文頭から4行

ruby -x %~f0
pause
goto end
#!ruby -Ks



末尾から2行

__END__
:end

の行頭に半角スペースがあってはいけません。

メモ帳(notepad)にコピペした場合
保存する時の文字コードをANSIにしてください。

 ───────────────────────────────────────  ■題名 : Re:行頭の半角スペースと文字コード  ■名前 : 加藤  ■日付 : 21/11/14(日) 21:12  -------------------------------------------------------------------------
   ▼kojimaさん:
>この掲示板を経由してコピペすると、行頭に半角スペースが付加される場合があります。
>その場合は、行頭の半角スペースを削除する。
>
>特に、文頭から4行
>
>ruby -x %~f0
>pause
>goto end
>#!ruby -Ks
>
>と
>
>末尾から2行
>
>__END__
>:end
>
>の行頭に半角スペースがあってはいけません。
>
>メモ帳(notepad)にコピペした場合
>保存する時の文字コードをANSIにしてください。

kojima様、出来ました!

batファイルをメモ帳で開いて半角スペースを確認しようとしたら、日本語の部分が文字化けしてるのに気が付き、原因がわからないのでもう一度コピペして保存しなおしたら見事に出来ました。

ブロック図形は解除されていませんでしたがペン色文字色フォントの変更は出来ました。
ブロック図形の解除ぐらいはすぐに出来るので大変助かりました。

面倒なご質問に親切に対応していただき本当にありがとうございました。

感謝しております。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 1551