AGB  ·  Datenschutz  ·  Impressum  







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

Zufall

Ein Thema von jonsen2.0.0.9 · begonnen am 10. Dez 2009 · letzter Beitrag vom 10. Dez 2009
Antwort Antwort
jonsen2.0.0.9

Registriert seit: 5. Dez 2009
67 Beiträge
 
Delphi 7 Personal
 
#1

Zufall

  Alt 10. Dez 2009, 19:58
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
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Zufall

  Alt 10. Dez 2009, 20:04
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;
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Zufall

  Alt 10. Dez 2009, 20:06
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. Und wenn, dann sollte der Code auch vernünftig sein (Resourcenschutzblöcke fehlen), sonst merkt er sich's erst recht falsch.
  Mit Zitat antworten Zitat
jonsen2.0.0.9

Registriert seit: 5. Dez 2009
67 Beiträge
 
Delphi 7 Personal
 
#4

Re: Zufall

  Alt 10. Dez 2009, 20:12
ich mach ja nich nur copy....ich schau mir lösungen an bis ich sie verstehe und dann selber kann...
  Mit Zitat antworten Zitat
10. Dez 2009, 20:19
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Delphi-Frage
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Zufall

  Alt 10. Dez 2009, 20:44
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. 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: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.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Zufall

  Alt 10. Dez 2009, 21:20
Die Zeile ist dazu übrigens auch noch falsch
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Zufall

  Alt 10. Dez 2009, 21:53
Zitat von Neutral General:
Die Zeile ist dazu übrigens auch noch falsch
Und wieso das?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: Zufall

  Alt 10. Dez 2009, 21:54
Probiers doch aus
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Zufall

  Alt 10. Dez 2009, 22:04
Zitat von Neutral General:
Probiers doch aus
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:01 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