![]() |
procedure tauschen
hi,
ich soll eine Procedure schreiben die ein Wort vertauscht also das Beispiel Test das Ergebnis wäre tset mit nem Button bekomm ich es ja hin. Das sieht so aus nur wie mach ich es mit einer Procedure? Ich hoffe jemand hat eine Lösung Gruß tobiasw
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,zahl:integer; e1, zwerg, ausgabe:string; begin ausgabe:=''; e1:=edit1.Text; zahl:=length(e1); for i:=zahl downto 1 do begin zwerg:=e1[i]; ausgabe:=ausgabe+zwerg; end; edit2.text:= ausgabe; end; end. |
Re: procedure tauschen
Hi,
ich würde keine "Procedure" benutzen (Button1Click ist übrigens eine Prozedur), sondern eine Function:
Delphi-Quellcode:
Gruß
FUNCTION TauscheString(CONST aInString: STRING) : STRING;
BEGIN {dein Code, wobei "e1" dem übergebenen String entspricht} result := ausgabe END; { Beispiel: } ShowMessage(TauscheString('Test')); Stephan :dance: :xmas: |
Re: procedure tauschen
Danke für deine Antwort aber es soll mit einer Procedure sein z.B. procedure tauschen. Das Prob. ist ich kann nicht schreiben e1:=edit1.Text; weil er dann sagt undefinierter Bezeichner. die Procedure kann ich ja über einen Button dann aufrufen in dem ich dort schreib tauschen;
|
Re: procedure tauschen
steve hat vorgeschlagen, eine function zu machen, die einen string zurückgibt. in deinem fall schreibst du dann TauscheString('Test') und du bekommst einen string zurück, das könnte dann so in etwa aussehen:
Delphi-Quellcode:
eine procedure zu verwenden, ist in diesem fall eher ungünstig, da du durch die funktion gleich den umgekehrten string zurückbekommst, mit einer procedure müsstest du jetzt das ergebnis noch in einer variable speichern, ....
function TauscheString(const Text: String): String;
var i,zahl:integer; e1, zwerg, ausgabe:string; begin ausgabe := ''; e1 := Text; zahl := length(e1); for i := zahl downto 1 do begin zwerg := e1[i]; ausgabe := ausgabe + zwerg; end; Result := ausgabe; end; procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := TauscheString('Test'); end; |
Re: procedure tauschen
ja das funktioniet nur es muss halt unbedingt in einer procedure sein. Kannst mir das mal zeigen wie das auszusehen hat.
|
Re: procedure tauschen
Hi,
wenn's keine Funktion sein darf, warum auch immer :gruebel: , dann kannste nen VAR-Parameter übergeben:
Delphi-Quellcode:
Gruß
procedure TauscheString(VAR aText: String);
var i : integer; dummy : string; begin dummy := ''; for i := length(aText) downto 1 do begin dummy := dummy + aText[i]; end; aText := dummy; end; { Beispiel } procedure TForm1.Button1Click(Sender: TObject); VAR txt : String; begin txt := 'Test'; Label1.Caption := 'Vorher: ' + txt; // 'Test' TauscheString(txt); Label2.Caption := 'Nachher: ' + txt; // 'tseT' end; //edit: // Soll der ursprüngliche Wert erhalten bleiben, übergib ihn (z.B. CONST) und deklarier das Ergebnis als OUT: PROCEDURE TauscheString2(CONST aInString: STRING; OUT aOutString: STRING); Stephan :dance: :xmas: |
Re: procedure tauschen
Hier mit einer Prodzedur. Die Prozedur selber sieht so aus:
Delphi-Quellcode:
In den "prvate" Breich der Form musst du sie auch noch reinschreiben:
procedure TForm1.Tauschen;
var s, neu: String; i: Integer; begin s := Edit1.Text; neu := ''; for i := Length(s) downto 1 do neu := neu + s[i]; Edit1.Text := neu; end;
Delphi-Quellcode:
Und hier der Code des "Button1":
private
{ Private-Deklarationen } procedure Tauschen;
Delphi-Quellcode:
Der Text zum Tauschen steht in "Edit1".
procedure TForm1.Button1Click(Sender: TObject);
begin Tauschen; end; MfG Pr0g |
Re: procedure tauschen
Delphi-Quellcode:
uses StrUtils;
... procedure Foo; begin Edit.Text := ReverseString(Edit1.Text); end; |
Re: procedure tauschen
Delphi-Quellcode:
Du musst die Parameter als var Parameter übergeben, damit die Speicheradressen übergeben werden und dort die Werte direkt zu ändern.
procedure Swap(var value1, value2: Integer);
var temp: Integer; begin temp := value1; value1 := value2; value2 := temp; end; |
Re: procedure tauschen
Hi,
ReverseString is ne Funktion, gewünscht is aber ne Prozedur Swap tauscht die Werte, es soll aber nur die Reihenfolge/Leserichtung eines Strings umgedreht werden :zwinker: Gruß Stephan :dance: :xmas: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 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