![]() |
String aus Datei lesen
Morgen,
Ich habe eine Textdatei in der ich die Wörter in einer Liste untereinander schreibe
Code:
Die Textdatei kann ich auch soweit öffnen und die Wörter über Zeilenangabe in einen String laden !
Wort1
Wort2 Wort3 ...
Code:
Allerdings möchte ich das ein beliebiges Wort per Zufall in den String geladen wird.
Datei.LoadFromFile('Wörter.txt');
Wie stelle ich das am besten an ? Liebe Grüße |
AW: String aus Datei lesen
Die Klasse
Delphi-Quellcode:
hat direkt eine Methode
TStringList
Delphi-Quellcode:
, anschließend kannst du dir per Zufall eins aus der Liste holen. Falls die Textdatei aber extrem groß wird, sollte man besser zu anderen Methoden greifen....
LoadFromFile()
|
AW: String aus Datei lesen
Mit knapp 300 Wörtern sollte das nicht so groß sein ;-)
Nur wie mache ich das mit dem Zufall ? |
AW: String aus Datei lesen
Du könntest die Stringlist in "Unordnung" bringen dann kannst du ganz gemütlich eine Zeile nach der Anderen konsumieren bis die Liste leer ist.
Hier ist die Prozedur, die deine Stringliste mischelt:
Delphi-Quellcode:
Und so kannst du eine Zeile nach der Anderen rausnehmen
// Stringliste zufällig mischen
procedure ShuffleTStrings(s:TStrings); procedure FisherYatesShuffle(x:TStrings); var i : Integer; begin for i := x.Count-1 downto 1 do x.Exchange(i, random(i+1)); end; var t : TStringList; begin Assert(Assigned(s)); if s is TStringList then FisherYatesShuffle(s) else begin t := TStringList.Create; try t.Assign(s); FisherYatesShuffle(t); s.Assign(t); finally t.Free; end; end; end;
Delphi-Quellcode:
function GetFirstLine(list:TStrings):string;
begin if list.Count = 0 then raise Excepion.Create('Liste ist leer'); result := list[0]; list.Delete(0); end; |
AW: String aus Datei lesen
Wenn du nur ein Wort haben willst reicht eigentlich schon:
Delphi-Quellcode:
var
sl:TStringList; begin sl := TStringList.Create(); try sl.LoadFromFile(c:\meineDatei.txt'); Button5.Caption := sl[Random(sl.Count)]; finally sl.Free(); end; |
AW: String aus Datei lesen
Danke funktioniert wunderbar ;-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 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-2025 by Thomas Breitkreuz