初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2018-02-01 09:59:12

k16
Member

数列のチェックサムを取得するには

お世話になります。

レストランで発行するバウチャーの管理システムを構築します。
従業員がバウチャーのシリアルナンバーを入力すれば、該当する発行済みバウチャーのステータスが"USED"になる仕組みです。
入力ミスを防ぐ目的でシリアルナンバーにチェックサムを埋め込みたいのですが、チェックサムを生成するカスタム関数などはありますでしょうか?

シリアルナンバーに使用するのは数字のみで、
3桁(プレフィクス)-6桁(連番)-2桁(前9桁の数列から生成したチェックサム)
という形式を考えています。

よろしくお願いします。

Offline

#2 2018-02-01 10:39:05

Shin
Member

Re: 数列のチェックサムを取得するには

チェックサムと言っても、バーコードなど規格で規定されている以外では、その計算方法はどんな計算でも良いので、自分で作らないといけないでしょう。最も簡単なものは、上の9桁の数字を適当な素数で割って、剰余を設定します。例えば97で割った剰余などでも良いのでは。
2桁のチェックサムですので、かなり厳重なもののようですが、どのような計算ですか。

Last edited by Shin (2018-02-01 10:51:25)

Offline

#3 2018-02-01 11:52:30

k16
Member

Re: 数列のチェックサムを取得するには

>Shinさん

チェックサムのアルゴリズムは自分で決めていいんですね。
逆に言えば、その信頼性の担保も自身で負わなければならない、と(2桁のチェックサムがどれほど厳重なのかも私には判断がつきません・・・)。

今考えたのが、
元の9桁の数列

MD5にて16進数の数列にハッシュ化(GetContainerAttribute関数で上手くいきそう)

16進数のハッシュ値を10進数に変更して、その任意の桁の数字を取り出してチェックサムとする
というやり方です。
この場合、取り出す数字の桁数が多ければ信頼性は高くなりますね。あまりスマートではないですが。
とりあえず、これでなんとかならないか調べてみます。

Offline

#4 2018-02-01 11:56:54

k16
Member

Re: 数列のチェックサムを取得するには

>Shinさん

返信してから気づきました。素数で割った剰余のやりかたを追記編集してくださっていますね。ありがとうございます。
私の構築しているシステムでは、そのやり方で十分な気がします。
解決済みとさせていただきます。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 549.84 KiB (Peak: 582.11 KiB) ]