Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Wörter Sortieren im Array (https://www.delphipraxis.net/189027-woerter-sortieren-im-array.html)

Rippo 27. Apr 2016 12:47

Wörter Sortieren im Array
 
Hallo zusammen

ich möchte in meinem Array die wörter sortieren, jedoch bekomme ich ein fehlermeldung ---> zugriffsverletzung

Delphi-Quellcode:
Procedure SortWord(aWord : string; var aWord_Array : TStringArray);
var NewEintrag, i : Integer;
    Str : String;
    Check: Boolean;
  //wenn sortiert gespeichert werden soll
Begin
 Repeat
  Check:= False;
   i := 1;
    repeat
     if CompareStr(aWord_Array[i], aWord_Array[i+1])>0 then
      begin
       Str := aWord_Array[i];
       aWord_Array[i] := aWord_Array[i+1];
       aWord_Array[i+1] := Str;
       Check := TRUE;
      end;
      Inc(i);
    until(i>Length(aWord_Array));
 Until(Check=FALSE) ;

Zacherl 27. Apr 2016 12:50

AW: Wörter Sortieren im Array
 
Indizes von dynamischen Arrays beginnen in Delphi normalerweise bei 0 und nicht bei 1. Außerdem ist deine Abbruchbedingung nicht korrekt, weshalb du eh schon immer ein Element zu viel liest.

baumina 27. Apr 2016 12:50

AW: Wörter Sortieren im Array
 
Dein i+1 geht wahrscheinlich über die Arraygrenze.

Sir Rufo 27. Apr 2016 12:59

AW: Wörter Sortieren im Array
 
Die untere und obere Grenze eines Arrays bekommt man mit
Delphi-Quellcode:
Low( someArray )
und
Delphi-Quellcode:
High( SomeArray )
heraus.

Dann kann sich das ändern wie es möchte und wird trotzdem immer passen :stupid:

himitsu 27. Apr 2016 16:02

AW: Wörter Sortieren im Array
 
Pssst:
Delphi-Quellcode:
TArray.Sort<T>(var Values: array of T); // Generics.Collections


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz