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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2007, 21:54   #1
eXa
 
Регистрация: 19.07.2007
Сообщений: 5
По умолчанию Случайное разбиение списка на множесво маленьких списков

Привет, мне нужно составить из одного списка(TStringList) много маленьких списков, вот выкладываю код, где то тут ошибка, никак не могу разобраться, почему вылетает 'List index out of bounds(0)' тоесть пустой список...

Код:
procedure TMainForm.btnCreateObjectClick(Sender: TObject);
var
TH:array[0..100] of TThread;
LsA, LsB, LsC: TStringList;
A, B, RAND: integer;
List, ILo, IPa, StringS: string;
begin
 LsA:= TStringList.Create;
 LsB:= TStringList.Create;
 LsC:= TStringList.Create;
 LsA.LoadFromFile('.txt'); // загружаю список из TXT в LsA  
 LsB.Assign(Spisok.Lines); //загружаю список из TMemo в LsB
  for A:= 0 to LsA.Count-1 do
   begin
    List:= LsA.Strings[A];
    ILo:= Copy(List,1, Pos (':', List) - 1);// логин
    IPa:= Copy(List,Pos (':', List) + 1, 255);//пароль
     for B:= 0 to 3 do
      begin
       RAND:= random(LsB.Count);// случайный индекс в диапазоне LsB.Count
       StringS:= LsB.Strings[Rand]; 
       LsC.Add(StringS); // добавляю во 2ой список строку
       LsB.Delete(Rand);// удоляю из 1ого списка строку
       ILog.Lines.Add(StringS) // Лог...
      end;
       TH[a]:= TThread.Create; // создаю экземпляры
       TH[a].Connect(ILo, IPa); // передаю ILO и IPA
       TH[a].Login(LsC.GetText);  // передаю 2ой список
 end;
end;
Вообщем что он делает: создаются 3 списка, 1 список - логин и пароль, 2 список дополнительных данных, 3 список - разбитый список дополнительных данных, тоесть для каждова экземпляра берется один логин, пароль и список разбитых дополнительных данных
eXa вне форума Ответить с цитированием
Старый 15.08.2007, 07:41   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Чтоб действительно получать случайные индексы добавь randomize();
Alex21 вне форума Ответить с цитированием
Старый 15.08.2007, 08:11   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И еще попробуй : RAND:= random(LsB.Count-1);
И кста, а собсно на какой строке вылетает ошибка?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.08.2007, 08:43   #4
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
И еще попробуй : RAND:= random(LsB.Count-1);
И кста, а собсно на какой строке вылетает ошибка?
Значение LsB.Count в Random и так не включается (по определению), так, что в вашем случае последний элемент не учитывается, а жаль.

p.s.: RAND:= random(LsB.Count);

Последний раз редактировалось Alex21; 15.08.2007 в 08:50.
Alex21 вне форума Ответить с цитированием
Старый 15.08.2007, 09:01   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нда ет я погорячился насчет Рандома. Ну тогда нужно потрассировать и выявить ошибку на какой сроке
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.08.2007, 09:23   #6
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от eXa Посмотреть сообщение
LsA.LoadFromFile('.txt'); // загружаю список из TXT в LsA [/code]
Странный у вас файл .txt. Может у него имя есть, и путь?
Alex21 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 маленьких вопроса Ксеноцид БД в Delphi 7 07.05.2008 13:43
Замена маленьких букв на большие. DELPHI Absent Помощь студентам 2 23.03.2008 17:19
Случайное число Altera Общие вопросы Delphi 4 05.02.2008 22:22
Как згенерировать случайное число SeRhy Помощь студентам 2 25.11.2007 20:27
Разбиение матриц на макроблоки!!! metamfetamin Паскаль, Turbo Pascal, PascalABC.NET 3 02.11.2007 23:33