Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#13

Re: LZW Komprimierung für texte - zugriffsverletzung

  Alt 24. Aug 2009, 21:38
Polemik beiseite: Wenn man den nicht übersetzbaren Code entfernt, die StrToInt-Problematik mit fixen Werten (zB 1000 für max, und setlength(ar,10) umschifft, RangeCheck und Debugging einschaltet und compiliert, gibt's als ersten eine Warnung:

[Warning] Unit1.pas: Variable 'b' might not have been initialized
ar[j]:=ar[i];
ar[i]:=b;

Was soll das? Willst Du da noch mal tauschen und hast eine Zeile vergessen? Lassen wird uns also nicht ablenken und drücken Run. Und bumm!

Range Check error in Zeile
repeat j := j-1 until pivot >= ar[j];

Was kann das wohl sein. Und wieso tritt das auf?

So, jetzt noch was zur Formatierung und zu globalen Variablen.

Wie schon gesagt (und nicht nur ironisch): Wenn Du Code nur für Dich schreibst, ist es relativ wurscht wie er aussieht. Nur darfst Du nicht erwarten, daß andere Leute sich an ihm erfreuen und gern damit arbeiten. Falls Du ernsthaft vorhast, besser lesbaren Quellcode zu schreiben, such mal nach Style-Guide (als erste Näherung, nicht daß das unbedingt perfekt wäre).

Globale Variable - Hier: Was nützt Dir eine Quicksort-Routine, die nur ein bestimmtes (Longint-)Array sortieren kann? Was machst Du, wenn Du zwei Arrays sortieren willst? Zwei Quicksort-Routinen schreiben?


Gammatester
  Mit Zitat antworten Zitat