Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-08-2008
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 07-08-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por JXJ Ver Mensaje
...
Ayuda gurus. no desvirtuadores.
Ah joder, te iba a ayudar pero ya no podré.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 07-08-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
Ni hablar!

Ni como ayudarte!!!
Responder Con Cita
  #4  
Antiguo 07-08-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
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.
Responder Con Cita
  #5  
Antiguo 07-08-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por JoseFco Ver Mensaje
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.
no pues, eso si y mucho...

Ademas los gurus estan durmiendo, solo quedamos los desvirtuadores, si quieres te echamos una ayudadita...
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #6  
Antiguo 07-08-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por eduarcol Ver Mensaje
no pues, eso si y mucho...

Ademas los gurus estan durmiendo, solo quedamos los desvirtuadores, si quieres te echamos una ayudadita...
jejejejejeje si quieres le podemos trocear al poliburro y le mandamos 14" de megabytes.
Responder Con Cita
  #7  
Antiguo 07-08-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por JoseFco Ver Mensaje
jejejejejeje si quieres le podemos trocear al poliburro y le mandamos 14" de megabytes.
y como sabes esas medidas?
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #8  
Antiguo 07-08-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por eduarcol Ver Mensaje
y como sabes esas medidas?
Tu si que eres indiscreto carnal, como tu crees que te voy a confesar que egostar me lo conto.
Responder Con Cita
  #9  
Antiguo 07-08-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
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.

Última edición por JoseFco fecha: 07-08-2008 a las 22:33:29.
Responder Con Cita
  #10  
Antiguo 07-08-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por JoseFco Ver Mensaje
jejejejejeje si quieres le podemos trocear al poliburro y le mandamos 14" de megabytes.
....
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #11  
Antiguo 07-08-2008
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Thumbs down

Cita:
Empezado por JoseFco Ver Mensaje
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.
Que quede muy claro..

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.

Última edición por JXJ fecha: 07-08-2008 a las 23:48:31.
Responder Con Cita
  #12  
Antiguo 08-08-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
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
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #13  
Antiguo 08-08-2008
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
..
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..
Responder Con Cita
  #14  
Antiguo 08-08-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por JXJ Ver Mensaje
..
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..
Me a pasado mil veces que encuentro un codigo y asumo que estara todo probado y que funcionara.En ocasiones he encontrado muchos errores como que le faltan end; que falta declarar algunas cosas, etc. Ten eso en cuenta porque suele suceder.Ahora eso si si te dan un codigo es mejor que nada amigo.Ya por lo menos tienes una idea de como corre la cosa.

Un Saludo.
Responder Con Cita
  #15  
Antiguo 08-08-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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í:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  f: file of Byte;
  size: Longint;
  S:String;
  ch:Char;
  b:Byte;
  i:Integer;
begin
  if OpenDialog1.Execute then begin
    AssignFile(f, OpenDialog1.FileName);
    Reset(f);
    try
      size := FileSize(f);
      S := 'Tamaño del fichero: ' + IntToStr(size);
      MessageDlg(S, mtInformation, [mbOK], 0);

      memo1.Lines.Add('--------------------------');
      // Leer 100
      for i := 0 to 100 do begin
        Read(f, b);
        memo1.Lines.Text := memo1.Lines.Text + IntToStr(b) + ' ';

        // Guardarlo en otro
        //...
      end;

      Seek(f, size div 2);
      S := 'Position actual: ' + IntToStr(FilePos(f));
      MessageDlg(S, mtInformation, [mbOK], 0);
      
      memo1.Lines.Add('--------------------------');

      // Leer otros 100
      for i := 0 to 100 do begin
        Read(f, b);
        memo1.Lines.Text := memo1.Lines.Text + IntToStr(b) + ' ';

        // Guardarlo en otro
        //...
      end;

    finally
      CloseFile(f);
    end;
  end;
end;

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).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #16  
Antiguo 08-08-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por JXJ Ver Mensaje
[Manden este tema, a la taberna.]
ya se lleno de comentarios que no sirven., exepto los mios claro.
Mejor eliminenlo.
No te molesten hombre.
Pero en parte ha sido culpa tuya; Poner esta coletilla es poner gritar con un altavoz que te "apedreen"...

Cita:
Empezado por JXJ Ver Mensaje
Ayuda gurus. no desvirtuadores.
Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #17  
Antiguo 08-08-2008
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
si fuera la seccion de la taberna.

pero esto no es esa seccion.
Responder Con Cita
  #18  
Antiguo 08-08-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 19
felipe88 Va por buen camino
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
__________________
Web
Responder Con Cita
  #19  
Antiguo 10-08-2008
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
felipe88
Grcias revisando.. el codigo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Archivos .dat LucianoRey Varios 5 02-11-2020 11:08:22
Abrir archivos con nombres de archivos de otra codificación. matabyte Windows 2 01-05-2008 01:40:13
trocear un exe angelp4492 Varios 2 02-01-2008 23:42:09
archivos *.gdb detybel Conexión con bases de datos 1 09-05-2006 14:23:04
Archivos DCU sierraja Varios 4 10-05-2005 17:37:40


La franja horaria es GMT +2. Ahora son las 05:48:01.


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
Copyright 1996-2007 Club Delphi