Verifica se uma sequencia numerica esta contida em outra
Essa função fiz para conferir jogos de MegaSena, Lotofacil, Lotomania, etc. Ela testa a sequencia jogada com a sequencia sorteada e rotorna o numero de acertos. Tem de se passar os parametros por ARRAY.
function conferir(const a, b: arrayof integer):integer; var
contem, naocontem, x, y: integer; begin
contem:= 0;
naocontem:=0; for x:=0 to high(a) dobegin for y:=0 to high(b) dobegin if a[x]=b[y] then
contem:=contem+1 else
Naocontem:=naocontem+1; end; end;
Result:=contem; end;
Veja exemplo de uso: procedure TForm2.BitBtn2Click(Sender: TObject); var
x: integer;
numero: string; begin
SetLength(vec,6); // Não esquecer de setar o tamanho da Array, Neste caso é 6 // para a megasena, se for para quina tem de ser 5, lotomania 15, etc...
memo2.Lines.Clear; for x:=0 to memo1.lines.Count-1 dobegin
vec[0]:=strtointdef(copy(memo1.Lines.Strings[x],1,2),0);
vec[1]:=strtointdef(copy(memo1.Lines.Strings[x],4,2),0);
vec[2]:=strtointdef(copy(memo1.Lines.Strings[x],7,2),0);
vec[3]:=strtointdef(copy(memo1.Lines.Strings[x],10,2),0);
vec[4]:=strtointdef(copy(memo1.Lines.Strings[x],13,2),0);
vec[5]:=strtointdef(copy(memo1.Lines.Strings[x],16,2),0);
setlength(tot,6); // Não esquecer de setar o tamanho da Array, Neste caso é 6 // para a megasena, se for para quina tem de ser 5, lotomania 15, etc...
tot[0]:=strtointdef(edit1.text,0);
tot[1]:=strtointdef(edit2.text,0);
tot[2]:=strtointdef(edit3.text,0);
tot[3]:=strtointdef(edit4.text,0);
tot[4]:=strtointdef(edit5.text,0);
tot[5]:=strtointdef(edit6.text,0);
memo2.lines.Add(memo1.Lines.Strings[x]+' '+strzero(form1.conferir(tot,vec),2)); end; end;