Crear un Joiner en VB

Iniciado por Hendrix, 24 Febrero 2006, 11:04 AM

0 Miembros y 2 Visitantes están viendo este tema.

Hendrix

Weno, mi intencion es esa... yo ya tengo algo avanzado, pero no se kontinuar....lo que tengo es esto:

4 textbox, dos para la ruta de los archivos y dos para poner su tamaño....

luego creo un exe "virgen" que lo que hace es albergar los dos archivos y luego ejekutarlos....lo que no se hacer es que el archivo virgen los konsiga separar y luego crear y ejekutar... me expliko:

[VIRGEN]
[programa1]        ----->  [Virgen] , [Programa1] , [Programa2]
[Programa2]

Esto es lo que no se hacer....

Weno, gracias de todas formas...

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Gorky

Es de lo mas facil. Supongo que solo te tengo que decir el algoritmo ya que por lo que dices sabes como va el manejo de archivos.

1.-Al crear el archivo con los tres sub-archivos debes escribir tambien el tamaño de [VIRGEN] y [programa1]. Esto lo haces con FileLen().
2.-Creas dos variables (una para cada archivo a separar) con el tamaño de cada programa. Esto lo haces con Space().
3.-Abres el archivo.
4.-Haces Get desde el tamaño de [VIRGEN] y te cogera el primer archivo.
5.-Vuelves a hacer Get. Ahora no definas desde donde ya que el puntero esta en ese lugar.
6.-Haces Put para cada archivo.
7.-Y para terminar ejecutamos con shell().

Creo que ha quedado mas que claro. Si en algo te pierdes pregunta de nuevo.

Hendrix

Thank's Gorky!!!! ya lo e pillado  ;) ;) ;)

en kuanto pueda lo pondre en praktika y si kieren les paso el kode final....

Salu2 a todos

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Hendrix

Muren, tengo esto:

Private Sub Form_Load()
Dim a As String * 9
Dim meu As String
Dim dos As String
Dim tres As String
Dim b As String
meu = Space(20480)
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
Seek (1), LOF(1) - 8
Get #1, , a
Close #1
b = Trim(a)
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
dos = Space(b)
Get #1, , meu
Get #1, , dos
Get #1, , tres
Close #1
Open "C:\dos.exe" For Binary As #1
Put #1, , dos
Close #1
Open "C:\tres.exe" For Binary As #1
Put #1, , tres
Close #1
End
End Sub


Y me da error. Les expliko el kode:

meu es el tamaño del archivo virgen. Dos es el tamaño del archivo 2 y tres del 3.

lo que ago aki:

Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
Seek (1), LOF(1) - 8
Get #1, , a
Close #1


es sacar el tamaño del archivo 2 que previamente le introduje (esto si me sale bien)...

Per luego kuando me krea los archivos el archivo Dos sale kon el tamaño korrekto, pero lo abro kon el HexWorkshop y me sale el numero de su tamaño y todo lo demas en blanko. Abro el archivo 3 y directamente no me pone nada (Todo en blanko)....

Donde esta el fallo????

Weno, Gracias de todas maneras...

Salu2 a todos

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Hendrix

Bien ,ya lo e resuelto...el archivo dos me lo crea correctamente i funciona, ahora lo que me falla es el archivo 3, no me pone nada dentro, me lo crea vacio....

Supongo que es porke no tiene volumen (Space)....Pero no se..

Vamos, que me keda pokito.... ;) ;) ;)

Muchas gracias!!!!!

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Gorky

Es eso. A tres no le has dado Space(). Hazlo y nos cuentas.

Hendrix

jejeje Gracias a todos!!! ahora si funciona!!!! le puse el Space y todo listo....

Gracias!!!!

Salu2 a todos

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Hendrix

Ahora me sale un error...lo que ago es que el user pueda elegir la extension. todo funciona, me krea el archivo kon la extension que se le introduce y todo correcto. pero llego a este punto y kreo que es aki que me da el error:

Shell ("C:\dos." & ext)
Shell ("C:\tres.exe")
End


Me sale este error:

Error '53' en tiempo de ejecucion:

No se ha encontrado el archivo

Pero al archivo me lo crea correctamente....incluso le e puesto un timer que pasados 2 segundos lo ejekute, pero tampoko funciona...

Alguien sabe que pasa??? porke el kode esta korrekto, no leveo ningun fallo... :-\ :-\ :-\

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Gorky

Para empezar asegurate que lo que esta en Shell() es exactamente el mismo nombre del archivo con el que hiciste Open(). Despues asegurate de haber cerrado el archivo antes de ejecutarlo. De todas maneras si pones un poco mas de codigo es mas facil detectar el error.

Hendrix

les dejo un poko mas de kode:

Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
Get #1, , meu
Get #1, , dos
Get #1, , tres
Close #1
Open "C:\dos." & ext For Binary As #1
Put #1, , dos
Close #1
Open "C:\tres.exe" For Binary As #1
Put #1, , tres
Close #1
Shell ("C:\dos." & ext)
Shell ("C:\tres.exe")
End
End Sub

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián