Entwickler-Ecke

Sonstiges (Delphi) - ich brauche hilfe beim sotieren einer geöffneten datei


elefantenfan88 - Mo 30.11.09 18:31
Titel: ich brauche hilfe beim sotieren einer geöffneten datei
Hallo leute mein Quelltext sieht wei folgt aus:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
procedure TForm1.BtsortClick(Sender: TObject);
var i, j, Merke: integer;


begin

         for i:= (ende-1downto 1 do
         for j:= 1 to i do
             if zahlenf[j] > zahlenf[j+1then
                begin
                  Merke:=zahlenf[j];
                  zahlenf[j]:=zahlenf[j+1];
                  zahlenf[j+1]:=Merke;
                end;
            for i:=1 to ende do
            me_sort.lines.add(IntToStr(zahlenf[i]));
            
end;

procedure TForm1.btInsSortClick(Sender: TObject);
VAR i,j,merke: integer;
    Anfang,ZEnde: Real;

begin

     for i:=2 to ende do
     begin
          merke:=zahlenf[i];
          j:=i;
          while (j>1and (zahlenf[j-1] > merke) do
          begin
               zahlenf[j]:=zahlenf[j-1];
               DEC(j);
          end;
          zahlenf[j]:=merke;
     end;
     for i:= 1 to ende do
     me_sort.lines.add(IntToStr(zahlenf[i]));
end;

procedure TForm1.btNeuClick(Sender: TObject);
VAR i: integer;
begin
     me_sort.lines.clear;
     me_unsort.lines.clear;
     randomize ; // Zufallsgenerator starten
     for i:= 1 to ende do
         zahlenf[i]:= random(1000); //Zufallszahl erzeugen
     for i:= 1 to ende do
          me_unsort.lines.add(IntToStr(zahlenf[i]));
end;

procedure TForm1.bt_oeffnenClick(Sender: TObject);
var i:integer;
  begin
  if OpenDialog1.Execute=True
  then me_unsort.Lines.LoadfromFile(openDialog1.Filename);
    for i:=1 to 10000 do
    Zahlenf[i]:=StrToInt(me_unsort.lines[i-1]);


also wenn ich die geöffnete datei dann sortieren lasse, egal ob insertsort oder bubblesort- macht er dass dann auch ganz normal nur am ende stehen dann 1000den die vorher gar nicht in der datei enthalten waren. also könnt ihr mir bitte sagen wo mein fehler liegt und bitte nocheinmal sagen wie mal den quelltext richtig in das feld einfügt.

zu guterletzt hab ich noch eine frage wenn das denn klappt, wie schaffe ich es denn die datei so zuprogrammieren dass der pc eine datei öffenet, die eine unbekannte zahl zahlen beinhaltet und im anschluss mit einem der sortierverfahren sortiert.

vielen dank für eure hilfe
elefantenfan 88

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.


thepaine91 - Mo 30.11.09 18:37


Delphi-Quelltext
1:
2:
3:
  if OpenDialog1.Execute=True
  then me_unsort.Lines.LoadfromFile(openDialog1.Filename);
    for i:=1 to 10000 do  // for i := 0 to me_unsort.lines.count -1 do


OpenTags = delphi + [] = [delphi]
CloseTags = / + delphi + [] = [/delphi ]


elefantenfan88 - Mo 30.11.09 19:01

vielen dank für diese antwort jedoch lässt sich, die datei immer noch nicht ordentlich sortieren.
ich warte weiterhin auf eure antworten


Flamefire - Di 01.12.09 20:25

keiner wird dir hier deine arbeit abnehmen...er hat sowohl die fehlerhafte zeile als auch ne lösung gepostet

BTW: wo setzt du "ende"`?


ffgorcky - Sa 05.12.09 20:34

Also wenn ich das Problem jetzt gerade richtig verstehe, dann wäre Dir doch mit Bubblesort [http://www.delphi-forum.de/search.php?search_id=90502753] geholfen...