• bin2asc 
    最初に戻る
    その後CADLUS−DESIGNから出されるバイナリ−ファイルの ネットリストをテキストファイルに変換するソフトを組んでみた 従来のAWKではbinファイルは扱えないので perlで組んでみた 要は1行16文字(バイト)ずつ順番に読んでいる 最初の7行分は意味ないので 空読みして そのまま廃棄 次にネットラベル 部品番号 1回空読み 部品ピン番号(文字) 2回から読み これをネットラベルから繰り返す ファイル最後まで読めば おしまい perlはほとんど組んだ事ないので 結構時間がかかった このスクリプトでは実現出来てない事があって chrコード00の除去である そしてこれが吐き出すファイルは そのままネットリストにはならない その後自作ソフト CREA_NET.COM NET_SORT5.COMを通すと使えるネットリストになる chr00は自作ソフトを通す中で除去される -------------------------------------------- print "reading " ,$bin_file_nam,"\n"; open (BIN,"<$bin_file_name")|| die "ファイルを開けません :$!\n"; open (OUT,">text.txt"); for ( $a=1;$a<=7;$a++){ #7回空読み 先頭から7x16文字分は無意味 read(BIN,$line,16); print "空読み "; } print "\n"; print OUT "\$NET\n"; while(read(BIN,$line,16)){ #readで最後まで読むとwhileループを抜けるという意味 $net_name=$line; #ネットラベル  read(BIN,$line,16); #部品番号 $line =~ s/chr(00)/''/g; $parts_name=$line; read(BIN,$line,16); #1回 空読み read(BIN,$line,16); #部品ピン番号 $pin_name=substr($line,5,10); print OUT $net_name,";",$parts_name,"-",$pin_name,"\n"; read(BIN,$line,16); #1回 空読み read(BIN,$line,16); #1回 空読み } print OUT "\$END\n"; close(BIN); close(OUT); -------------------------------------------------- 知らない人にとってプログラムの言葉は魔法のように見えるかな スペル1個違っても動かないのだけど 最近は何か単純に思えてきた readという命令を覚える必要もなく これらは単なるボタンのようなもの このボタンを押すとどうなるか? はっきりは解らない 本を見たら 希望に添いそうな処理をしてくれそうだから 使ってみようかな そんな感じでボタンを並べてみた perl言語ほとんど解らない いろんな所で紹介されている例文を切り貼りして作っただけ AWKの前はQUICKBASICその前はLSI−Cその前はN88DISK BASIC しかーーし AWKの連想配列に はまってしまった ネット比較、データ比較も連想配列が無ければやる気が起きない 結局perlも連想配列出来るので そこに落ち着いた訳 でもEXCEL−VBAをあきらめた訳ではない それでないと実現しない場合は躊躇なく使う その時は又本を読んでやるわけだ 最初に戻る