アプリがフリーズしてもデータが取り出せるテキストエディタとそうでないエディタ
アプリがフリーズして文書が保存できない時に諦めずに試すべき4つの事
アプリがフリーズして、色々試してもダメだったとき、最後の手段として、メモリダンプを取得するという方法があります。
タスクマネージャーを起動して、プロセスタブからダンプファイルの作成を選ぶわけですが…。
これで、未保存のテキストが復旧できるかどうか試してみました。
試すアプリは
・TeraPad1.0.9
・notepad(Win7版)
・notepad++6.9.2
・真魚 2.30.12.2
・Office Word 2013
ルール
テキストに「・ω・もふもふ」 という文字列を追加し、未保存でダンプを取る。
1. TeraPad
まず、TeraPadから
調べてみた所、64回以上の Undo に対応してるのが災いしてか、テキストデータがUndo の1回の処理に細分化されて保存されてて、修復は困難であることが分かりました。
行単位での復旧なら…なんとかなるかもしれませんが非常に困難です!
一応 「もふもふ・ω・」自体はサルベージできましたがね。
2. Notepad++
notepad++は、最終バージョンのデータがストリームデータとして丸ごとメモリに残っていて、UNDO 差分が別ブロックで保存されてるようで、楽に取り出すことができました。
3. Mana2
Mana は内部的に Unicode で保存されていました。メモリダンプから探すのは手間取りましたが、完全に復元できました。
4. メモ帳
メモ帳も、内部的に Unicode で保存されています。復旧するとちゃんと編集中のデータが取り出せました。
5. Word 2013
残念ながら、編集データがブロック単位で保存されてるので、生のデータの復元は困難な様です。
一応、部分的に取り出すことはできそうですね
ちなみに、.docx にしてしまうと更に細かくなってしまいメモリ上からの復旧は無理でした。素直にWordの自動バックアップ使った方がよさそうです。
おまけで word 97や WordPad(Win7)も試してみましたが、微妙な結果になりました
まとめ
エディタの種類 | 保存形式 | 取り出し |
TeraPad | ANSI | △(断片中) |
notepad++ | ANSI | 〇 |
メモ帳 | UNICODE | 〇 |
真魚2 | UNICODE | 〇 |
Word 2013(Text) | UNICODE | △(断片大) |
Word 2013(docx) | UNICODE | ×(断片細) |
Word 97(doc) | UNICODE | ×(断片細) |
Word Pad(RTF) | UNICODE | △(断片中) |
『入力中の卒論データが保存してないのに固まった!』なんて場合でも、ダメもとでメモリダンプを保存しておけば、何とかなるか? と思ったのですが、テキストで保存していない場合は難しそうですね
①テキストエディタがファイルを開いた時に、ファイル名を獲得し
②テキストエディタ起動中は数分おきに編集ファイルを別の場所に日時つきで保存
③保存が出来たらエディタに[CTRL+S]を強制で送りつける
④送りつけたにも関わらず、編集中のファイル日付が変わらない時は、フリーズとして検出
…さすがに、そんなソフトは無い気がする。