0

ファイルに 32 文字の文字列 (複数行) があります。私がやりたいことは、新しいファイルを作成し、それぞれ 4 文字の列を作成してそこに配置することです。

たとえば、私は持っています:

00000000000FDAD000DFD00ASD00

00000000000FDAD000DFD00ASD00

00000000000FDAD000DFD00ASD00

....

新しいファイルでは、次のように表示します。

0000 0000 000F DAD0 00DF D00A SD00

0000 0000 000F DAD0 00DF D00A SD00

誰か助けてくれませんか?私は今何時間も働いていますが、解決策が見つかりません。

4

3 に答える 3

1

まず、入力ファイルを開き、行を文字列として読み取ります。

infid = fopen(infilename, 'r');
C = textscan(infid, '%s', 'delimiter', '');
fclose(infid);

次にregexprep、文字列をスペースで区切られた 4 文字のグループに分割するために使用します。

C = regexprep(C{:}, '(.{4})(?!$)', '$1 ');

最後に、変更された行を出力ファイルに書き込みます。

outfid = fopen(outfilename, 'w');
fprintf(outfid, '%s\n', C{:});
fclose(outfid);

このソリューションは、可変長の行で機能するのに十分堅牢であることに注意してください。

于 2013-05-24T23:54:34.547 に答える
0

輸入

fid = fopen('test.txt');
txt = textscan(fid,'%s');
fclose(fid);

M x 28 文字の配列に変換し、転置および再形成して、各列に 4 文字のブロックを配置します。次に、一番下にブランクの列を追加し、元の形に戻します。各行をセルに格納します。

txt = reshape(char(txt{:})',4,[]);
txt = cellstr(reshape([txt; repmat(' ',1,size(txt,2))],35,[])')

各セル/行を新しいファイルに書き込む

fid = fopen('test2.txt','w');
fprintf(fid,'%s\r\n',txt{:});
fclose(fid);
于 2013-05-24T19:47:23.223 に答える