random z *.txt

0

już kilka razy pisałem i kilka razy kasowano ten post ale ja naprawdę szukałem na 4p i nie znalazłem :
jak wylosowć kilka linii z txt ale żeby się nie powtórzyła
(do admina - nie kasuje tego postu please)

0

Pytanie pomocniecze:
umiesz to zrobić dla liczb ?
TAK,
to plik txt można sprowadzić do ciągu liczb oznaczających numer wiersza, losuje więc liczbę i wybierz wiersz o tym numerze
NIE
to kup sobie jakiś podręcznik programowanie dla początkujących, po zakończeniu przeczytaj odpowiedź, ale zajmij się czymś innym np. hodowlą rybek [nuda] .

Pozdrawiam
Kris

0

No to moze ja ci napisze :) To jest z glowy wiec nie daje gwarancji ze bedzie dzialac :) ale napisze a nie jak ostatnio sie porobilo na forum ze w co drugim temacie jest napisane poszukaj w archiwum google faq f1 lubcos takliego a ja ci napisze :)

var
pliktxt : TStringList; //tu jest nasz plik tekstowy
wylosowane : TStringList;
tab : array of integer; //tu beda przechowywane cyferki juz wylosowane
i,a : integer; //przyda sie do petli
ile : integer; //ile linijek chcesz wylosowac
liczba : integer;
tof,tof2 : boolean;
begin
Randomize;
pliktxt := TstringList.Create;
wylosowane := TstringList.Create;
pliktxt.LoadFromFile('c:plik.txt');
for i := 0 to ile do
begin
SetLength(tab, Length(tab)+1); //zwiekszamy dl tablicy
tof := False;
repeat
liczba := Random(pliktxt.Count);
tof2 := false;
for a := 0 to Length(tab) do
begin
if tab[a] = liczba then
begin
break; //liczba jest wiec przerwyamy petle
tof2 := true;
end;
if tof2 = false then //jesli jest false to nie bylo liczby w tab
begin
wylosowane.Add(pliktxt.Strings[liczba]);
tof := true;
break;
end;
end;
until tof = true;
end;
end;

Ale z tego wyszla procka :) No ale mam nadzieje ze dziala bo pisalem ja z pamieci wiec nie jestem tego pewnien ale zaraz sprawdze :)

[dop]
no troche poprawilem bo brakowalo jednego break; A tak to dzialalo dobrze :) No no az sam sobie sie dziwie ze tylko tyle brakowalo :)

0

Prosciej by było załadowac zawartość pliku do TStringList losowac text i usuwac go z listy, a potem aby przeładować listę należy załadować zawartość pliku ponownie.

0

TO było już poruszane na forum, jakieś 15 stron temu...

0

dzięki pedros!!

//Szymkowi podziękuj!!! pq :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0