Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Namens-Generator by flomei

  Alt 17. Dez 2003, 00:21
Geht einfacher und übersichtlicher:
Delphi-Quellcode:
function BuildName(slFirstNamesMale, slFirstNamesFemale, slLastNames: TSTringList; bMale: Boolean = True): String;
var
  Firstname, Lastname: String;
begin
  result := '';
  if bMale then
    Firstname := slFirstNamesMale.Strings[Random(slFirstNamesMale.Count)]
  else
    Firstname := slFirstNamesFemale.Strings[Random(slFirstNamesFemale.Count)];
  Lastname := slLastNames.Strings[random(slLastNames.Count)];
  result := Firstname+' '+Lastname;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  slMale, slFemale, slLastNames: TStringlist;
begin
  slMale := TStringList.Create;
  slFemale := TStringList.Create;
  slLastNames := TStringList.Create;
  try
    slMale.LoadFromFile(ExtractFilepath(ParamStr(0))+'m.txt');
    slFemale.LoadFromFile(ExtractFilePath(ParamStr(0))+'w.txt');
    slLastNames.LoadFromFile(ExtractFilePath(ParamStr(0))+'nach.txt');
    Edit1.Text := BuildName(slMale, slFemale, slLastNames, rdbMale.Checked);
  finally
    FreeAndNil(slMale);
    FreeAndNil(slFemale);
    FreeAndNil(slLastNames);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize();
end;
Wo für du 85 Zeilen gebraucht hast, habe ich nur 35 gebraucht und bin ohne globale Variablen ausgekommen.

PS: War 10 Minuten Arbeit. Muss zu meiner Entschuldigung sagen, dass ich nicht blind tippen kann und auch nur mit zwei Fingern.

Nachtrag:
Hier die Version mit der Liste mit zufälligen männlichen und weiblichen Namen:
Delphi-Quellcode:
    for Loop := 0 to StrToInt(edtCount.Text)-1 do
      ListBox1.Items.Add(BuildName(slMale, slFemale, slLastNames, Boolean(Random(2))));
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat