掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ユーザによって登録されるデータの保存について (ID:3348)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
にしのさん、いつもどうもありがとうございます。 >ファイルの書き込みであれば >・ファイルが存在しないときに作成できない >・ファイルが存在するときにファイルが開けない >・ファイルに書き込めない >いろいろあっても、結局これらは「ファイルが作成できない」ということになりますので、try...exceptで例外が発生したらエラーを表示すればOKでしょう。 ファイルが開けない場合も考慮する必要があるのでしたね。 ありがとうございます。try..except で囲ってエラー処理を行っていこうと思います。 >CRCが正しければ、ファイルは前と同じ、とは限りません。同じCRCを持つデータがあるかもしれませんから。 >そういう意味でも、たとえば、次のデータ位置の、1バイト前のデータが$0でなければ、>エラーとする、などの処理が必要になるかと思います。 確かに、万が一ということもあるかもしれませんね。CRC 以外にも 簡単なチェックを行うようにしてみます。 >C言語が読めるのであれば、「C言語による最新アルゴリズム事典」という本(奥村晴彦著・技術評論社・ISBN4-87408-414-1)に、CRC16,CRC32の解説とサンプルが出ているので参考になるかと思います。題名通り、CRCだけでなく様々なアルゴリズムが出ています。 さっそくみてみました。 http://www.matsusaka-u.ac.jp/~okumura/publications.html で、ソースをダウンロードすることができましたので、早速 Delphi に 書き直したところ、簡単な実験では、(C での実行結果と Delphi での実行結果が) 同じ CRC 値(?) を返してくれています。 それで、C から Delphi への変換の際に、私が行ったものが正しい変換かどうか よろしければ、チェックをお願いできないでしょうか?よろしくお願いします。 以下のように変換しました。(crc32.c の ungisned long crc2(int n, byte c[])) C → Delphi r は ungisned long として宣言 → r は Cardinal として宣言 ungisned long → Cardinal r ^= c[i] → r := r xor c[i] CHAR_BIT → 8 if (r & 1) → if Boolean(r and 1) then r = (r >> 1) ^ 定数 → r := (r shr 1) xor 定数 r >>= 1 → r := r shr 1 return r ^ 0xFFFFFFFFUL → Result := r xor $FFFFFFFF 以上です。よろしくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.