No. : 1428 Sender: msyk URL : Title : lwip v0.5.3 for djgpp (2) かなり前に作った fsdata.c のファイル・データ部分を作成するための バッチ・ファイルです. #ファイル・システムの記述部分は手作業で十分変更可能でしょう. -------------------- datgen.bat -------------------- @echo off bu -nnode strtoknode1 %1 if exist %node%.dat goto alert perl -S hex.pl %1 | fold -b --width=20 | sed -f formdat.sed > %node%.dat :perl -S hex2.pl %1 | sed -f formdat.sed > %node%.dat goto end :alert echo %node%.dat already exists. :end set node= ---------------------------------------------------- ---------------------- hex.pl ---------------------- open(I, $ARGV[0]); binmode(I); while(<>){ s/(.)/sprintf('%02x', ord($1))/eg; s/\n/0a/; print; } close(I); ---------------------------------------------------- --------------------- hex2.pl ---------------------- open(I, $ARGV[0]); binmode(I); while($rc = read(I, $buf, 10)){ for($i = 0 ; $i < $rc ; $i++){ $c = unpack("C", substr($buf, $i)); printf("%02x", $c); } print "\n"; } close(I); ---------------------------------------------------- ------------------- formdat.sed -------------------- s/\(..\)/0x\1/g s/^\(.*\)$/\t\1/ s/\(0x..\)/\1, /g s/0x0\([^0]\)/0x\1/g s/0x00/00/g ---------------------------------------------------- 使用ソフトは bu, tu (Si さん作), perl v5.005_02, fold (djgpp の textutils に収録), sed (logos 版 v2.42). 出力ファイルは入力ファイルの 10 倍以上の大きさになるので注意. 入力ファイルがテキストの場合は行末は 0d0a でなければいけませんが, チェックしていませんので 0d0a 以外の場合は適宜変換して下さい. hex.pl および hex2.pl は internet でどこだったか忘れてしまった サイトにあったスクリプトをちょこっといじったくらいなので 私に著作権はありません(^^;;