Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi procedure tauschen (https://www.delphipraxis.net/34269-procedure-tauschen.html)

tobiasw 20. Nov 2004 09:51


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.

Steve 20. Nov 2004 09:54

Re: procedure tauschen
 
Hi,

ich würde keine "Procedure" benutzen (Button1Click ist übrigens eine Prozedur), sondern eine Function:
Delphi-Quellcode:
FUNCTION TauscheString(CONST aInString: STRING) : STRING;
BEGIN
{dein Code, wobei "e1" dem übergebenen String entspricht}
result := ausgabe
END;

{ Beispiel: }
ShowMessage(TauscheString('Test'));
Gruß
Stephan :dance: :xmas:

tobiasw 20. Nov 2004 10:00

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;

idontwantaname 20. Nov 2004 10:27

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:
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;
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, ....

tobiasw 20. Nov 2004 10:44

Re: procedure tauschen
 
ja das funktioniet nur es muss halt unbedingt in einer procedure sein. Kannst mir das mal zeigen wie das auszusehen hat.

Steve 20. Nov 2004 10:51

Re: procedure tauschen
 
Hi,

wenn's keine Funktion sein darf, warum auch immer :gruebel: , dann kannste nen VAR-Parameter übergeben:
Delphi-Quellcode:
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);
Gruß
Stephan :dance: :xmas:

Pr0g 20. Nov 2004 10:52

Re: procedure tauschen
 
Hier mit einer Prodzedur. Die Prozedur selber sieht so aus:
Delphi-Quellcode:
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;
In den "prvate" Breich der Form musst du sie auch noch reinschreiben:
Delphi-Quellcode:
  private
    { Private-Deklarationen }
    procedure Tauschen;
Und hier der Code des "Button1":
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Tauschen;
end;
Der Text zum Tauschen steht in "Edit1".

MfG Pr0g

Dani 20. Nov 2004 11:01

Re: procedure tauschen
 
Delphi-Quellcode:
uses StrUtils;

...

procedure Foo;
begin
  Edit.Text := ReverseString(Edit1.Text);
end;

Luckie 20. Nov 2004 11:02

Re: procedure tauschen
 
Delphi-Quellcode:
procedure Swap(var value1, value2: Integer);
var
  temp: Integer;
begin
  temp := value1;
  value1 := value2;
  value2 := temp;
end;
Du musst die Parameter als var Parameter übergeben, damit die Speicheradressen übergeben werden und dort die Werte direkt zu ändern.

Steve 20. Nov 2004 11:04

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 01:17 Uhr.
Seite 1 von 2  1 2      

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