Salut,


Concerne par le sujet, je suis en train de regarder l'algo de Vigenere sous Delphi et j'ai recupere la fonction ci-dessous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
function Trans(Ch1,Ch2: Char;Sens:smallint): Char;
const Alphanum='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var a,b,r, l:integer;
begin
  l:=Length(Alphanum);   => ce qui donne 62
  a:=Pos(Ch1,Alphanum)-1;
  b:=Pos(Ch2,Alphanum)-1;
  r:=(a+b*sens);        => imaginons que r = l 
  if r<0 then r:=l+r;    => on ne passe pas la
  if r>l then r:=r-l;     => on ne passe toujours pas la
  Result := Alphanum[r+1];  => autrement dit [63] ce qui donne ... rien de bon
end;
Bref, si on ajoute avant le Result:= la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
  if r+1 > l then r:=0;
ca ira tout de suite mieux

En esperant que ca fasse avancer le smilblick

@+

Oncle_Pete