Jeśli musisz zrobić losowanie (np. w konkursie) i potrzebujesz wybrać pewną ilość użytkowników z listy, to poniższy kod na pewno Ci się przyda. Pobiera on nazwy użytkowników (czy też inne wartości) z pliku txt. Jedyny warunek jest taki, że jedna wartość w jednej linijce np:
Wartosc1 Wartosc2 Wartosc3 Wartosc4 itd...
Cały kod jest bardzo prosty. Wczytujemy wartości, sortujemy losowo i wynik wpisujemy do pliku:
users = [] File.open("kandydaci.txt", "r") do |infile| while (line = infile.gets) next unless line.length > 0 users << line.strip end end users = users.sort_by { rand } users[0, 10].each do |user| File.open("wyniki.txt", 'a') {|f| f.write("#{user}\n") } end
Leave a Reply