Ja hatte ich untedessen auch bemerkt mit der 216
Zitat:
Außerdem würde ich beim "case ... of"-Bereich noch ein "else i:=0;" einfügen.
Dann funktioniert der Code bei meinem Personalausweis
Das war der Fehler
Delphi-Quellcode:
procedure TForm7.Button1Click(Sender: TObject);
var
x,y:integer;
i,l:Integer;
begin
i:=0;
l:=0;
for x := 1 to Length(MaskEdit1.Text)do begin
y:=chartoint(MaskEdit1.Text[x]);
case x of
1:i:=y * 7;
2:i:=y * 3;
3:i:=y * 1;
4:i:=y * 7;
5:i:=y * 3;
6:i:=y * 1;
7:i:=y * 7;
8:i:=y * 3;
9:i:=y * 1;
10:i:=y * 7;
//-
// Ausgabeland
//-
14:i:=y * 3;
15:i:=y * 1;
16:i:=y * 7;
17:i:=y * 3;
18:i:=y * 1;
19:i:=y * 7;
20:i:=y * 3;
//-
22:i:=y * 1;
23:i:=y * 7;
24:i:=y * 3;
25:i:=y * 1;
26:i:=y * 7;
27:i:=y * 3;
28:i:=y * 1
else
i:=0;
end;
l:=l+strtoint(cut(inttostr(i)));
end;
Edit2.Text:=cut(inttostr(l));
end;
Function TForm7.cut(a:string):string;
begin
if length(a)>1 then Result:=a[2];
if length(a)>2 then Result:=a[3]
else
Result:=a;
end;
function TForm7.CharToInt(C: Char):integer;
begin
Result := 0;
if C = '0' then Result := 0;
if C = '1' then Result := 1;
if C = '2' then Result := 2;
if C = '3' then Result := 3;
if C = '4' then Result := 4;
if C = '5' then Result := 5;
if C = '6' then Result := 6;
if C = '7' then Result := 7;
if C = '8' then Result := 8;
if C = '9' then Result := 9;
end;
Danke
@marabu mod war eig net gemeint eher "Pred"