Crear archivos con nombres diferentes y aleatorios ??

Iniciado por Zion_Tm, 25 Enero 2007, 15:46 PM

0 Miembros y 1 Visitante están viendo este tema.

Zion_Tm

Buenas tardes, tengo el code para crear un archivo

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 ??

_Sergi_

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.

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:

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.

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.
Proyecto de Ingeniero