Trocear archivos
Saludos gurus, delphi.
tengo el siguiente asunto.. tengo archivos. de todo tipo, con delphi. e indy 9 que viene con delphi 7 o con la que viene con delphi 2007. la casi mas nueva version estable de indy. que soporta mas de 1 giga en su transferencias. entonces. quiero enviar archivos, y segun hacer mas rapido, y eficiente. estilo p2p, emule, torrent. y aqui mi problema. presupongo que tengo que dividir el archivo a enviar en partes de tamaño constante. digamos 1,4 mb, como un disquete. si son archivos grandes. o en un tamaño proporcional al archivo. y enviar una por una, y colocarlas en una carpeta TEMP como archivos temporales y arreglar el unirlas. y el resultado ponerlo en la carpeta incoming. del lado del cliente. creo asi le hacen los p2p. pero...mis dudas son: ¿como le hago para dividir un archivo,? ¿como enviarlo, con indy? ¿acaso para dividirlo lo tengo que leer, todo? aunque pese 50 megas. se me hace mucho uso de la pc, para un archivo medianamente grande, o si es de 2 gigas, o hasta 5, gigas. leerlo por cada solicitud, y enviarlo. Se puedo solo cortar del archivo, las partes que se necesiten enviar, digamos faltan enviar las partes 5, 9, 29, 40, solo obtener esas partes, sin leer el archivo a un stream, cada vez que se soliciten partes del archivo despues de que ya se sabe cuantas partes constantes un archivo de cierto tamaño se puede dividir el escenario es tipo p2p,, yo (Z) no tengo el archivo completo y hay dos que si lo tienen completo o tienen las partes que a mi me faltan estos son (A) y (B) entonces les pido, que me manden (A) las partes 5 y 9 , (B) las partes 29 y 40. Quiero que ellos no tiengan que leer seguido el archivo de 50 megas por que hay 20 como yo que quieren otras partes, que ellos tienen. ademas de que hay otros archivos que comparten, segun se los van pidiendo y no quiero que ellos sobre usen su pc, mejor dicho que la aplicacion consuma pocos recursos al enviar partes de muchos archivos que muchos les va a estar solicitando. Por eso la solucion se me hace mejor es la de obtener el trozo de archivo sin cargar el archivo a un stream, solo cortarlo o copiar , tomar esa parte de archivo ya sea a memoria (son unos 1 a 3 megas) y enviarlo. a quien lo solicita. Ayuda gurus. no desvirtuadores. |
Cita:
Saludos. |
Ni hablar!
Ni como ayudarte!!! |
Presupongo que tu lo que quieres son las partes.Y continuando con el presuponio, presupongo que eso no es muy legal.
Desvirtuadores SI, pero muy derechos.;) Un Saludo. |
Cita:
Ademas los gurus estan durmiendo, solo quedamos los desvirtuadores, si quieres te echamos una ayudadita... |
Cita:
|
Cita:
|
Cita:
|
Bueno continuando con el presuponio y analizando profundamente este hilo creo que los locos estan sueltos.
PD:Este hilo deveria ser relocalizado a La Taberna. Un Saludo. |
Cita:
|
Cita:
es para mi. uso de asuntos personales. repartir, informacion p2p, de mis archivos, mis videos. mi musica. es mio. de mi.. YO, el propietario legitimo, que solo uso una camara un audifono, para hacer los archivos. Mi software, mis, archivos ISO, de mis cosas, de mis documentos, de mis respaldos. Es para hacer mi sistema de respaldos, descentralizados. entiendase. Mis cosas. un respaldo de ellas a las diferentes pcs, o lugares, donde este, solo el software, por el cual, pedi su asistencia o ayuda. Una vez lista, la aclaracion, que es innecesaria. [Manden este tema, a la taberna.] ya se lleno de comentarios que no sirven., exepto los mios claro. Mejor eliminenlo. |
Vamos hombre, no seas así, mira conseguí este link donde hay un free source de un programa p2p hecho en delphi tal vez te ayude.
Saludos |
..
pues, que ese codigo ya lo estoy revisando. Por que no tengo certeza de que compile. ya lo he intentado, muchas veces. y a cada ocasión da error de supernodo. y otras extrañas faltas. total no va ese codigo.. |
Cita:
Un Saludo. |
El código de Ares debería funcionar si lo bajas del lugar correcto. Es más, el programa está funcionando correctamente. Hay que leerse la documentación y tener muy presente las directivas de tipo DEFINE.
En cuanto a la pregunta, échale un vistazo a procedimientos del tipo: Seek, Read,... y demás procedimientos de acceso a ficheros. Puedes probar algo así:
Para enviarlos sí que puedes utilizar Streams; Hace no muchos días estuvimos hablando de cómo enviar cosas a travñés de Indy, e incluso Seoane colocó código para hacerlo (no más de 2 o 3 semanas -el hilo hablaba de enciar imágenes-). Junto con el trozo que envías deberías enviar información que te permita identificar o ubicar posteriormente ese trozo. Ya sea posicion de inicio y tamaño, algun identificador del número de la parte, tamaño y número de parte,... (hay muchas posibiliodades). |
Cita:
Pero en parte ha sido culpa tuya; Poner esta coletilla es poner gritar con un altavoz que te "apedreen"... :D:D:D Cita:
|
si fuera la seccion de la taberna.
pero esto no es esa seccion. |
Hola,
Ya recordaba haber visto algo parecido a lo que necesitas, justo aqui, la verdad lo probe hace tiempo pero durante el proceso de unir el archivo tuvo algunos problemas que a final de cuenta no quise seguir probando, espero te sirva :) |
felipe88
Grcias revisando.. el codigo |
La franja horaria es GMT +2. Ahora son las 07:41:35. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi