次の形式のかなり大きなテキストファイル(16,000行以上)があります。
#ID #Line Num #Var Col Length Values (HEX):
45 00001 FFFF FFFF 0000 0000
45 00002 0000 0000 FFFF FFFF
47 00003 AAAA 1111 AAAA 1111 AAAA 1111
49 00004 BBBB 2222
注:実際のファイルにはさらに多くのHEX値があるため、これは明らかにデータで構成されています。
Matlabではtextscan
、1行のコマンドを使用してみました。
fp = fopen(filePath, 'rt');
readLine = fgetl(fp);
[ignored, pos] = textscan(readLine, '%d');
values = textscan(readLine(pos+1:end), '%x');
正しくフォーマットされていない文字列のエラーが発生します。textscan
16進値の変換はサポートされていないと思います。私はここで見つけた解決策も試しました:
しかし、それもうまくいかないようです。非常に長い時間がかかるため、各16進値を個別に変換することは避けようとしています(これは、現在実装しているソリューションです)。テキストファイルから可変列幅の16進値をスキャン/解析するにはどうすればよいですか?