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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  QPF to Chapter file
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] Ir Abajo Respuesta Imprimir
Autor Tema: QPF to Chapter file  (Leído 8,652 veces)
ovichan

Desconectado Desconectado

Mensajes: 81


Ver Perfil
Re: QPF to Chapter file
« Respuesta #20 en: 13 Julio 2013, 04:05 am »

Vale, ya lo probaré. Y muchas gracias, pero no me lo tengas en cuenta que estoy ofuscado en esto y se me pira la olla. Perdona si te ha molestado.  ;-)


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
Re: QPF to Chapter file
« Respuesta #21 en: 13 Julio 2013, 04:10 am »

No me molesta aunque si te fijas esto más bien es un tutorial express, lo del cint, el for y los "tokens", y etc no te habría costado nada encontrarlo en Google xD, de hecho yo estaba usando el Split como si fuese un método porque estoy acostumbrado a eso en el resto d elenguajes, y tuve que Googlear para ver que en VBS Split es una función y por lo tanto se escribe delante.

un saludo.


En línea

ovichan

Desconectado Desconectado

Mensajes: 81


Ver Perfil
Re: QPF to Chapter file
« Respuesta #22 en: 13 Julio 2013, 04:14 am »

Pues te aseguro que he estado buscando en google de hecho me he bajado varios manuales, eso si, todo orientado a html.

Estoy mirando la documentacion aqui http://www.w3schools.com/vbscript/func_round.asp

Tambien en microsoft y me baje el chw 6.5, pero no se pq narices no me muestra la información, pero vamos que te aseguro que he estado buscando en google. Pero no te preocupes, no preguntaré tanto.

Y gracias again  ::)

EDITO: Lo he testeado y había un fallito por el cual no ejecutaba el código.

Lo correcto:
Código
  1. Select Case true

Imagino que todo tiene que ver al usar comparadores logicos en los casos del select. Un ratito me ha llevado encontrarlo T_T  http://computer-programming-forum.com/59-vbscript/08b7100c477ec503.htm
« Última modificación: 13 Julio 2013, 04:41 am por ovichan » En línea

ovichan

Desconectado Desconectado

Mensajes: 81


Ver Perfil
Re: QPF to Chapter file
« Respuesta #23 en: 13 Julio 2013, 06:17 am »

Bueno, pues nada muchas gracias Elecktro, ya lo he terminado. El código es totalmente funcional, unicamente me gustaria saber un detallito. ¿Es posible hacer como en BAT, que del directorio actual del archivo vbs, tome los en cuenta el archivos *.qpf? Es para automatizar un poco más, y no tener que estar cambiando cada vez por tres la ruta de acceso. Ya sabes algo como: %~dp0*.qpf

Código
  1. 'Creamos el objeto ActiveX con el que podamos operar con archivos en el sistema.
  2. Set objfso = createobject("scripting.filesystemobject")
  3.  
  4. 'Definicion de variables
  5. Dim linea
  6. Dim token
  7. Dim hora
  8. Dim min
  9. Dim seg
  10. Dim ms
  11. Dim time
  12. Const constante = 0.0417083
  13.  
  14. 'Creamos el objeto del archivo qpf
  15. set qpfile=objfso.Opentextfile("C:\Users\Isra\Desktop\Nueva carpeta\10. QPFILE_NAME.qpf",1)
  16.  
  17. 'Para evitar que agrege continuamente codigos de tiempo, por un descuido al ejecutar varias veces. Borramos el archivo, si existe
  18. IF (objfso.FileExists("C:\Users\Isra\Desktop\Nueva carpeta\Chapters.txt"))  THEN
  19. objfso.Deletefile("C:\Users\Isra\Desktop\Nueva carpeta\Chapters.txt")
  20. END IF
  21.  
  22. Do until qpfile.AtEndOfStream
  23.  
  24. linea=qpfile.readline()
  25.  
  26. 'Filtrar linea, para quedarnos con el numero del frame
  27. For each token in split(linea, " ")
  28.     Tratar(token)
  29. 'msgbox(hora & " hora. " & min & " min. " & seg & " seg. " & ms & " ms. ")
  30. exit For
  31. next
  32.  
  33. loop
  34.  
  35. Wscript.quit
  36.  
  37. 'Subrutina para transformar numero entero en timestamp
  38. Private Sub Tratar(Token)
  39.  
  40. 'Establecemos criterio de comparación
  41. calculo=token*constante
  42. p_entera= Int(calculo)
  43.  
  44. Select Case true
  45.  
  46. Case p_entera >= 216000 'Mensaje de error
  47. msgbox("Error. Un video no puede tener una duración continua igual a uno o más días.")
  48.  
  49. Case p_entera >= 3600 'Calculo de timecodes partiendo de horas
  50. calculo=calculo/3600
  51. hora=Int(calculo)
  52. min=Int((calculo-hora)*60)
  53. seg=Int((((calculo-hora)*60)-min)*60)
  54. ms=Cint((((((calculo-hora)*60)-min)*60)-seg)*1000)
  55. msgbox(hora & " hora. " & min & " min. " & seg & " seg. " & ms & " ms. ")
  56.  
  57. Case p_entera < 3600 AND p_entera >= 60 'Calculo de timecodes partiendo de minutos
  58. calculo=calculo/60
  59. 'Establecemos para este caso, hora=0
  60. hora=0
  61. min=Int(calculo)
  62. seg=Int((calculo-min)*60)
  63. ms=CInt((((calculo-min)*60)-seg)*1000)
  64. 'msgbox(hora & " hora. " & min & " min. " & seg & " seg. " & ms & " ms. ")
  65. Call Formatear(hora, min, seg, ms)
  66.  
  67. Case p_entera < 60 AND p_entera >= 0 'Calculo de timecodes partiendo de segundos
  68. 'Establecemos para este caso, hora=0
  69. hora=0
  70. min=0
  71. seg=Int(calculo)
  72. ms=CInt((((calculo)-seg))*1000)
  73. msgbox(hora & " hora. " & min & " min. " & seg & " seg. " & ms & " ms. ")
  74.  
  75. Case ELSE
  76. msgbox("Error. No pueden existir valores negativos.")
  77.  
  78. END SELECT
  79. End Sub
  80.  
  81. Private Sub Formatear(hora, min, seg, ms)
  82. 'Damos formato al codigo de tiempo para que añada un cero si es necesario
  83.  
  84. SELECT CASE TRUE
  85.  
  86. CASE hora<10 AND ms<100 'Añadimos un cero delante para dar formato a la hora y los milisegundos.
  87. timestamp="0"&Timeserial(hora,min,seg)&".0"&ms
  88. Call Escribir(timestamp)
  89. CASE hora<10 'Añadimos un cero delante para dar formato a la hora.
  90. timestamp="0"&Timeserial(hora,min,seg)&"."&ms
  91. Call Escribir(timestamp)
  92. CASE ms<100 'Añadimos un cero delante para dar formato los milisegundos.
  93. timestamp=Timeserial(hora,min,seg)&".0"&ms
  94. Call Escribir(timestamp)
  95. CASE ELSE
  96. timestamp=Timeserial(hora,min,seg)&"."&ms
  97. Call Escribir(timestamp)
  98. END SELECT
  99.  
  100.  
  101. end sub
  102.  
  103. Private Sub Escribir (timestamp)
  104.  
  105. 'Escribimos nuestro archivo de capitulos.
  106. Set codigo_tiempo=objfso.opentextfile("C:\Users\Isra\Desktop\Nueva carpeta\Chapters.txt", 8, true) 'creamos el archivo
  107. codigo_tiempo.writeline timestamp
  108. codigo_tiempo.close
  109.  
  110. end sub
  111.  
  112.  
  113.  
  114.  

La verdad pensaba que no me iba a salir, pero gracias a ti, aqui tengo mi primer codigo en vbs ^^  :rolleyes:
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
Re: QPF to Chapter file
« Respuesta #24 en: 13 Julio 2013, 08:57 am »

Código
  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2.  
  3. For Each File In FSO.GetFolder(".\").Files
  4. If LCase(FSO.GetExtensionName(File.Name)) = "qpf" then
  5. Wscript.echo(File.Name)
  6. end if
  7. Next
En línea

ovichan

Desconectado Desconectado

Mensajes: 81


Ver Perfil
Re: QPF to Chapter file
« Respuesta #25 en: 13 Julio 2013, 15:09 pm »

Muchas gracias.
En línea

Páginas: 1 2 [3] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
file cue
Juegos y Consolas
black fox 3 2,216 Último mensaje 22 Febrero 2004, 22:01 pm
por Songoku
Max Payne : part 3 chapter 5
Juegos y Consolas
vicecity 2 1,866 Último mensaje 5 Marzo 2004, 01:48 am
por vicecity
Problemas con el Objeto File - Files del Objeto FSO (File System Object)
Programación Visual Basic
cero_kill_byte 1 2,609 Último mensaje 19 Octubre 2005, 02:36 am
por la caca
FABLE-THE LOST CHAPTER
Juegos y Consolas
shek 1 1,460 Último mensaje 1 Abril 2006, 14:49 pm
por panaka
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines