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をあきらめた訳ではない
それでないと実現しない場合は躊躇なく使う
その時は又本を読んでやるわけだ
最初に戻る