Hallo
hin sind dynamische array , poste mal bitte wo du setlenght aufgerfufen hast
ich vermute mal: setlength(hin,36);
richtig in deinem falle wäre so
Delphi-Quelltext
1: 2:
| setlength(hin,37); setlength(zurck,37); |
dynamische array beginnen bei 0, nicht bei 1, somit sind es 37 Einträge, nicht 36.
mit hin[36] wärst du bei setlength(hin,36) beim 37. Eintrag und damit außerhalb vom reserviertem speicher, der gurnd für die ungültige Zeigerop. beim setzen kommt sie evtl nicht, aber beim auslesen.
von der sache ist
ein verschenkter platz, und hier wird es weiter krachen
| Zitat: |
procedure decodierung(decoder : string; hin : array of string; zurck : array of string; var bester : string; var beste : string);
var i,j,o : integer;
uber,uber2 : string;
zahl : boolean;
begin
zahl := false;
i := length(decoder);
for j := 1 to i do begin
if zahl = false then begin
for o := 0 to 36 do begin //// ********* 1 )
uber := hin[o]; // 2)
uber2 := zurck[o]; // 2)
if decoder[j] = uber2[2] then begin
|
1) du willst bestimmt von 1 beginnen nicht von 0,
hin[0] ist '' belegt und wenn du noch im Shcleifendurchlauf o:=0 drin hast kracht es selbst bei uber[2] und uber2[1], weil gar kein 1. oder 2. Zeichen im string ist
Mfg Frank