PDA

Ver la Versión Completa : de forma aleatoria Trocear archivos y pegarlos


JXJ
04-04-2009, 21:45:33
¿Algun ejemplo de como trozar un archivo
y poder enviarlo y armarlo correctamente
por partes de forma no continua.?

ya saben. como los programas P2P

tenemos el archivo origen de 23 megas.
el plan es dividilos para su envio en partes de 1mega

y enviar las partes segun lo soliciten

si piden la primer parte se lee solo desde el el principio hasta
tener 1 mega

si piden la parte 10 se lee de los 9216 kb hasta los 10240 kb
que serian lo que mide el trozo 10 de 10 megas
y si recibo 2 o mas peticiones de la parte 10 aprovechar que ya la tengo
separada del archivo de origen y mantenerla en memoria y solo hacer
un tipo de brodascting.

Mi problema es que no se como
tomar una parte de un archivo la que yo elija .
la 1 . la 10, la parte 23. y
poder construir ese archivo parte por parte, sin que se enga que seguir
un orden ..

parte1 + parte2 + parte3, ... + parte final.= archivo

sino ..

parte4 + parte2 + parte final, ... + parte 10.= archivo

me parece que el arhchivo final. se le agregan las partes
osea el archivo va creciendo de tamaño segun las partes
se can agregando. este tambien es mi problema no se como hacerlo..

Gracias pro su atencion.

cHackAll
04-04-2009, 23:51:56
1. El cliente pide la cantidad de trozos al servidor y el servidor le da una respuesta (Ej. 23).
2. De acuerdo a los trozos que tenga (necesita un mapa con los trozos completados) le pide un trozo X que en realidad es un numero del 0 al 22

Por su parte el cliente al recibir la peticion del trozo 6 lo unico que hace es;
1. Abre el archivo y realiza un "salto" hacia el trozo deseado Seek(Trozo * TamañoDelTrozo), en tu ejemplo; _llseek(hFile, dwPiece * 1024 * 1024, FILE_BEGIN);
2. Lee un Trozo y lo envia :p

JXJ
05-04-2009, 01:16:18
[cHackAll]

dejame entenderlo.....
voy a ver si logro hacerlo bien con delphi..