![]() |
AW: funktion erstellen... weiß nicht weiter
Wieso Bücher? Ich habe lediglich versucht, Hilfe zur Selbsthilfe zu geben, dabei lernt man nämlich noch mehr. Aber wenn der Compiler etwas moniert, ist es wenig hilfreich zu sagen "der meckert", ohne den Code dann zu zeigen.
|
AW: funktion erstellen... weiß nicht weiter
naja ich brauche ja auch eigentlich keine Sort funktion... naja ich sollte die halt machen und jetzt eine, um das Memo1.lines > Memo1.lines blablabla zu ersetzen...
reiner lerneffekt. nicht streiten.... :-( |
AW: funktion erstellen... weiß nicht weiter
Da nun bereits 2 mögliche Lösungen gepostet wurden, hier meine Umsetzung (die vielen Hilfsvariablen sollen dem Verständnis dienen):
Delphi-Quellcode:
Im ButtonClick dann
function Min(Wert1, Wert2: integer): integer;
begin if Wert1 < Wert2 then Result := Wert1 else Result := Wert2; end; function MyStrCompare(const Str1, Str2: string): integer; var i, MaxLen, Laenge1, Laenge2, Wert1, Wert2: integer; begin Result := 0; i := 1; Laenge1 := Length(Str1); Laenge2 := Length(Str2); MaxLen := Min(Laenge1, Laenge2); while (i <= MaxLen) and (Result = 0) do begin Wert1 := CharToInt(Str1[i]); Wert2 := CharToInt(Str2[i]); Result := Wert1 - Wert2; i := i + 1; end; if Result = 0 then Result := Laenge1 - Laenge2; end;
Delphi-Quellcode:
for j:=0 to Memo1.Lines.count -2 do
begin for i:=j +1 to Memo1.Lines.Count -1 do begin if MyStrCompare(Memo1.Lines[j], Memo1.Lines[i]) > 0 then //tauschen |
AW: funktion erstellen... weiß nicht weiter
na das sieht doch schon eher nach dem aus was ich brauche. danke ich versuchs mal
|
AW: funktion erstellen... weiß nicht weiter
hier das endprodukt... danke nochmal ihr seid die besten :thumb:
Delphi-Quellcode:
unit main;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private function Sort(ASrcA, ASrcD: String): Integer; function CharToInt(AValue: String): Integer; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; CharTable: array[0..51] of String = ('A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f', 'G', 'g', 'H', 'h','I', 'i', 'J', 'j', 'K', 'k', 'L', 'l', 'M', 'm', 'N', 'n', 'O', 'o', 'P', 'p', 'Q', 'q', 'R', 'r', 'S', 's', 'T', 't', 'U', 'u', 'V', 'v', 'W', 'w', 'X', 'x', 'Y', 'y', 'Z', 'z'); implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i, j : Integer; //Position Buffer: String; begin for j:=0 to Memo1.Lines.count -2 do begin for i:=j +1 to Memo1.Lines.Count -1 do begin if Sort(Memo1.Lines[j], Memo1.Lines[i]) > 0 then begin Buffer:= Memo1.Lines[j]; Memo1.Lines[j]:= Memo1.Lines[i]; Memo1.Lines[i]:= Buffer; end; end; end; end; function TForm1.CharToInt(AValue: String): Integer; var i: Integer; begin Result := -1; for i := 1 to Length(CharTable) do begin if AValue = Chartable[i] then begin Result := i; Break; end; end; end; function TForm1.Sort(ASrcA, ASrcD: String): Integer; var i, j: Integer; lResult: Integer; begin Result := 0; for i:=1 to Length(ASrcD) do begin if CharToInt(ASrcA[i]) = CharToInt(ASrcD[i]) then begin Result := 0; end else begin if CharToInt(ASrcA[i]) < CharToInt(ASrcD[i]) then begin Result:= -1; Break; end else begin Result := +1; Break; end; end; end; end; end. |
AW: funktion erstellen... weiß nicht weiter
Und wenn ASrcA kürzer als ASrcD ist, kracht es u.U. in Deiner Sort-Methode, da Du aus dem Nirvana liest.
|
AW: funktion erstellen... weiß nicht weiter
hö? verstehe gerade nur bahnhof.... es funktioniert auf jeden fall und das ist die hauptsache.
mein ausbilder findet es auch in ordnung |
AW: funktion erstellen... weiß nicht weiter
Dann ruf doch einmal
Delphi-Quellcode:
auf.
Sort('123', '12345')
|
AW: funktion erstellen... weiß nicht weiter
hmm.... vorhin hatte es geklappt dass Baumhaus unter Baum stand und beim sortieren es eben getauscht hat
er machts immer noch genau so... nur nicht zahlen |
AW: funktion erstellen... weiß nicht weiter
Dann sortier nochmal oder ruf wie gezeigt die Funktion direkt auf.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 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