MIFES TIPS〜実践テクニック集〜TIPSトップ
ファイル比較 検索・置換 グローバル検索・置換 文字コード 巨大ファイル 行(CSV)の整形 正規表現

MIFESのレコードデータの編集機能

MIFES8では、これまでのバージョンにもあったCSVなどのレコードデータの編集機能を整備・改良しました。
表計算ソフトでは開けない大きなサイズのCSVファイルも、MIFES8なら編集が行えます。

レコードデータの編集機能は、【ツール】-【レコード(CSV)整形】メニューからご利用いただけます。
これらは、旧バージョンまでと同様、文書整形のダイアログボックスからも実行できる外部プログラム(*.REP)の形のコマンドです。

CSV編集機能一覧

※行の抽出は、【グローバル検索(grep)】で行えます。(「レコードの抽出ができる?」



ファイルサイズや列数などの制限

行(CSV)の整形機能には、MIFESで扱えるファイルの制限の他に、行数や列数などに制限があります。
なお、列の中に改行(LFを含む)があるCSVには対応していません。

●1行の最大列数

256列まで扱えます。

●1列内の最大桁幅(半角の文字数)
※【桁合わせ】と【区切り文字変更】だけの制限です。

最大で2000桁まで扱えます。
なお、引用符(”〜”など)が列内で閉じていない場合、最終行に改行がない場合(行末が[EOF])には、エラーになります。

1行の長さの最大

整形後の桁数で約9968桁です。

整形後の桁数には非等間隔ハードタブによる桁幅も含まれます。
【桁合わせ】の場合は、各列に5桁分のスペースに相当する非等間隔ハードタブを挿入していますので、ご注意ください。

●整形対象の最大行数

300万行までです。

ただし、お使いの環境によっては上記制限に達していなくても、メモリの状況で実行できない場合もあります。



CSVファイルの列を揃える

列を揃えて表示することが目的の場合は【桁合わせ】を、データそのものを加工して列を揃えたい場合には【区切り文字変更】を実行してください。

  CSV桁合わせイメージ

【桁合わせ】

区切り文字の前に「非等間隔ハードタブ」という特別な形式のハードタブを挿入し、あくまでも編集中のみ桁位置を揃えて表示する機能です。
保存時には非等間隔ハードタブは削除されますので、開く前のように桁揃えされていないCSVファイルとして保存されます。

CSV桁合わせイメージ

  CSV区切り文字変更イメージ

【区切り文字変更】

区切り文字位置の前に半角スペースを挿入して列を揃えます。
設定により区切り文字位置に縦罫線が挿入できるなど、CSVデータを見やすくデータ加工する機能です。
保存時には、半角スペースや縦罫線などをそのままの状態で保存します。元のデータとは異なる状態になりますので、ご注意ください。

CSV区切り文字変更イメージ


桁揃えした状態を保存したい

文書整形メニュー初期設定状態では、【桁合わせ】で挿入した「非等間隔ハードタブ」は削除され、保存できません。

桁揃えした状態を保存するには、【桁合わせ】で区切り文字位置を揃えた状態で、【ツール】-【文書整形】-【Tab→半角スペース】で、ハードタブを桁数分の半角スペースに置き換えてください。

はじめから桁揃えした状態に編集するのが目的であれば、半角スペースで列位置を調整する【区切り文字変更】機能を実行してください。



並べ替えの方法について

CSV行ソート【行ソート(sort)】で、ソート(並べ替え)の基準となる列番号を指定して、行単位で並べ替えができます。
ソートの基準列を1列目にすると、CSV形式でないファイルも並べ替えができます。

【行ソート(sort)】を実行するとダイアログボックスが表示され、区切り文字や並べ替えの昇順/降順などの指定ができます。
「先頭行はソート対象にしない」にチェックをつけて実行すると2行目以降をソートします。
「ソートの方法」には、以下の5つがあります。

  • 文字列:単純比較
    単純に文字列を比較しソートします。
  • 文字列:あいまい比較
    文字列を比較します。
    その際、大文字/小文字や全角/半角は区別せず、 スペースやタブは無視して比較しソートします。
  • 数値(全角も可)
    数字列ではなく、数値として比較します。
    「111」と「99」で比較した場合、文字列比較では「111」が小さいものになりますが、数値比較では「99」が小さくなります。
  • 文字列長
    文字列の長さで比較します。
  • 行番号
    行単位で逆順に並べ替えます。


同じ内容の行を1行にまとめる

CSV行単一化ダイアログ【行単一化(uniq)】で行えます。

【行単一化(uniq)】機能は、同じ内容の行が2行以上あるときに、ファイルの先頭位置に最も近い行のみを残し、その他は削除する機能です。

CSV形式でないファイルに対しても実行できます。
「列の区切り文字」を変更する必要はありません。「,カンマ」のままで実行してください。

ダイアログボックスで「単一化された数を最後に追加する」にチェックをつけると、ファイル内に何行あったかを行末に追加することができます。同じ行がなかった場合は「1」が付け足されます。

行単一化イメージ



列を削除する

1列だけ削除したい場合や、「2列目と5列目」のようにとびとびに削除する場合は、【列削除】で1列ずつ削除してください。
列は区切り文字で判断しますので、列の【桁合わせ】をしておく必要はありません。

なお、連続した複数列をまとめて削除したいときは、【桁合わせ】で列を揃えたあと、箱型選択して【切り取り】が便利です。
箱型の最終位置(図では右下)へは、スクロールや検索、ジャンプの各機能を利用できます。

箱型選択



列を移動したい

「1列目を2列目に移動する」など、1つの列を隣に移動する場合は、【列入れ替え】で行えます。

なお、複雑な列単位の編集(移動や削除)には正規表現を利用した【置換】機能が便利です。
下図は、1-2-3-4の並びを3-1-4-2の順に入れ替える場合の指定方法です。(正規表現の解説

置換ダイアログ



 
↑MIFES TIPSトップ
↑テキストエディタ MIFES 製品情報