Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zahlen verteilen (https://www.delphipraxis.net/109240-zahlen-verteilen.html)

der_kumpel 26. Feb 2008 20:20


Zahlen verteilen
 
Nabend.

Ich bräuchte mal wieder einen kleinen Denkanstoß, und zwar:


Ich habe eine beliebig lange Liste mit ungeordnet Zahlen. Diese Zahlen sollen nun verteilt werden, und zwar auf weitere Listen.

Dazu bestimme ich erstmal
Delphi-Quellcode:
const MaxZahlen = 10;
, also die maximale Anzahl der Zahlen pro neue Liste.


Und hier den Code, den ich bisher habe:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,j: integer;
begin
  for i := 1 to Ceil(Memo0.Lines.Count / MaxZahlen) do
    begin
      for j := i*MaxZahlen-MaxZahlen to i*MaxZahlen-1 do
        TMemo(FindComponent('Memo'+IntToStr(i))).Lines.Add(Memo0.Lines[j]);
    end;
end;
Memo0: Hier stehen die Zahlen, die verteilt werden sollen.
Memo1-x: Hier werden die Zahlen reingesteckt.


1. Frage: Bei z.B. 14 Zahlen in Memo0 werden die ersten 10 Zahlen in Memo1 geschrieben, die Zahlen 11-14 werden ins Memo2 geschickt, aber zusätzlich noch 6 weitere Leerzeilen. Wie kann ich das verhindern?
2. Frage: Gibt es eine bessere (effizientere) Methode, die Zahlen zu verteilen?

Anmerkung: Das mit den Memos hab ich nur zum Testen des Ganzen gebaut, damit ich besser überprüfen kann, was passiert. ;)


Danke schonmal. :-D

kumpel

mkinzler 26. Feb 2008 20:30

Re: Zahlen verteilen
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,j: integer;
begin
  for i := 0 to (Memo0.Lines.Count - 1) Div MaxZahlen do
    begin
      for j := 1 to Min(MaxZahlen, (Memo.Lines.Count) mod maxzahlen) do
        TMemo(FindComponent('Memo'+IntToStr(j))).Lines.Add(Memo0.Lines[i*Maxzahlen+j]);
    end;
end;

der_kumpel 26. Feb 2008 20:44

Re: Zahlen verteilen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hui, das ging schnell, danke.

Aber leider ists nicht das, was ich brauche. :(

Hab mal zwei Bilder angehängt.

bluesbear 26. Feb 2008 21:03

Re: Zahlen verteilen
 
Zitat:

Zitat von der_kumpel
Aber leider ists nicht das, was ich brauche. :(

Diesen IQ Test bestehe ich nicht. Ich habe den Zusammenhang nicht verstanden. Wie war das nochmal im Mittelteil?

mkinzler 26. Feb 2008 21:12

Re: Zahlen verteilen
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,j: integer;
begin
  for i := 1 to (Memo.Lines.Count Div MaxZahlen)+1  do
    begin
      for j := 0 to Min( MaxZahlen, Memo.Lines.Count - (i-1) * MaxZahlen )-1 do
        (FindComponent('Memo'+IntToStr(i)) as TMemo).Lines.Add(Memo.Lines[(i-1)*Maxzahlen+j]);
    end;
end;

der_kumpel 27. Feb 2008 16:33

Re: Zahlen verteilen
 
Zitat:

Zitat von bluesbear
Diesen IQ Test bestehe ich nicht. Ich habe den Zusammenhang nicht verstanden. Wie war das nochmal im Mittelteil?

Bitte was?

@ mkinzler: Danke, das funktioniert perfekt. :spin:

bluesbear 27. Feb 2008 19:39

Re: Zahlen verteilen
 
Zitat:

Zitat von der_kumpel
Bitte was?

Sorry, ich war zu doof Deine Frage zu verstehen. :oops:

der_kumpel 27. Feb 2008 21:12

Re: Zahlen verteilen
 
Kann auch an mir gelegen haben, mkinzler hatte es ja auch erst falsch verstanden. :roteyes:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 Uhr.

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