Delphi-PRAXiS
Seite 7 von 8   « Erste     567 8      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Sortieralgorithmen (https://www.delphipraxis.net/162274-sortieralgorithmen.html)

biby90 19. Aug 2011 11:37

AW: Sortieralgorithmen
 
ganz genau das hab ich gesucht... danke schöööön :thumb: ich probiere es gleich ma aus....
ist nur noch die frage wie und wo ich sie einsetze aber das versuch ich alleine herauszufinden.... das kann ja nicht all zu schwer sein

biby90 19. Aug 2011 12:54

AW: Sortieralgorithmen
 
werde nicht ganz schlau daraus.... vielleicht ein kleiner hinweis wo ich den ungefähr hinsetzen muss?

Bjoerk 19. Aug 2011 13:06

AW: Sortieralgorithmen
 
Pseudocode

Delphi-Quellcode:
  I:= 0;
  while I <= Count-1 do
  begin
    if Soll Zeile I Löschen then
    begin
      Lösche Zeile I
      Dec(I);
    end;
    Inc(I);
  end;

  array [0..count-1] = Memo.Lines[0..count-1]
  sort array

  Memo.Lines.BeginUpdate
  Memo.Lines[0..count-1] = array [0..count-1]
  Memo.Lines.EndUpdate

DeddyH 19. Aug 2011 13:28

AW: Sortieralgorithmen
 
Mit einer absteigenden For-Schleife löscht man etwas einfacher.
Delphi-Quellcode:
for i := Memo1.Lines.Count - 1 downto 0 do
  if Memo1.Lines[i] = '' then
    Memo1.Lines.Delete(i);

biby90 19. Aug 2011 13:33

AW: Sortieralgorithmen
 
Deddyh.... das war schon das richtige nur jetzt lässt er in den ersten beiden zeilen einen leerstring... die sollen ja auch noch weg. zu mindest bleiben jetzt alle werte da

Bjoerk 19. Aug 2011 13:49

AW: Sortieralgorithmen
 
Länge des Array aktualisiern nicht vergessen.
SetLength (Array, Memo.Lines.count);

biby90 19. Aug 2011 13:53

AW: Sortieralgorithmen
 
wenn ich das mache sind alle werte weg

biby90 19. Aug 2011 14:06

AW: Sortieralgorithmen
 
wenn ich SetLength(lArray, Memo1.Lines.Count) mit eingebe dann löscht er werte und behält die leerzeile.... er soll das doch umgekehrt machen!
och manno.... alles doof heute:roll:

himitsu 19. Aug 2011 14:10

AW: Sortieralgorithmen
 
Zitat:

Delphi-Quellcode:
  for i := 0 to Memo1.Lines.Count -1 do
  begin
    //sicherstellen, dass der String min. ein Zeichen hat.
    if Memo1.Lines.Strings[i] = '' then
    begin
      Memo1.Lines.Delete(i);
      dec(j); //klappt trotzdem nicht

Wegen dieser Konstruktion.

- "klappt trotzdem nicht" ist keine Fehlerbeschreibung!
- und wegen der Schleife, rate ich dir dringend mal die Indexprüfung zu aktivieren, in deinen Projektoptionen.

Bjoerk 19. Aug 2011 14:30

AW: Sortieralgorithmen
 
Dann tust du es an der falschen stelle..
Delphi-Quellcode:
  I:= 0;
  while I <= Count-1 do
  begin
    if Soll Zeile I Löschen then
    begin
      Lösche Zeile I
      Dec(I);
    end;
    Inc(I);
  end;

  -> SetLength (Array, Memo.Lines.count);
  array [0..count-1] = Memo.Lines[0..count-1]
  sort array

  Memo.Lines.BeginUpdate
  Memo.Lines[0..count-1] = array [0..count-1]
  Memo.Lines.EndUpdate


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 Uhr.
Seite 7 von 8   « Erste     567 8      

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