перемешать элементы массива. как ?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Сергей K.
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.04.2003 (Чт) 9:18

перемешать элементы массива. как ?

Сообщение Сергей K. » 17.04.2003 (Чт) 8:49

Вообщем сабж.
Т.е. есть массив, в качестве переменных которого string,
как их перемешать в произвольном порядке и слить в файл обратно.

Спасибо.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.04.2003 (Чт) 9:37

Ну допустим у тебя есть массив Text(1 to 100) As String
Тогда:
Код: Выделить всё
Dim I As Long, J As Long, N As Long, Z As String
Dim I1 As Long, I2 As Long
N = UBound(Text)
For I = 1 to N-1
  Randomize Timer
  J = I+1 + Fix(Rnd*(N-I))
  Z = Text(I)
  Text(I) = Text(J)
  Text(J) = Z
Next i
Lasciate ogni speranza, voi ch'entrate.

Сергей К..
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 11.04.2003 (Пт) 17:40

Сообщение Сергей К.. » 17.04.2003 (Чт) 22:08

Спасибо! работает.
Кстати а как можно объяснить, что уменя полученный файл (после всех
действий с ним) отличается от исходного на где-то 600 байтов.

Что делаю с файлом: вырезаю тектовые блоки черех InStr,
затем блоки помещаю в массив, потом массив перебираю в цикле
+ Fix(Rnd*(N-I)) "Твой пример", затем еще раз перебираю в циkле и через txt.WriteLine strArray(I) пишу в файл. Куда делись байты ????

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 18.04.2003 (Пт) 11:43

Сергей К.. писал(а):Кстати а как можно объяснить, что уменя полученный файл (после всех
действий с ним) отличается от исходного на где-то 600 байтов.

Сравни кол-во строк в исходном и полученном файлах. Скорее всего теряешь пустые строки. При большом объёме исходника потерять 300 строк (по два символа на сторку, vbCrLf = vbCr & vbLf = Chr$(13) & Chr$(10)) можно запросто. Ещё могут быть, точнее наоборот - отсутствовать, завершающие строку пробелы.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Хакер, Yandex-бот и гости: 81

    TopList