|
@@ -799,6 +799,29 @@ begin
|
|
|
end;
|
|
|
|
|
|
function B_CodeToIndexCode(const AB_Code: string): string;
|
|
|
+
|
|
|
+ procedure Filter(const AStr: string; var ANum, AError: Integer);
|
|
|
+ var
|
|
|
+ i: Integer;
|
|
|
+ sPart: string;
|
|
|
+ begin
|
|
|
+ sPart := '';
|
|
|
+ AError := 0;
|
|
|
+ for i := 1 to Length(AStr) do
|
|
|
+ begin
|
|
|
+ if AStr[i] in ['0'..'9'] then
|
|
|
+ begin
|
|
|
+ sPart := sPart + AStr[i];
|
|
|
+ end
|
|
|
+ else
|
|
|
+ begin
|
|
|
+ AError := i;
|
|
|
+ Break;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+ ANum := StrToIntDef(sPart, 0);
|
|
|
+ end;
|
|
|
+
|
|
|
var
|
|
|
sgs: TStrings;
|
|
|
i, iNum, iError: Integer;
|
|
@@ -811,7 +834,7 @@ begin
|
|
|
sgs.DelimitedText := AB_Code;
|
|
|
for i := 0 to sgs.Count - 1 do
|
|
|
begin
|
|
|
- Val(sgs[i], iNum, iError);
|
|
|
+ Filter(sgs[i], iNum, iError);
|
|
|
if iError = 0 then
|
|
|
sError := ''
|
|
|
else
|