AGB  ·  Datenschutz  ·  Impressum  







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

Eingabe mischen

Ein Thema von STS301 · begonnen am 16. Okt 2008 · letzter Beitrag vom 17. Feb 2014
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#21

Re: Eingabe mischen

  Alt 16. Okt 2008, 10:00
Danke! es funktioniert!!!!
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#22

Re: Eingabe mischen

  Alt 16. Okt 2008, 12:03
hi nochmal, wenn die Eingabe leer ist, soll irgendein Text(Buchstaben(groß und klein), Zahlen, Sonderzeichen) erstellt werden. Wie mache ich das?
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#23

Re: Eingabe mischen

  Alt 16. Okt 2008, 13:35
Delphi-Referenz durchsuchenRandom() + Delphi-Referenz durchsuchenChr() + Bei Google suchenASCII Tabelle
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#24

Re: Eingabe mischen

  Alt 16. Okt 2008, 19:13
danke, werde ich mir morgen ansehen, ich habe ein Problem, wenn ich in das Eingabefeld ein Sonderzeichen (zb. $) eingebe, dann löscht er den eintrag und macht nichts.
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#25

AW: Re: Eingabe mischen

  Alt 17. Feb 2014, 11:29
Hallo,

ich musste die shuffle Routine noch etwas anpassen:


Delphi-Quellcode:
procedure Shuffle(var s: String);
var
  i, j: integer;
  temp : Char;
begin
  for i := length(s) downto 1 do
  begin
    j := Random(i)+1;
    temp := s[i];
    s[i] := s[j];
    s[j] := temp;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  s:= Edit1.Text;
  shuffle(s);
  Edit1.Text:=s;
end;
Grüße
Klaus
Ich verstehe nicht, wieso das funktioniert wenn die Shuffle-Procedure kein Rückgabewert hat?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  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
 
#26

AW: Eingabe mischen

  Alt 17. Feb 2014, 11:33
Wegen dem var
Delphi-Quellcode:
procedure Shuffle(var s: String);
begin
  ...
end;
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
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#27

AW: Eingabe mischen

  Alt 17. Feb 2014, 11:36
Wegen dem var
Delphi-Quellcode:
procedure Shuffle(var s: String);
begin
  ...
end;
Ok, und sonst könnte es auch so gehen, oder?

Delphi-Quellcode:
function Shuffle(s: String): String;
var
  i, j: integer;
  temp : Char;
begin
  for i := length(s) downto 1 do
  begin
    j := Random(i)+1;
    temp := s[i];
    s[i] := s[j];
    s[j] := temp;
  end;

  Result := s;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  s:= Edit1.Text;
  shuffle(s);
  Edit1.Text:=s;
end;
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Headbucket

Registriert seit: 12. Dez 2013
Ort: Dresden
172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#28

AW: Eingabe mischen

  Alt 17. Feb 2014, 12:00
Ok, und sonst könnte es auch so gehen, oder?
Nicht ganz.
Delphi-Quellcode:
//Falsch:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  s:= Edit1.Text;
  shuffle(s); // der Rückgabewert wird hier nirgends übergeben
  Edit1.Text:=s;
end;

//Richtig:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  s:= Edit1.Text;
  s:= shuffle(s);
  Edit1.Text:= s;
end;

//Optimiert:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text:= shuffle(Edit1.Text);
end;
Grüße
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#29

AW: Eingabe mischen

  Alt 17. Feb 2014, 12:08
Thx
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  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
 
#30

AW: Eingabe mischen

  Alt 17. Feb 2014, 15:32
Wenn kein var dann sollten die Parameter nicht beschrieben werden. Und bei einem string -Parameter dann ein const verwenden (Performance).
Delphi-Quellcode:
function Shuffle(const AStr : String ): String;
var
  i, j: integer;
  temp : Char;
begin
  Result := AStr;
  for i := length(Result) downto 1 do
  begin
    j := Random(i)+1;
    temp := Result[i];
    Result[i] := Result[j];
    Result[j] := temp;
  end;
end;
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
Antwort Antwort
Seite 3 von 4     123 4      


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 05:21 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