Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Zufall (https://www.delphipraxis.net/144563-zufall.html)

jonsen2.0.0.9 10. Dez 2009 19:58


Zufall
 
Hallo,

wie kann ich aus einer txt datei oder Tstringlist die werte entnehmen und zufällig einen davon auswählen?

hab nämlich ein programm das bilder raussucht und dann den pfad und namen speichert. die in sl1 einer Tstringlist, welche ich dann noch in Bilder.txt speicher.

nun möchte ich wenn man auf einen button drückt, dass dann ein pfad + name ausgewählt wird (zufällig) und dann erstmal nur in label1 ausgegeben wird.

hoffe habt was.

MFG
Jonas

Namenloser 10. Dez 2009 20:04

Re: Zufall
 
Delphi-Quellcode:
var
  StringList: TStringList;
begin
  StringList := TStringList.Create;
  Stringlist.LoadFromFile(...);
  ShowMessage(StringList.Strings[random(StringList.Count)]); // Strings, nicht Lines. Lines wars glaub ich bei TMemo...
//  Oder:
//  ShowMessage(StringList[random(StringList.Count)]);
  StringList.Free;
end;

// Irgendwann beim Programmstart (z.B. FormCreate):
randomize;

Matze 10. Dez 2009 20:06

Re: Zufall
 
Hallo,

über SL.Count bekommst du die Anzahl der Einträge. Über Delphi-Referenz durchsuchenRandom und davor einmaligem Aufruf von Delphi-Referenz durchsuchenRandomize kannst du dir den Index als Zufallszahl zurückgeben lassen.

Grüße, Mazue

Edit: Ihr immer mit den bescheuerten Komplettlösungen. lasst ihn doch selbst mal was machen. Wie man an seinen zahlreichen Themen sieht, muss er noch viel lernen und Copy&Paste bringt da nichts. :wall: Und wenn, dann sollte der Code auch vernünftig sein (Resourcenschutzblöcke fehlen), sonst merkt er sich's erst recht falsch.

jonsen2.0.0.9 10. Dez 2009 20:12

Re: Zufall
 
ich mach ja nich nur copy....ich schau mir lösungen an bis ich sie verstehe und dann selber kann...

DP-Maintenance 10. Dez 2009 20:19

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Delphi-Frage

Namenloser 10. Dez 2009 20:44

Re: Zufall
 
Zitat:

Zitat von Matze
Edit: Ihr immer mit den bescheuerten Komplettlösungen. lasst ihn doch selbst mal was machen. Wie man an seinen zahlreichen Themen sieht, muss er noch viel lernen und Copy&Paste bringt da nichts. :wall: Und wenn, dann sollte der Code auch vernünftig sein (Resourcenschutzblöcke fehlen), sonst merkt er sich's erst recht falsch.

Ich bin normalerweise immer bestrebt, Komplettlösungen zu vermeiden, aber ich finde, man kann es auch übertreiben. Denn manchmal sagen ein paar Zeilen Code mehr als tausend Worte. Ich habe mir schon oft einen abgebrochen bei dem Versuch, eine solche Banalität zu umschreiben, ohne die Lösung direkt zu nennen. Unnötig, denn meistens wird die Erklärung dann kompliziert und der Fragesteller wird nur verwirrt.

Und was die Ressourcenschutzblöcke angeht: Klar, normalerweise sollte man sie hinschreiben, aber in diesem Fall war es so, dass ich zu erst nur folgende Zeile geschrieben hatte:
Delphi-Quellcode:
ShowMessage(StringList.Lines[random(StringList.Count)]);
Ich lasse solche Zeilen aber ungern alleine stehen, vor allem wenn keine Erläuterung vorhanden ist. Deshalb habe ich die Zeile von etwas erklärendem Code umschlossen, damit zumindest klar ist, was was ist.

Neutral General 10. Dez 2009 21:20

Re: Zufall
 
Die Zeile ist dazu übrigens auch noch falsch :stupid:

Namenloser 10. Dez 2009 21:53

Re: Zufall
 
Zitat:

Zitat von Neutral General
Die Zeile ist dazu übrigens auch noch falsch :stupid:

Und wieso das? :gruebel:

Neutral General 10. Dez 2009 21:54

Re: Zufall
 
Probiers doch aus :P

Namenloser 10. Dez 2009 22:04

Re: Zufall
 
Zitat:

Zitat von Neutral General
Probiers doch aus :P

:duck:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 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