AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Brauche Bitte Erklärung für Sortierbefehl!

Ein Thema von Molzer · begonnen am 8. Jan 2009 · letzter Beitrag vom 9. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
Molzer

Registriert seit: 7. Dez 2008
70 Beiträge
 
#1

Brauche Bitte Erklärung für Sortierbefehl!

  Alt 8. Jan 2009, 20:29
Hallo !!

Hab hier einen Text und verstehe leider ein paar Zeilen nicht


Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
  i: Integer;
  j: Integer;
  temp:string;
begin
for i := 0 to memo1.Lines.Count - 1 do //warum -1, er nimmt für i die erste zahl und für j
                                       // die zweite, tauscht sie aus wenn nötig
for j := i to memo1.Lines.Count - 1 do //und das solange bis j>i, warum -1???
begin
  if memo1.Lines[i]>memo1.Lines[j] then
  begin
    temp:=memo1.lines[i];
    memo1.Lines[i]:=memo1.lines[j];
    memo1.Lines[j]:=temp;
Meine Version:
Borland® Delphi® für Microsoft® Windows™ Version 10.0.2288.42451 Update 2 Copyright © 2005 Borland® Software Corporation.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Brauche Bitte Erklärung für Sortierbefehl!

  Alt 8. Jan 2009, 20:32
Hi!

Das -1 kommt daher, da ab 0 angefangen wird zu zählen. Hat das Memo 4 Zeilen, so haben sie die Zeilennummern 0,1,2 und 3.
Memo1.Lines.Count gibt aber 4 zurück (es sind ja 4 Zeilen), also muss man von 0 bis 3 (eben genau 4-1) gehen.


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Molzer

Registriert seit: 7. Dez 2008
70 Beiträge
 
#3

Re: Brauche Bitte Erklärung für Sortierbefehl!

  Alt 8. Jan 2009, 20:39
alles klar!!
danke!!
Meine Version:
Borland® Delphi® für Microsoft® Windows™ Version 10.0.2288.42451 Update 2 Copyright © 2005 Borland® Software Corporation.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Brauche Bitte Erklärung für Sortierbefehl!

  Alt 8. Jan 2009, 21:20
Hallo,

aber würde es nicht reichen, "i" bis "Memo1.Lines.Count - 2" laufen zu lassen und j bei i+1 beginnen zu lassen?
Es wird doch immer die aktuelle Zahl (Index i) mit den darauf folgenden (Index i+1, i+2, ...) verglichen. Im letzten Durchlauf wird dann doch die letzte Zahl mit sich selbst verglichen und im ersten ebenfalls.

Oder habe ich einen Denkfehler?

Grüße, Matze
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#5

Re: Brauche Bitte Erklärung für Sortierbefehl!

  Alt 8. Jan 2009, 22:13
Zitat von Matze:
Oder habe ich einen Denkfehler?
Nein, da hast du vollkommen Recht.

Aber man kann das Ganze auch so lösen:

Delphi-Quellcode:
var
  temp: TStringList;
begin
  temp := TStringList.Create;
  try
    temp.Assign(memo1.Lines);
    temp.Sort;
    memo1.lines := temp;
  finally
    temp.Free;
  end;
end;
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Brauche Bitte Erklärung für Sortierbefehl!

  Alt 8. Jan 2009, 23:24
if memo1.Lines[i]>memo1.Lines[j] then Und das soll funktionieren?
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Brauche Bitte Erklärung für Sortierbefehl!

  Alt 8. Jan 2009, 23:27
Zitat von inherited:
if memo1.Lines[i]>memo1.Lines[j] then Und das soll funktionieren?
Ja das funktioniert. Anfangs hab ich auch groß geguckt als ich es das erste mal versucht hab und es funktioniert hat
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Brauche Bitte Erklärung für Sortierbefehl!

  Alt 8. Jan 2009, 23:54
Is ja Wahnsinn
Man lernt doch immer noch dazu
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

Re: Brauche Bitte Erklärung für Sortierbefehl!

  Alt 9. Jan 2009, 01:37
Andersherum, warum solte es nicht?

TMemo.Lines ist vom Typ TStrings, und das ist wie folgt definiert:

Delphi-Quellcode:
TStrings = class(TPersistent)
  private
    ...
  public
    ...
    property Strings[Index: Integer]: string read Get write Put; default; // <-- das Zauberwort
    ...
  end;
Das Zauberwort ist default. Darum verweist in dem Beispiel Memo1.Lines[ i ] direkt auf einen String und den kann ich natürlich so vergleichen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Brauche Bitte Erklärung für Sortierbefehl!

  Alt 9. Jan 2009, 19:33
Das mit dem default war mir klar. Was mir neu war, waren die Stringvergleiche auf >, <
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:37 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