elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Scripting / Re: Ayuda en código vbscript en: 22 Enero 2016, 22:37 pm
Buenas tardes estimados:

Logré solucionar el problema con este código:

Código
  1. arreglo = Array(Null, "0.03125", "0.0625", "0.09375", "0.125", "0.15625")
  2. arreglotxt = Array(Null, ".\Edificio2DA1.dat", ".\Edificio2DA2.dat", ".\Edificio2DA3.dat", ".\Edificio2DA4.dat", ".\Edificio2DA5.dat")
  3. counter=0
  4.  
  5. Set FSO   = CreateObject("Scripting.FileSystemObject")
  6. Set Files = FSO.GetFolder(".\").Files
  7.  
  8. For counter=1 to 5
  9.  
  10. TFile=arreglotxt(counter)
  11. s=arreglo(counter)'toma el string correspondiente a la posición "counter" del "arreglo".
  12.  
  13. nreemplazo=reemplazo(TFile, s) 'resultado de la función de reemplazo, donde si encuentra un "string=0.03125" hace el correspondiente cambio con el "string=s".
  14. Set NewFile  =FSO.CreateTextFile(".\"&"Edificio2DA"&counter&".dat", True) 'crea un archivo nuevo con el mismo nombre del archivo "File"
  15. NewFile.Write nreemplazo 'Sobreescribe el resultado de la función de reemplazo en el nuevo File creado en el paso anterior.
  16. NewFile.Close
  17.  
  18. Next
  19.  
  20. function reemplazo(TextFile, num)
  21.  
  22. TextContent = CreateObject("Scripting.FileSystemObject"). _
  23.  OpenTextFile(TextFile, 1, False).ReadAll
  24.  
  25. Set objRegEx = CreateObject("VBScript.RegExp")
  26. objRegEx.Global  = True
  27. objRegEx.Pattern  = "0.03125"  
  28. Reemplazo = objRegEx.Replace(TextContent, num)
  29.  
  30. end function

Si alguien puede optimizarlo mejor, sería genial,

Saludos!
2  Programación / Scripting / Re: Ayuda en código vbscript en: 22 Enero 2016, 20:35 pm
Buenas tardes:

He estado intentando resolver el problema de reemplazar el string="0.03125" dentro de cada "archivo.dat" con cada contenido del arreglo=Array(Null, "0.03125", "0.0625", "0.09375", "0.125", "0.15625"). Por ejemplo:

1.- En el archivo: Edificio2DA1 buscar dentro de este un string="0.03125" y reemplazar por "0.03125".
2.- En el archivo: Edificio2DA2 buscar dentro de este un string="0.03125" y reemplazar por "0.0625"
3.- En el archivo: Edificio2DA3 buscar dentro de este un string="0.03125" y reemplazar por "0.09375"
4.- En el archivo: Edificio2DA4 buscar dentro de este un string="0.03125" y reemplazar por "0.125"
5.- En el archivo: Edificio2DA5 buscar dentro de este un string="0.03125" y reemplazar por "0.15625"

Me ha funcionado solo para un archivo, pero luego cuando hice las modificaciones como por ejemplo agregarle el bucle, me arroja el error: Ruta de acceso no encontrada, al momento de ejecutar.

El código que trabajé es el siguiente, le agregué comentarios:

Código
  1. arreglo = Array(Null, "0.03125", "0.0625", "0.09375", "0.125", "0.15625")
  2. counter=0
  3.  
  4. Set FSO   = CreateObject("Scripting.FileSystemObject")
  5. Set Files = FSO.GetFolder(".\").Files
  6.  
  7. For Each File in Files
  8.  
  9. Set TFile = FSO.GetFile(".\"&File.name) 'Da el path del archivo File, ejm:C:\CarpetaP\CarpetaS\archivo.dat
  10.  
  11. if Lcase(FSO.GetExtensionName(File))=Lcase("dat") then ' Condicional solo para  hacer la búsqueda de archivos con extensión.dat
  12.  
  13. counter=counter+1 'contador aumenta cada vez que lee un archivo File
  14. s=arreglo(counter)'toma el string correspondiente a la posición "counter" del "arreglo".
  15.  
  16. nreemplazo=reemplazo(TFile, s) 'resultado de la función de reemplazo, donde si encuentra un "string=0.03125" hace el correspondiente cambio con el "string=s".
  17. Set NewFile  =FSO.CreateTextFile(".\"&"Edificio2DA"&counter&".dat", True) 'crea un archivo nuevo con el mismo nombre del archivo "File"
  18. NewFile.Write nreemplazo 'Sobreescribe el resultado de la función de reemplazo en el nuevo File creado en el paso anterior.
  19. NewFile.Close
  20.  
  21. end if
  22. Next
  23.  
  24. function reemplazo(TextFile, num)
  25.  
  26. TextContent = CreateObject("Scripting.FileSystemObject"). _
  27.  OpenTextFile(TextFile, 1, False).ReadAll
  28.  
  29. Set objRegEx = CreateObject("VBScript.RegExp")
  30. objRegEx.Global  = True
  31. objRegEx.Pattern  = "0.03125"  
  32. Reemplazo = objRegEx.Replace(TextContent, num)
  33.  
  34. end function

Como siempre les agradezco sus comenterios y sugerencias,

saludos!
3  Programación / Scripting / Re: Ayuda en código vbscript en: 22 Enero 2016, 17:54 pm

Gracias _TTFH_3500, me quedó claro.

Les agradecería me puedan sugerir que podría hacer para resolver el problema que plantee en:

, saludos!

4  Programación / Scripting / Re: Ayuda en código vbscript en: 22 Enero 2016, 16:44 pm
Muchas gracias _TTFH_3500, me queda la duda en que no se pueda utilizar el "set" dentro de una iteración, por ejemplo si quiero sobreescribir cada archivo.dat de una carpeta reemplazando su contenido cada vez que pasa a leer el siguiente archivo.dat, estaría forzado a usar "For Each File in Files end" y la declaración "set", por ejemplo si quiero salvar el resultado de la función "nreemplazo=reemplazo(file,string)" necesito declarar "set NewFile =FSO.CreateTextFile("./ archivo.dat", true)" y luego "NewFile.Write nreemplazo" para poder sobreescribir en el "archivo.dat".

Estuve intentando hacer esto pero no me funciona, donde he declarado un array que contenga los números objetivos que van a reemplazar "0.03125" cada vez que lo encuentre dentro de los archivos.dat  y este resultado se sobrescriba en el mismo archivo.dat.

Código
  1. arreglo = Array(Null, 0.03125, 0.0625, 0.09375, 0.125, 0.15625)
  2. counter=0
  3.  
  4. Set FSO   = CreateObject("Scripting.FileSystemObject")
  5. Set Files = FSO.GetFolder(".\").Files
  6.  
  7. For Each File in Files
  8. Set Tfile=FSO.getfile(File)
  9.  
  10. counter=counter+1
  11. s=arreglo(counter)
  12.  
  13. nreemplazo=reemplazo(Tfile, s)
  14.  
  15. Set NewFile  =FSO.CreateTextFile(".\"&"Edificio2DA"&counter&".dat", True)
  16. NewFile.Write nreemplazo
  17. NewFile.Close
  18. Next
  19.  
  20. function reemplazo(TextFile, num)
  21.  
  22. TextContent = CreateObject("Scripting.FileSystemObject"). _
  23.  OpenTextFile(TextFile, 1, False).ReadAll
  24.  
  25. Set objRegEx = CreateObject("VBScript.RegExp")
  26. objRegEx.Global  = True
  27. objRegEx.Pattern  = "0.03125"  
  28. Reemplazo = objRegEx.Replace(TextContent, num)
  29.  
  30. end function

Gracias de antemano por sus comentarios y sugerencias
, saludos!
5  Programación / Scripting / Ayuda en código vbscript en: 22 Enero 2016, 00:11 am
Buenas noches estimados;

El propósito de mi código es que genere 5 copias de un archivo .dat indexados del 1 al 5, el cual les muestro a continuación:

Código
  1. Dim counter as integer
  2. Dim objfso, archivotexto, s, writefile
  3. Dim file_Name as string
  4.  
  5. counter = 1
  6.  
  7. Do until counter =5
  8.  
  9. set objfso = createobject("scripting.filesystemobject")
  10. Set archivotexto = objfso.opentextfile(".\Edificio2DA.dat",1)
  11. s = archivotexto.readline
  12.  
  13. file_Name=".\"&counter&".dat"
  14. set writefile = objfso.CreateTextFilefile_Name, True)
  15. writefile.Write("s")
  16. writefile.Close
  17.  
  18. set objfso=nothing
  19. counter=counter+1
  20.  
  21. Loop


El problema es que al ejecutar me sale un error de compilación, les agradezco sus comentarios y sugerencias.

, saludos
6  Programación / Scripting / Generar varios archivos.txt cambiando su contenido a partir de otro archivo .dat en: 20 Enero 2016, 20:48 pm
Buenas tardes estimados:

Estoy trabajando para generar archivos txt. en base a un archivo txt de origen. Pero que en cada archivo txt generado se cambie el "string"="X240.7" por un contador que aumenta cada vez que se genera un archivo txt nuevo. Este es el código que trabajé;


Código
  1. @Echo OFF & SetLocal EnableDelayedExpansion
  2. set "ST=X240.7"
  3. set "fileCount=2"
  4. set "i=1"
  5. For /L %%i in (1,1,15) do(
  6.  
  7. set "inputFile=.\Archivo!i!.dat"
  8.  
  9. For /F "UseBackQ Tokens=* Delims=" %%a In ("%inputFile%") Do (
  10. set "line=%%a"
  11. set "VER=i+1"
  12. set line=!line:%ST%=%VER%!
  13.  
  14. echo.!line! >>".\Archivo!fileCount!.dat"
  15. If  /I "!line:~-3!" EQU "FIN" (
  16. Set /A "fileCount+=1"
  17. )
  18. )
  19. )
  20. Pause&Exit /B 0

El contenido del archivo txt de origen es:


ZZZ                                               
 X0.0  Y0.0  Z30.0                             
M601                                           
M2
G0 Z-100.0
N1  G1 X240.1 Y324.9 Z3.6 F2
N2  G1 X239.5 Y325.5 Z4.9 F2
N3  G1 X238.8 Y326.1 Z4.9 F2
N4  G1 X238.2 Y326.8 Z2.4 F2
N5  G1 X237.6 Y327.4 Z1.4 F2
N6  G1 X247.5 Y317.5 F2
N490  G1 X240.7 Y324.3 Z0.5 F2
N1  G1 X240.1 Y324.9 Z3.6 F2
N2  G1 X239.5 Y325.5 Z4.9 F2
N3  G1 X238.8 Y326.1 Z4.9 F2
N4  G1 X238.2 Y326.8 Z2.4 F2
N5  G1 X237.6 Y327.4 Z1.4 F2
N6  G1 X237.0 Y328.0 Z0.9 F2
N490  G1 X236.4 Y328.6 Z0.7 F2
N1 G1 X235.7 Y329.2 Z3.3 F2
N2  G1 X235.1 Y329.8 Z4.1 F2
N3  G1 X234.5 Y330.5 Z0.8 F2
N4  G1 X233.9 Y331.1 Z1.7 F2
N5  G1 X233.3 Y331.7 Z4.9 F2
N6  G1 X232.6 Y332.3 Z3.7 F2
N490  G1 X232.0 Y332.9 Z1.1 F2
N1  G1 X231.4 Y333.6 Z0.6 F2
N2  G1 X230.8 Y334.2 Z0.6 F2
N3  G1 X230.2 Y334.8 Z4.2 F2
N4  G1 X229.6 Y335.4 Z5.0 F2
N5  G1 X228.9 Y336.0 Z5.0 F2
N6  G1 X228.3 Y336.7 Z5.0 F2
N490  G1 X226.5 Y338.5 Z1.0 F2
G0 Z-100.0
G0 Y0
/*FIN

Solo logré generar un archivo txt, les agradezco sus comentarios y sugerencias.

, saludos
7  Programación / Scripting / Manipular íconos de la barra de herramientas de un programa en: 19 Enero 2016, 15:13 pm
Buenos días estimados:

Tengo un programa comercial (CANNY3D) con interfez gráfica que abre exclusivamente archivos .txt y .dat y procesa los datos con solo presionar un ícono de la barra de herramientas y  luego es necesario presionar otro ícono para exportar los resultados del procesamiento de datos a archivos .txt. El problema es que tengo que hacer esto unas 1800 veces. Creo que con los post que leí de este foro puedo generar los 1800 archivos .dat para iniciar a ejecutar el programa, sin embargo como puedo automatizar la manipulación de los íconos del programa para finalmente obtener los resultados que deseo, gracias de antemano por sus comentarios y sugerencias.  :D

Nota: EL CANNY3D  es un programa que realiza análisis dinámico no lineal de estructuras de hormigón armado.

Saludos


Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines