Генератор случайного имени файла (одинаковых быть не должно! никогда!). Идеи? - VB

Узнай цену своей работы

Формулировка задачи:

Программа генерирует файлы и кладет их в определенную папку.
Имена файлов не должны пересекаться, следить че там есть было будет, хранить число и увеличивать на 1 -неохота.
Свой файл, свои дела.
Разумно привязываться к времени.
типа ггммддччммсс
вероятность попасть 2 раза в одну секунду есть.
ну ладно ггммддччммсс+миллисекунды
ну, при каком-то маловероятном случае можно попасть и в миллисекунду, ну мало-ли, какой-то левый процесс тормознул дела на компьютере и два файла свалились одновременно (или скорее тот "кто файлы делает" "быстро сработал в 2 потока").
Можно добавить еще случайное число скажем от 0 до 1000 (на vb кстати такой ф-ции не знаю, насколько помню Rnd мается одной и той же дурью).
Ну и наконец как-то посолидней файлы обозвать надо.
Типа
3B54B0B2
3B54AF7D
3B2F1681
39BC5A37
390F9B17
Как бы все это дело грамотно об Hex ить ?

Решение задачи: «Генератор случайного имени файла (одинаковых быть не должно! никогда!). Идеи?»

textual
Листинг программы
<font color="#00AA00">' ...</font>
<font color="blue">Dim</font> addr <font color="blue">As</font> <font color="blue">Long</font>
<font color="blue">Dim</font> b(<font color="darkblue"><b>1</b></font> <font color="blue">To</font> <font color="darkblue"><b>4</b></font>) <font color="blue">As</font> <font color="blue">Long</font> <font color="#00AA00">' будет меньше шагов у цикла For</font>
<font color="blue">Dim</font> i <font color="blue">As</font> <font color="blue">Integer</font>
<font color="blue">Dim</font> s <font color="blue">As</font> <font color="blue">String</font>
<font color="blue">Dim</font> dt <font color="blue">As</font> SYSTEMTIME

<font color="#00AA00">' ....</font>

s = <font color="teal">""</font>
GetLocalTime dt
addr = VarPtr(dt)
CopyMemory b(<font color="darkblue"><b>1</b></font>), <font color="blue">ByVal</font> addr, <font color="darkblue"><b>16</b></font>
<font color="blue">For</font> i = <font color="darkblue"><b>1</b></font> <font color="blue">To</font> <font color="darkblue"><b>4</b></font>
    s = s & Hex(b(i))
    <font color="#00AA00">' s = s & Right(<font color="teal">"0000000"</font> & Hex(b(i)), 8) ' <font color="teal">"выравнивание"</font></font>
<font color="blue">Next</font> i

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.357 из 5
Похожие ответы