てがろぐ - Fumy Otegaru Memo Logger -

お手軽一言掲示板(この辺の文章は「管理画面」の「設定」内にある「フリースペース」タブから編集できます。)

動作サンプルです。 ご自由にお試し下さい。パスワードguest管理画面もお試し頂けます。
■いま見ているスキンは「標準スキン」です。他に、 昔のツイッターっぽいスキン(ブルー)昔のツイッターっぽいスキン(ピンク)付箋型スキンシンプル日記スキンジャーナル(日誌)スキンブログタイプスキン(タイトル付きブログっぽくできるスキン)、 黒板スキンチャットタイプスキンがあります。
てがろぐCGIの配布・解説ページに戻る

or 管理画面へ

No.5427

>>5422 >>5426
昔に使っていた色々な日記ツールのログをてがろぐへ移植・統合する作業を行ったことがある者です。20年ほど昔にnickyを数ヶ月だけ使ったことがあるのを思い出し、古いデータを探してみたらログファイルを見つけたので試してみました。
以下、WindowsのPCをお使いで、nickyのログがPC内にあることと、てがろぐCGIを既にダウンロード済みであることを想定しています。

5426で既に書いて下さっている通り、nickyのログは西暦のフォルダ内に日付ごとの.nky形式のファイルが生成されていて
2005
├ 0101A.nky
├ 0102A.nky
├ …

…という感じです。この.nky形式のファイルをテキストエディタで開くと

2005/01/01(Sat)00:00[SOH]タイトル[SOH]本文本文本文本文<br>本文本文本文本文本文<br>[SOH]添付画像ファイル名[SOH]フラグ1[SOH]フラグ2[SOH][SOH][SOH][SOH]

…という構成になっています。※[SOH]の部分は制御文字(0x01)です。半角スペースやタブではありません

・フォルダ内にあるnky形式のデータを1つにまとめる
・文字コードをUTF-8に変換
・[SOH]の部分をてがろぐのxmlに則ったタグに変換
・日付に含まれている曜日の部分を除去
・nickyでは記録されていない、投稿日時の秒を00秒として補完

これらの処理を一括でWindows PowerShellで行います。

任意の場所に新しいフォルダを作り、.nky形式のファイルすべてを1つのフォルダにまとめてコピーしておくと楽です。

スタートメニュー
→「PowerShell」と検索
→「Windows PowerShell」を右クリックして「管理者として実行」を左クリック

PowerShellが起動したら、PowerShellが処理を行う場所を.nkyファイルがあるフォルダにするコマンドを入力します。
たとえば.nkyをまとめてあるフォルダが
C:\hoge\nickey\all
だったら
cd C:\hoge\nickey\all
と入力してEnterを押します。PowerShellの表示が
PS C:\hoge\nickey\all> _ ←アンダーバーが点滅
となればOKです。


次に、以下のコードの全文をコピーしてから、PowerShellの画面で右クリックして下さい。コピーしたコードが貼り付けられて実行されるはずです。
※PowerShellコマンドはAIに補助してもらいながら書きました。当方の手持ちの.nkyファイル数個で変換するところまでは動作確認済みですが、実際のてがろぐでの表示までは確認していませんのでご了承下さい。

長いので折り畳み
$output = "nicky2tegalog.txt"
Remove-Item $output -ErrorAction SilentlyContinue

$allLines = @()
Get-ChildItem *.nky | Sort-Object Name | ForEach-Object {
    $bytes = Get-Content $_ -Encoding Byte
    $raw = [System.Text.Encoding]::GetEncoding("euc-jp").GetString($bytes)

    $raw = $raw -replace '\([A-Za-z]{3}\)', ''
    $raw = $raw -replace '(\d{4}/\d{2}/\d{2})(\d{2}:\d{2})', '$1 $2'

    $lines = $raw -split "`r?`n"
    $allLines += $lines
}

$id = $allLines.Count
foreach ($line in $allLines) {
    $fields = $line -split [char]1
    if ($fields.Count -ge 4) {
        $date = $fields[0].Trim()
        if ($date -match '^\d{4}/\d{2}/\d{2} \d{2}:\d{2}$') {
            $date += ":00"
        }

        $title = $fields[1].Trim()
        $body = $fields[2].Trim()
        $image = $fields[3].Trim()

        $body = $body -replace '<br>', '<br/>'
        if ($image -ne '') {
            $body += "<br/>[PICT:$image]"
        }

        $entry = "<log><date>$date</date><id>$id</id><user>admin</user><cat></cat><comment>$title<br/>$body</comment></log>"
        Add-Content $output $entry
        $id--
    }
}

Write-Host "処理完了:$output に保存されました"


処理が終わると、フォルダの中に「nicky2tegalog.txt」というtxtファイルが生成されます。これをテキストエディタで開いて中身をすべてコピーし、てがろぐのxmlファイル内の<tegalog>と</tegalog>の間に貼り付ければOKです。
あとはてがろぐ側の設定画面にある「投稿の一括調整」から、日付順に並び替えたり記事Noを採番し直したりして調整して下さい。記事のユーザー名をadminにしていますので、任意のユーザー名にしたい場合はテキストエディタで一括置換するなりして下さい。
画像はてがろぐをセットアップしたフォルダのimagesにまとめてアップロードすれば表示されるはずです。

1点気になったのが、当方のnickyのログの中に記事の投稿時刻が入力されておらず、日付と曜日しか記録されていないものが1件ありました。(「2004/11/27/(Sat)」となっていた)
上記のコードでは時刻の補完まではしていないので、てがろぐのxmlに貼り付けた後に<date>2004/11/27/</date>という風になっているものが含まれていないか念のため確認して、<date>2004/11/27 00:00:00</date>となるように手動で時刻を追加・修正して下さい。

by sakura. <2899文字> 編集

DASHBOARD

■複合検索:

  • 投稿者名:
  • 投稿年月:
  • #タグ:
  • カテゴリ:
  • 出力順序:

■新着画像リスト:

Perlのバージョンを上げる設定(さくらインターネット)

全321個 (総容量 36.37MB)

■日付一覧:

■日付検索:

■カレンダー:

2025年9月
123456
78910111213
14151617181920
21222324252627
282930

■最近の投稿:

■フリースペース:

ここは、CGIの設定画面から自由に文章を入力して掲載できるスペースです。スキンを編集しなくてもCGI上から手軽に内容を変更できます(HTML使用可)。
動作サンプルです。◆他のスキン:標準スキン, 昔のツイッターっぽいスキン(ピンク版), 付箋型スキン, シンプル日記スキン, ジャーナル(日誌)スキン, ブログタイプスキン, チャットタイプスキン, 黒板スキンてがろぐCGIの配布ページに戻る

編集

▼現在の表示条件での投稿総数:

1件

▼最後に投稿または編集した日時:

2025年9月23日(火) 00:05:04〔5時間前〕

RSSフィード

動作サンプルです。 ご自由にお試し下さい。パスワードguest管理画面もお試し頂けます。
■いま見ているスキンは「標準スキン」です。他に、 昔のツイッターっぽいスキン(ブルー)昔のツイッターっぽいスキン(ピンク)付箋型スキンシンプル日記スキンジャーナル(日誌)スキンブログタイプスキン(タイトル付きブログっぽくできるスキン)、 黒板スキンチャットタイプスキンがあります。
てがろぐCGIの配布・解説ページに戻る