Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2013, 11:16   #1
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
Вопрос Копировать 3 рандомные строки из .txt и выводить в Memo

Вобщем т.к я такого никогда не делал (сразу 3 строки) прошу помощи у вас, нужно копировать 3 рандомные строки из .txt и выводить в Memo или переменную, код:

Код:
var
sl:TStringList;
m:string;
begin
Randomize;
sl:=TStringList.Create;
sl.LoadFromFile(Form1.sFileNameEdit1.FileName);
m:=sl[Random(sl.Count-1)]; // это для 1-й строки, мне же нужно сразу для 3-х строк
Form1.sMemo1.Lines.Add(m);
sl.Free;
end;
FleXik вне форума Ответить с цитированием
Старый 01.12.2013, 11:49   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

три строки подряд или просто любые случайные три строки?
Повторы допускаются (ну это одна и та же строка случайно может попасть более одного раза)?

для начала попробуйте так:
Код:
sl.LoadFromFile(Form1.sFileNameEdit1.FileName);
for j:=1 to 3 do begin
  m:=sl[Random(sl.Count-1)]; 
  Form1.sMemo1.Lines.Add(m);
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.12.2013, 11:53   #3
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Serge_Bliznykov, да я жестко тупанул, создал тему и через 2 мин сам сделал со счетчиком :D (всю ночь не спал бошка не варит), сейчас с повторами мучаюсь как их игнорить...

пока что накатал следующее, но повторы все ровно проходят:

Код:
var
  sl:TStringList;
  m:string;
  i:integer;
begin
  Randomize;
  sl:=TStringList.Create;
  sl.LoadFromFile(Form1.sFileNameEdit1.FileName);

    for i:=1 to 3 do
    begin
      m:=sl[Random(sl.Count-1)];

        if Pos(m, IntToStr(i))<>0 then
        repeat
          m:=sl[Random(sl.Count-1)];
        until
          Pos(m, IntToStr(i))=0;

      Form1.Memo1.Lines.Add(m);
    end;

  sl.Free;
end;

Последний раз редактировалось Stilet; 01.12.2013 в 13:02.
FleXik вне форума Ответить с цитированием
Старый 01.12.2013, 13:02   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
сейчас с повторами мучаюсь как их игнорить...
Какими повторами?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2013, 13:11   #5
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Какими повторами?
есть .txt файл в нем нумерация от 1 до 9, так вот программа рандомно из этого файла берет 3 строки и выдает в Memo но мне нужно что бы все цифры в каждой из 3-х строк были разные т.е что бы было например: "539" а не "559" (цифра пять повторяется), так вот если попали на повтор то получаем рандомно новую цифру до тех пор пока эта цифра будет НЕ повтором.
FleXik вне форума Ответить с цитированием
Старый 01.12.2013, 13:19   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

а-а-а
Код:
    begin
 k:=Random(sl.Count-1);
      m:=sl[k];
 sl.delete(k);
...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2013, 13:31   #7
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Stilet, пашет, благодарю
FleXik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить файл и из его выводить в memo любую строку. misher Общие вопросы Delphi 9 06.02.2014 21:40
открытие txt в Memo НиРа Помощь студентам 8 19.12.2010 14:39
Копировать текст из webbrowser в memo (включить ctrl+c ctrl+v) копировать - вставить Alar Работа с сетью в Delphi 13 12.07.2010 18:16
Можно ли добавить ентер в Label? Или запретить копировать текст из memo? TwiX Общие вопросы Delphi 5 07.08.2009 14:00
Как из Memo вывести строки в txt файл в конец там существующих Saili Компоненты Delphi 8 16.12.2006 11:23