Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Zion_Tm en 25 Enero 2007, 15:46 pm



Título: Crear archivos con nombres diferentes y aleatorios ??
Publicado por: Zion_Tm en 25 Enero 2007, 15:46 pm
Buenas tardes, tengo el code para crear un archivo

Código:
Set v1 = CreateObject("Scripting.FileSystemObject")
Set v2 = v1.CreateTextFile("C:\MiLog.log")
v2.WriteLine "####################################"
v2.WriteLine "                                    "
v2.WriteLine "LO QUE ESCRIBAS AQUI"
v2.WriteLine "SE IMPRIME DENTRO DEL ARCHIVO TXT"
v2.WriteLine "-----------FIN-------"
v2.Close


Esto crea 1 archivo , pero quiero crear infinitos archivos por ej adentro de C:\WINDOWS
Intente meter el code dentro de un timer pero no se puede crear  nuevos archivos con el mismo nombre.
Se me ocurrio la funcion Rnd ( Randomize ) , para que cambie el nombre del archivo a guardarse y asi cada vez.
Alguien sabe como implementarlo ??


Título: Re: Crear archivos con nombres diferentes y aleatorios ??
Publicado por: _Sergi_ en 25 Enero 2007, 16:39 pm
Lo primero que tienes que hacer es meter tu code dentro de un subprograma, para poderle pasar como parámetro el nombre de archivo a crear.

Código:
Public Sub CrearArchivo(Nombre as string)
Set v1 = CreateObject("Scripting.FileSystemObject")
Set v2 = v1.CreateTextFile("C:\" & Nombre & ".txt")
v2.WriteLine "####################################"
v2.WriteLine "                                    "
v2.WriteLine "LO QUE ESCRIBAS AQUI"
v2.WriteLine "SE IMPRIME DENTRO DEL ARCHIVO TXT"
v2.WriteLine "-----------FIN-------"
v2.Close
End Sub

Lo segundo, es hacer un código que genere cadenas de caracteres aleatorias. Simplemente basta con crear un numero aleatorio utilizando Rnd, y a partir de una cadena de caracteres llena de letras, coja sólo una:

Código:
Public Function TextoAleatorio(longitud As Integer)
abc = "yvwxyzabcdefghijklmnopqrstyvwxyz"
For i = 1 To longitud
Randomize
r = Int((Rnd * 61) + 1)
TextoAleatorio = TextoAleatorio & Mid(abc, r, 1)
Next i
End Function

Luego, en tu programa solo tendrías que llamar a la función CrearArchivo, pásandole como parámetro el texto aleatorio, todas las veces que quieras.

Con esto haces 1000 archivos con nombres distintos.

Código:
for n = 0 to 1000
CrearArchivo NombreAleatorio(8)
next n

Un saludo

P.D: Si hay algun error en el codigo lo siento, lo he hecho sin usar el IDE de Visual Basic.