Другие языки программирования и технологии

VB.NET Генерация случайных слов

Сабж.
Нужна программа для создания txt файла с названием типа "bfdhFhsdko". Самое важное условие - нельзя чтобы название файлов хоть раз совпадало. (Программа создает файл, закрывается, пользователь снова открывает, создается файл, закрывается и т. д.) .
В голову не приходит как это можно сделать.
Бери стандартный генератор случайных чисел и интерпретируй числа как набор четвертьбайтов (диад) - кодов символов. Так как символы могут быть недопустимые, к каждому четвертьбайту предварительно прибавь 48. Генератор псевдослучайных чисел реализован мультипликативным конгрэнтным методом и гарантирует тебе неповторяющуюся последовательность. Только, конечно, никаких остатков от деления, что используется для получения псевдослучайных чисел меньшего диапазона - остатки могут повторяться, сами числа - только после прохождения всего диапазона возможных значений.
Александр Колпаков
Александр Колпаков
81 499
Лучший ответ
функция генерирует случайную строку заданной длинны

Private Function GenerateKey(ByVal bEnglish As Boolean, _
ByVal bNumbers As Boolean, _
ByVal bSymbols As Boolean, _
ByVal iLength As Integer) As String
Dim sSymbols(3) As String, iResult As String
Dim iIndex As Integer, iRandom As Integer

sSymbols(0) = "qwertyuiopasdfghjklzxcvbnm"
sSymbols(1) = "QWERTYUIOPASDFGHJKLZXCVBNM"
sSymbols(2) = "1234567890"
sSymbols(3) = "~`!@#$%^&*()_-+=|\{[}]:;""'<,>.?/"

For iIndex = 1 To iLength
Do
iRandom = Int(Rnd() * 4)
Loop While (Not bEnglish And (iRandom = 0 Or iRandom = 1)) Or (Not bNumbers And iRandom = 2) Or (Not bSymbols And iRandom = 3)
iResult = iResult & Mid(sSymbols(iRandom), Int(Rnd() * Len(sSymbols(iRandom))) + 1, 1)
Next

GenerateKey = iResult
End Function

Dim fFile As Short
fFile = FreeFile
Dim strFile as String
strFile = GenerateKey(True, True, False, 20) + ".txt"

FileOpen(fFile, strFile, OpenMode.Output)
FileClose(fFile)
Андрей Конев
Андрей Конев
8 777
Для начала пиши метод создания txt файла.
В этом методе тебе как не крути придется столкнутся с именем будущего файла которое нужно будет задавать в ручную или же поставить рандомное имя. Если нужно уникальное имя используй
Guid...
Pessobaka Kotsobaka
Pessobaka Kotsobaka
3 195