Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ausgabe eines Dynamischen Arrays in ein Memofeld? (https://www.delphipraxis.net/126737-ausgabe-eines-dynamischen-arrays-ein-memofeld.html)

StrangeImp 1. Jan 2009 15:58

Re: Ausgabe eines Dynamischen Arrays in ein Memofeld?
 
Aber das geht auch nich richtig :(

Delphi-Quellcode:
{ MinSort: }
procedure TForm1.BitBtnMinSortClick(Sender: TObject);
  var
    i,j: Integer; //Zaehlvariablen
    s: String;
    Temp,Min: Integer; //Zwischenspeicher, Minimum
    ZeitAnfang,ZeitEnde: real;
    CounterVertauschungen: Integer;
  begin
      CounterVertauschungen:=0;
      Buttons_Verstecken;
      ZeitAnfang := Time;
      s:=' ';
      for i := 0 to High(Feld) do begin
          Min := i;                    
        for j := i + 1 to High(Feld) do
            if Feld[j] < Feld[Min] then Min := j;
        Temp := Feld[Min];
        Feld[Min] := Feld[i];
        Feld[i] := Temp;

        If CheckBoxZwischenschritte.Checked=true then <---so?
        for j:=0 to High(Feld) do
            s:=s+IntToStr(feld[j]);
            MemoZwischenschritte.lines.add(s);
       
        CounterVertauschungen:=CounterVertauschungen + 1;
        ListboxSortiert.Items.Add(IntToStr(Temp)); //Ausgabe
       end;
            LblAuswahl.Caption:='Auswahl:'+ #13+#10+'MinSort';
            ZeitEnde := Time;
            LblEdtSortierzeit.Text := FloatToStrF((ZeitEnde-ZeitAnfang)*24*60*60,ffFixed,10,2);
            Ausgabe_GrafischeDarstellung;
            If CheckBoxZwischenschritte.Checked=true then LblEdtSortierzeit.Text:='---';
            LblEdtVertauschungen.Text:=IntToStr(CounterVertauschungen);
            LblEdtZuweisungen.Text:=IntToStr(3+(CounterVertauschungen*8)+6);
end;

jaenicke 1. Jan 2009 16:00

Re: Ausgabe eines Dynamischen Arrays in ein Memofeld?
 
Zitat:

Zitat von jaenicke
Vorher setzt du s auf einen leeren String und nach der Schleife gibst du ihn aus.

;-)

StrangeImp 1. Jan 2009 16:02

Re: Ausgabe eines Dynamischen Arrays in ein Memofeld?
 
Zitat:

Zitat von jaenicke
Zitat:

Zitat von jaenicke
Vorher setzt du s auf einen leeren String und nach der Schleife gibst du ihn aus.

;-)

s:=' '; <-- Ist das kein leerer String? Was denn sonst? ~Verwirrung~

jaenicke 1. Jan 2009 16:18

Re: Ausgabe eines Dynamischen Arrays in ein Memofeld?
 
Schon, aber du gehst in jedem Sortierschritt das ganze Array durch und gibst es aus, setzt aber nicht jedes Mal vorher s auf den leeren String (der auch gar kein Leerzeichen enthalten muss).

D.h. der String wird in der Schleife i immer länger und länger und der Anfang wird jedes Mal wieder ausgegeben. ;-)

Klaus01 1. Jan 2009 16:19

Re: Ausgabe eines Dynamischen Arrays in ein Memofeld?
 
Ich habe in Deinem Quelltext mal etwas herumeditiert.

Delphi-Quellcode:
{ MinSort: }
procedure TForm1.BitBtnMinSortClick(Sender: TObject);
  var
    i,j: Integer; //Zaehlvariablen
    s: String;
    Temp,Min: Integer; //Zwischenspeicher, Minimum
    ZeitAnfang,ZeitEnde: real;
    CounterVertauschungen: Integer;
  begin
    CounterVertauschungen:=0;
    Buttons_Verstecken;
    ZeitAnfang := Time;
   
    for i := 0 to High(Feld) do
      begin
        Min := i;                    
        for j := i + 1 to High(Feld) do
            if Feld[j] < Feld[Min] then
              Min := j;
        Temp := Feld[Min];
        Feld[Min] := Feld[i];
        Feld[i] := Temp;

        If CheckBoxZwischenschritte.Checked then <---so?
          begin
            s:='';
            for j:=0 to High(Feld) do
               s:=s+IntToStr(feld[j]);
            MemoZwischenschritte.lines.add(s);
          end;
       
        CounterVertauschungen:=CounterVertauschungen + 1;
        ListboxSortiert.Items.Add(IntToStr(Temp)); //Ausgabe
       end;
            LblAuswahl.Caption:='Auswahl:'+ #13+#10+'MinSort';
            ZeitEnde := Time;
            LblEdtSortierzeit.Text := FloatToStrF((ZeitEnde-ZeitAnfang)*24*60*60,ffFixed,10,2);
            Ausgabe_GrafischeDarstellung;
            If CheckBoxZwischenschritte.Checked=true then LblEdtSortierzeit.Text:='---';
            LblEdtVertauschungen.Text:=IntToStr(CounterVertauschungen);
            LblEdtZuweisungen.Text:=IntToStr(3+(CounterVertauschungen*8)+6);
end;
Grüße
Klaus

StrangeImp 1. Jan 2009 16:44

Re: Ausgabe eines Dynamischen Arrays in ein Memofeld?
 
Boah, Klasse, Danke :) :) :)
Vielen, Vielen Dank an Alle :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 Uhr.
Seite 2 von 2     12   

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