我想删除dbgrid中的所有非数字行
例如我的dbgrid行是:
row1= 127.0.0.1:900
row2= 103.43.122.40:8000
row3= 122.12.75.4:3128
row4= netfire.se98.ar:3000
row5= po-ryd.449.br:3128
row6= 93.5.32.150:6540
Run Code Online (Sandbox Code Playgroud)
现在,删除dbgrid中的所有非数字行.
A DbGrid由TDataSet后代支持.该TDataSet后代有一个Filtered属性OnFilterRecord,可用于过滤记录.
下面是一个示例OnFilterRecord是拒绝所有得分由这不是数字,不是字符的任何记录执行'.'或':'.请注意我没有使用char-in-set测试,因此代码与Unicode Delphi和非Unicode Delphi完全兼容.
procedure TForm1.ClientDataSet1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
var Value: string;
i: Integer;
C: Char;
begin
Value := DataSet['IP']; // Replace "IP" with your field's name
for i:=1 to Length(Value) do
begin
C := Value[i];
if not(C in ['.', ':', '0'..'9']) then // Detect bad characters
begin
Accept := False; // This record will NOT be shown.
Exit;
end;
end;
Accept := True; // No bad characters were found, show the record.
end;
Run Code Online (Sandbox Code Playgroud)
分配此OnFilterRecord处理程序后,请不要忘记设置Filtered := True.
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |