![]() |
Re: Eingabe mischen
Sollte in etwas so gehen:
Delphi-Quellcode:
Grüße
procedure Shuffle(var s: String);
var i, j: integer; temp : Char; begin for i := length(s)-1 downto 1 do begin j := Random(i); temp := s[i]; s[i] := s[j]; s[j] := temp; end; end; Klaus |
Re: Eingabe mischen
Nicht die eleganteste Methode, aber versuch es mal so:
Delphi-Quellcode:
function StrMerge(src: string): string;
var i,j: integer; begin SetLength(Result,Length(src)); j := 1; while Length(src) > 0 do begin i := Random(Length(src)) + 1; Result[j] := src[i]; Delete(src,i,1); inc(j); end; end; |
Re: Eingabe mischen
es funktioniert beides unter Lazarus nicht
|
Re: Eingabe mischen
Zitat:
Grüße Klaus |
Re: Eingabe mischen
gar nichts es macht einfach nichts
hier der Code
Delphi-Quellcode:
unit tausch;
{$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); private function StrMerge(src: string):String; procedure Shuffle ( s:String); { private declarations } public { public declarations } end; var Form1: TForm1; implementation { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin Shuffle(Edit1.Text); //bei StrMerge(Edit1.text) funtkioniert es auch nicht end; function TForm1.StrMerge(src: string): string; var i,j: integer; begin SetLength(Result,Length(src)); j := 1; while Length(src) > 0 do begin i := Random(Length(src)) + 1; Result[j] := src[i]; Delete(src,i,1); inc(j); end; end; procedure TForm1.Shuffle( s:String); var i, j: integer; temp : Char; begin for i := length(s)-1 downto 1 do begin j := Random(i); temp := s[i]; s[i] := s[j]; s[j] := temp; end; end; initialization {$I tausch.lrs} end. |
Re: Eingabe mischen
Bei Klaus' Code muss das ein Var-Parameter sein und meins ist eine Funktion.
|
Re: Eingabe mischen
dann steicht er mir Shuffle(edit1.text) an und sagt
Error: Argument can't be assigned to wenn ich
Delphi-Quellcode:
schreibe, dann löscht er den den Eintrag und macht nichts
var
f: String; begin edit1.text:= f; Shuffle(f); end; |
Re: Eingabe mischen
Vielleicht solltest Du mal ein Grundlagentutorial lesen.
Delphi-Quellcode:
var
f: String; begin f := edit1.text; Shuffle(f); edit1.text:= f; end; |
Re: Eingabe mischen
wird nur gelsöscht, aber nicht ausgegeben
|
Re: Eingabe mischen
Hallo,
ich musste die shuffle Routine noch etwas anpassen:
Delphi-Quellcode:
Grüße
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; Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 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 by Thomas Breitkreuz