TSVconverter

tsv(タブ区切りのデータ)を行ごとに変換するツールです。 Excelからコピペするとtsvになるので、難易度表管理をExcelでやってるなら、サイト用に変換する時に便利かもしれません。どちらかというと分かってる人向け。

説明書は同梱してないので、このページでご確認ください。

自分用に作ったものなので、機能は必要最小限、使い勝手も悪いです。 サポートは一切しません。自己責任でご利用ください。

tsvconverter.zip

使い方

次の手順で使います。

  1. 『ヘッダ』『変換ルール』『フッタ』を設定するor『読み込み』でルールを読み込む
  2. <変換元>に変換したいデータをコピペする
  3. 『変換』を押す
  4. <変換後>に出力された文字列をコピーして好きなように使う

変換元の各行に対して『変換ルール』に基づいて変換を行います。最終的な出力は次のようになります。

(ヘッダ)(1行目変換)(2行目変換)・・・(最後の行変換)(フッタ)

同じルールを今後も使うのであれば、『保存』でヘッダ、変換ルール、フッタの内容を保存しておきましょう。次回以降は読み込むだけで済みます。

変換ルールについて

変換ルールには次の書式が使えます。

  • $(数字)$・・・要素参照(0から始まる)
  • $(数字)|"(置換前)","(置換後)"$・・・要素参照(置換付き)
  • $$・・・$を表す
置換前の文字列は正規表現が使えます。
『\』や『"』が使いたい時は『\\』や『\"』のように書きます。

例を見たほうが早いと思うので、いくつか例を示します。ヘッダとフッタは省略しています。

例1(普通に要素参照するのみ)

データ

変換ルール

変換結果

例2(置換付き参照を使用)

データ

変換ルール

変換結果

新ツールに対応した難易度表データに変換したい場合

Excelでは、セルを範囲選択してコピペするとtsvデータが貼り付けられます。 このtsvデータを新ツール対応のデータ部に変換していきます。(ヘッダ部は頻繁に書き換える必要がないので省略します)

必要に応じて表の列を増やしたり、変換ルールを調整してご使用ください。

ここでは次のような表で管理している場合の例を書きます。

leveltitleartist本体URLhash_md5
1Poppin' ShowerP*Light /obj. oxyhttp://nekokan.dyndns.info/~lobsak/genoside/ 62221c6cc63fe5f7ccc37a09863eabba
1ice valley "beyond the searoad" [CALL]makihttp://aquaseeds.net/7f4336ffd62c9c38c8cee95bbf773ff3

左上の<変換元>には2行目以降のデータの部分のみコピーします。次のようなデータが貼り付けられるはずです。

ヘッダ、変換ルール、フッタは次のように定義すると良いでしょう。

ヘッダ

変換ルール

JSONでは文字列中に『"』を使えないので、『"』が現れる可能性がある項目(曲名や作者名など)では置換付きの要素参照を使って『"』から『\"』に変換しています。

フッタ

変換すると次のように出力されます。

仕上げとして、最後の『},]』となっている部分を『}]』に書き換える必要があります。 このツールではどうにもならないので、手で直す必要があります。

これで難易度表導入ツールに対応したデータ部が完成しました。 あとは適切なヘッダ部を用意して、サイトを作るだけで難易度表が完成です。

既知の問題

このソフトは基本的にエラー処理をしていません。
次のような状態では、変換ボタンを押しても何も起きません。変換もされなければ、エラーすら起きません。

  • 変換ルールで要素参照の書式が正しくない
  • 変換元データの列が足りない
  • 変換元データに空行がある(最後の行は空行でも構いません)
  • 置換付きの要素参照で、置換前や置換後に$を使っている
  • 置換付きの要素参照で、置換前や置換後が空白になっている

作者自身が困ってないので、修正される見込みはほぼ無し。仕様と割り切ってご使用ください。

ソースコード

一応公開しておきます。使いたい人はご自由にお使いください。(ただしゼロから作った方が良いもの作れると思います)

tsvconverter_source.zip