Delphi 校验方法示例

文章详细介绍了Delphi中用于校验数据集字段值的方法`custBeforePostCheck`,包括对名称、税务识别号和银行账号进行空格、字符类型的检查,确保数据准确性。
摘要由CSDN通过智能技术生成

Delphi 校验方法示例

if custBeforePostCheck(DataSet.FieldByName(‘NAME’).AsString,‘1’) then
begin
MessageDlg(‘中文名称处不能有空格!’, mtInformation, [mbOk], 0);
Abort;
end;
if custBeforePostCheck(DataSet.FieldByName(‘BUSINOTE’).AsString,‘2’) then
begin
MessageDlg(‘税务识别号只能录入数字和字母!’, mtInformation, [mbOk], 0);
Abort;
end;
if custBeforePostCheck(DataSet.FieldByName(‘IDCODE_RMB’).AsString,‘3’) then
begin
MessageDlg(‘RMB银行账号,不允许录入非数字字符!’, mtInformation, [mbOk], 0);
Abort;
end;
if custBeforePostCheck(DataSet.FieldByName(‘IDCODE_USD’).AsString,‘3’) then
begin
MessageDlg(‘USD银行账号,不允许录入非数字字符!’, mtInformation, [mbOk], 0);
Abort;
end;

procedure TCustInfoForm.BUSINOTEEditExit(Sender: TObject);
begin
if custBeforePostCheck(MDBEdit24.text,‘2’) then
begin
MessageDlg(‘税务识别号只能录入数字和字母!’, mtInformation, [mbOk], 0);
Abort;
end;
end;

方法
function TCustInfoForm.custBeforePostCheck(ValueStr:string;typeInteger: string):boolean;
var
i:integer;
begin
ValueStr:=trim(ValueStr); //去除前后空格
if (typeInteger = ‘1’) then
for i:=1 to length(ValueStr) do //循环
begin
if ( ValueStr[i] = ’ ’ ) then //如果空格或回车
begin
result:=true; //是 中断循环
exit;
end
else
begin
result:=false; //不是 继续循环
end;
end;
if (typeInteger = ‘2’) then
for i:=1 to length(ValueStr) do //循环
begin
if ( (ValueStr[i] in [‘0’…‘9’]) or (ValueStr[i] in [‘A’…‘Z’]) or (ValueStr[i] in [‘a’…‘z’])) then //如果字节是数字或字母
begin
result:=false; //是 继续循环
end
else
begin
result:=true; //不是 中断循环
exit;
end;
end;
if (typeInteger = ‘3’) then
for i:=1 to length(ValueStr) do //循环
begin
if ( ValueStr[i] in [‘0’…‘9’]) then //如果字节是数字
begin
result:=false; //是 继续循环
end
else
begin
result:=true; //不是 中断循环
exit;
end;
end;
end;

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi中实现CRC16校验非常简单。CRC16是一种循环冗余校验,用于检测数据传输中的错误。 首先,我们需要定义CRC16校验表。CRC16校验表是事先计算好的一组校验值,在校验过程中会用到。可以在Delphi中定义一个256个元素的固定大小的数组,用于存储CRC16校验表。代码示例如下: var CRC16Table: array[0..255] of Word; 然后,在主程序中,我们需要计算给定数据的CRC16校验值。下面是一个示例函数calculateCRC16,用于计算数据的CRC16校验值: function calculateCRC16(data: array of Byte; length: Integer): Word; var i, j: Integer; crc: Word; begin crc := Word(-1); for i := 0 to length - 1 do begin crc := crc xor data[i]; for j := 0 to 7 do begin if (crc and $0001) = 1 then crc := (crc shr 1) xor $A001 else crc := crc shr 1; end; end; Result := crc; end; 最后,在主程序中调用calculateCRC16函数即可获取数据的CRC16校验值。示例代码如下: var data: array[0..5] of Byte; crc: Word; begin // 假设数据是[0x01, 0x02, 0x03, 0x04, 0x05],长度为5 data[0] := $01; data[1] := $02; data[2] := $03; data[3] := $04; data[4] := $05; crc := calculateCRC16(data, 5); // 打印CRC16校验值 ShowMessage(Format('CRC16校验值为: $%04X', [crc])); end; 以上代码将会计算数据[0x01, 0x02, 0x03, 0x04, 0x05]的CRC16校验值,并将结果打印出来。 注意,此处的示例是按照一个常用的CRC16算法实现的,具体的CRC16算法可能会有所不同。你可以根据自己的需求进行调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值