Рандомайз из XLS

  • Автор темы Автор темы bartenev
  • Дата начала Дата начала

bartenev

Client
Регистрация
15.01.2015
Сообщения
43
Реакции
8
Баллы
8
Столкнулся с такой задачей:
Требуется из файла Excel брать строчки в рандомном порядке...
Удалять из файла нельзя - т.к. в соседние столбцы в эти строки пишутся данные...
 
вы про ячейки или про строки?
 
мне нужны номера всех строк , но в рандомном порядке :)
 
делайте запись в олд. если у вас там не мегатонны данных обрабатываться будет быстро и не заметно.

получаете кол строк
от нуля до кол строк рандом
берете значение рандома
сверяете с олд
как только кол строк из списка равно кол строк в олде - стоп.

По человечески кодом не умею, но иногда чем ждать совета проще костыль наклепать :). Ну, а так наверное как то кодом можно...
 
Да вообще так то глупо покупать зеннопостер и клянчить сниппеты на форуме, если вы сами не умеете кодить.
Зеннопостер, это в первую очередь софт для НЕ программистов, а следовательно "на кубиках" можно реализовать все что нужно
 
Всем спасибо за помощь и отзывы - сделал так :
ddcf593040e5.png
 
ой ой ой что то я не понял...
получаем количество строк в таблице 1...
берем строку из таблицы один
записываем её обратно))))
увеличиваем счетчик
сохраняем в фаил таблицу 1)))

Раз уж вы сохраняете таблицу 1 потом в фаил, значит она у вас не привязана жестко, и поэтому могу предложить такой вариант шаблона
http://joxi.ru/DBA0X1yFwlaJAy
 
не понимаю над чем насмешки?
давай попробую тебе расшифровать:
Взять строку : это взять СЛУЧАЙНУЮ строку из файла, поместить в переменные, удалить строку.
Добавить строку : Добавить в конец новую строку, из тех переменных которые брали.
и так делаем столько - сколько строк в файле.....
 
насмешка над тем что из таблицы 1 берется строка и в неё же записывается.
а еще вы оперируете понятием длинны таблицы, я сейчас поясню
Допустим у вас таблица из трех строк
вы берете первую строку, и записываете её на третье место
потом вы берете вторую строку(которая была только что третьей) и записываете её на третье место
потом вы берете третью строку, которая только что и двигали и снова её двигаете.

если же брать случайную строку - то понятие цикла длинной в таблицу мне не очень понятно

Формально ваша задача звучит как перемешать строки?
 
Формально ваша задача звучит как перемешать строки?
изначально задача была брать рандомно ВСЕ строки ...,
но алгоритм , где в начале строки перемешиваются , а затем берутся по порядку меня вполне устраивает....
p.s. данные у меня будут от 20 до 50 строк - так что перемешаются неплохо ....
 
я это к чему - если достаточно рандома - то есть же случайное взятие строки....
но сразу передупрежу, что случайное - подразумевает вероятность дублирования
 
оно не только дублирование подразумевает, а еще то что некоторые строки не возьмутся........
 
  • Оценить
Реакции: Valiksim
оно не только дублирование подразумевает, а еще то что некоторые строки не возьмутся........
Совершенно согласен с Bartenev. В програме явно недостаёт функционал перемешивания строк. "Взять случайную строку" не только не решает задачу, но, часто приводит к дублированию, а также к тому, что многие строки вообще никогда не будут взяты. Можно, конечно, использовать костыли, но, слишком много приходится делать костылями, а не прямым функционалом. Сейчас понадобилось тоже нечто подобное, и понял, что решений нету
 
Измените формат файла на .csv и границы возможностей увеличатся.
 
Последнее редактирование:

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)