Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
|
Transposition
25. Mär 2012, 17:55
Delphi-Version: 5
HiHo
kann mir wer erklären warum mein Array bugged??
Delphi-Quellcode:
function transposition(u,k:string):string; //u=Klartext; k=Schlüssel
var sk: Array of Integer;
kboard: Array of Array of char;
y,x,i,j,p: integer;
begin
transposition := '';
setlength(kboard, length(k));
if not((length(u)/length(k))=(trunc(length(u)/length(k)))) then y := trunc(length(u)/length(k))
else y := trunc(length(u)/length(k))+1;
for i := 0 to length(k)-1 do
setlength(kboard[i],y);
x := 0; //x-Spalte in der Tabelle
for i := 0 to length(k)-1 do
for j := 0 to y-1 do kboard[i,j] := ' ';
for i := 1 to length(u) do
begin
if ((i mod length(k)) = 1) and (i > 1) then inc(x);
kboard[i-x*length(k)-1,x] := u[i];
Form1.ListBox1.items.add(kboard[i-x*length(k)-1,1]); //<- erste Ausgabe der 2. Array Spalte richtig, wenn ich danach das Array wieder aufrufe kommen falsche Ausgaben in der Listbox
end;
setlength(sk, length(k));
for i := 1 to length(k) do
begin
p := 1;
for j := 1 to length(k) do
if (Ord(k[i]) > Ord(k[j])) or ((k[i] = k[j]) and (j < i)) then inc(p);
sk[i-1] := p;
end;
for i := 1 to length(k) do
begin
x := 0;
repeat
inc(x);
until i = sk[x-1];
for j := 0 to y-1 do
if kboard[x-1,j] <> ' ' then transposition := transposition + kboard[x-1,j];
end;
end;
seh einfach nur meinen Fehler nicht, wäre dankbar für nen zweiten der draufguckt.
/lazarus
mfg
foerster7892
|
|
Zitat
|