1,2,3…ではなく、
001,002,003みたいなやつだ。

どうも一部の人で、勘違いをしている人がいるみたいなので書き留めておく。

…008,009,0010,0011と書いてる輩がいるためだ。

前ゼロを付けるというのは、前に1桁や2桁の0を付けるという意味ではない。
全ての数値表記の桁数を揃えるという事である。


コンピューター的には、入力された値が数値なのか文字列なのか判別がつかない。
データ定義をきちんとして、ここは数値項目なので数値以外が入力されたらエラーにするとかしてあればまだしも、
文字列が混在するものなどでは、定義が無ければどちらにもとれる。

例えば、ファイル名などで、
20240523実験データ.csv
となっていれば、何となく「最初の8桁の数値は年月日なんだろうな」というのが判る。
しかし、これは5月の部分が前ゼロで桁揃えが行われているから通用しているのである。

2024523実験データ.csv
でも何とかなりそうな気がする。
しかし、
2024112実験データ.csv
だとどうなるか?
2024年11月2日なのか、2024年1月12日なのか?
さらに
202412実験データ.csv
だとどう読めるか?
2024年12月なのか、2024年1月2日なのか?
読み取った日付でソートすると、ここが正しく読めていなければ、正しい順序に並べられない。

ここで、前ゼロという概念を投入して、桁位置を揃えるのである。

年を4桁、月を2桁、日も2桁というルールを設定して、

桁数が足らない場合は、0を挿入するのである。
このルールを用いることで、
上記は
20240523実験データ.csv
20241102実験データ.csv
20240102実験データ.csv
となり、ファイル名の昇順で並び替えても、
20240102実験データ.csv
20240523実験データ.csv
20241102実験データ.csv
と、想定してる順序になってくれる。


余談だが、
昔のWindowsはXPの頃までは
ファイル名で並び替えた場合、
1.csv
10.csv
2.csv

9.csv
となっていたが、
最近のWindowsでは、
1.csv
2.csv

9.csv
10.csv
にしてくれる。

一見賢くなったように見える。
しかし、Windowsにはファイルを同じフォルダにコピーした場合にファイル名に自動で番号が付く機能があり、
10個コピーを作って、ファイル名で並び替えると、
~ - コピー (2).csv
~ - コピー (3).csv

~ - コピー (9).csv
~ - コピー (10).csv
~ - コピー.csv
~.csv
と、9,10の並びはいいのに、
オリジナル(実質コピー(0))やコピー(実質コピー(1))が後ろに並んでしまうのは、やはり中途半端である。
 

※いくつコピーが作られるか不明な状態で、

 桁数を揃えるわけにも行かず、

 数百、数千のコピーファイルがあろうと、

 最悪2ファイルに、 - コピー (0)、 - コピー (1)を付ければソートできるので、

 色々考えた末の妥協の産物だとは思われる。