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'Creamos el objeto ActiveX con el que podamos operar con archivos en el sistema.
Set objfso = createobject("scripting.filesystemobject")
'Definicion de variables
Dim linea
Dim token
Dim hora
Dim min
Dim seg
Dim ms
Dim time
Const constante = 0.0417083
'Creamos el objeto del archivo qpf
set qpfile=objfso.Opentextfile("C:\Users\Isra\Desktop\Nueva carpeta\10. QPFILE_NAME.qpf",1)
'Para evitar que agrege continuamente codigos de tiempo, por un descuido al ejecutar varias veces. Borramos el archivo, si existe
IF (objfso.FileExists("C:\Users\Isra\Desktop\Nueva carpeta\Chapters.txt")) THEN
objfso.Deletefile("C:\Users\Isra\Desktop\Nueva carpeta\Chapters.txt")
END IF
Do until qpfile.AtEndOfStream
linea=qpfile.readline()
'Filtrar linea, para quedarnos con el numero del frame
For each token in split(linea, " ")
Tratar(token)
'msgbox(hora & " hora. " & min & " min. " & seg & " seg. " & ms & " ms. ")
exit For
next
loop
Wscript.quit
'Subrutina para transformar numero entero en timestamp
Private Sub Tratar(Token)
'Establecemos criterio de comparación
calculo=token*constante
p_entera= Int(calculo)
Select Case true
Case p_entera >= 216000 'Mensaje de error
msgbox("Error. Un video no puede tener una duración continua igual a uno o más días.")
Case p_entera >= 3600 'Calculo de timecodes partiendo de horas
calculo=calculo/3600
hora=Int(calculo)
min=Int((calculo-hora)*60)
seg=Int((((calculo-hora)*60)-min)*60)
ms=Cint((((((calculo-hora)*60)-min)*60)-seg)*1000)
msgbox(hora & " hora. " & min & " min. " & seg & " seg. " & ms & " ms. ")
Case p_entera < 3600 AND p_entera >= 60 'Calculo de timecodes partiendo de minutos
calculo=calculo/60
'Establecemos para este caso, hora=0
hora=0
min=Int(calculo)
seg=Int((calculo-min)*60)
ms=CInt((((calculo-min)*60)-seg)*1000)
'msgbox(hora & " hora. " & min & " min. " & seg & " seg. " & ms & " ms. ")
Call Formatear(hora, min, seg, ms)
Case p_entera < 60 AND p_entera >= 0 'Calculo de timecodes partiendo de segundos
'Establecemos para este caso, hora=0
hora=0
min=0
seg=Int(calculo)
ms=CInt((((calculo)-seg))*1000)
msgbox(hora & " hora. " & min & " min. " & seg & " seg. " & ms & " ms. ")
Case ELSE
msgbox("Error. No pueden existir valores negativos.")
END SELECT
End Sub
Private Sub Formatear(hora, min, seg, ms)
'Damos formato al codigo de tiempo para que añada un cero si es necesario
SELECT CASE TRUE
CASE hora<10 AND ms<100 'Añadimos un cero delante para dar formato a la hora y los milisegundos.
timestamp="0"&Timeserial(hora,min,seg)&".0"&ms
Call Escribir(timestamp)
CASE hora<10 'Añadimos un cero delante para dar formato a la hora.
timestamp="0"&Timeserial(hora,min,seg)&"."&ms
Call Escribir(timestamp)
CASE ms<100 'Añadimos un cero delante para dar formato los milisegundos.
timestamp=Timeserial(hora,min,seg)&".0"&ms
Call Escribir(timestamp)
CASE ELSE
timestamp=Timeserial(hora,min,seg)&"."&ms
Call Escribir(timestamp)
END SELECT
end sub
Private Sub Escribir (timestamp)
'Escribimos nuestro archivo de capitulos.
Set codigo_tiempo=objfso.opentextfile("C:\Users\Isra\Desktop\Nueva carpeta\Chapters.txt", 8, true) 'creamos el archivo
codigo_tiempo.writeline timestamp
codigo_tiempo.close
end sub
La verdad pensaba que no me iba a salir, pero gracias a ti, aqui tengo mi primer codigo en vbs ^^