Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-04-2011
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 24
JXJ Va por buen camino
Question ¿como definir tamaño de buffers?

he encontrado que unos usan


Inbuf: Array[ 0..1023 ] of AnsiChar;

Inbuf: Array[ 0..1024 ] of AnsiChar;

entiendo que 8192 entre 1024 da 8

Inbuf: Array [0..8192] of AnsiChar;

Inbuf: Array [0..999999] of AnsiChar;

cual es la regla que se usa para definir el tamaño de un buffer?
Responder Con Cita
  #2  
Antiguo 09-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola JXJ.

Cita:
cual es la regla que se usa para definir el tamaño de un buffer?
Un buffer es una porción de memoria para almacenar temporalmente alguna información y no sé de la existencia de una regla general para definir su tamaño. El tamaño se define acorde al tipo de dato y a la conveniencia de cada aplicación a implementar.

Suponiendo que buscabas algo específico hice una búsqueda con "Inbuf: Array [0..999999] of AnsiChar;"

Y encontré este resultado: Librería hecha en Delphi que implementa la factura electronica de México (Comprobante Fiscal Digital).

Espero que sea lo que estas buscando.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 09-04-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.215
Poder: 24
newtron Va camino a la fama
Hola.

A mi me da que estás confundido con el concepto. En este caso Inbuf es el nombre de un array que declaras para usarlo posteriormente y [0..1023] quiere decir que vas a reservar para ese array 1024 posiciones que vas a usar posteriormente en tu programa. Esto se hace cuando sabes cuantas posiciones vas a necesitar posteriormente para tu tarea, en caso de no saberlo puedes declarar el array de forma dinámica sin indicar posiciones e ir incrementando las mismas según te vaya haciendo falta.

Espero que sea eso lo que preguntabas.

Saludos
Responder Con Cita
  #4  
Antiguo 09-04-2011
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 24
JXJ Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Hola.

A mi me da que estás confundido con el concepto. En este caso Inbuf es el nombre de un array que declaras para usarlo posteriormente y [0..1023] quiere decir que vas a reservar para ese array 1024 posiciones que vas a usar posteriormente en tu programa. Esto se hace cuando sabes cuantas posiciones vas a necesitar posteriormente para tu tarea, en caso de no saberlo puedes declarar el array de forma dinámica sin indicar posiciones e ir incrementando las mismas según te vaya haciendo falta.

Espero que sea eso lo que preguntabas.

Saludos
si eso era lo que preguntaba ..
por que la mayoria declara sus arreglos de 0...1023 o 0....1024.

segun para soportar el tamaño del archivo.
pero yo tenia entendido que si declaras el arreglo de mayor tamaño
del que es requerido. te al usar el arreglo obtienes basura en los espacios extra
o el archivo llega incompleto.
se corrompe.
Responder Con Cita
  #5  
Antiguo 09-04-2011
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 24
JXJ Va por buen camino
como se le hace para asignar el tamaño del arrary
de forma dinamica.
si la informaciona procesar la obtengo desde el memo1.lines o de un string?
Responder Con Cita
  #6  
Antiguo 09-04-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Busca en los foros por SetLength , ahí encontrarás lo que necesitas.
Responder Con Cita
  #7  
Antiguo 09-04-2011
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Siempre has de reservar el máximo posible (siempre y cuando esté entre unos límites razonables) para el dato que vas a almacenar.

Normalmente pasas un array con 1 o 2 kb de largo y la función te devuelve cual es el máximo que la función ha usado, por ende, si te devuelve 43, sólo pillas del array desde el cero al 42.

La mayoría de esas funciones añaden el carácter #0 en el índice 43 (o el que corresponda), que como sabes es el carácter nulo, el carácter que hace terminar un PChar en delphi. Los arrays son en realidad un Pchar, por tanto es compatible.

El párrafo anterior quiere decir que ese buffer puedes copiarlo con tranquilidad a un string de delphi que no obtendrás la basura que haya al final del buffer.

Código Delphi [-]
var aa: array[0..1023] of char;
     b:string;
begin
  funcion_usa_buffer(@aa);
  b := aa;
end;

Sé que hay varias funciones para "resetear una zona de memoria" creo una de ellas es fillchar y hay otras para bloques de memoria que no recuerdo horitamesmo...

baludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 10-04-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.215
Poder: 24
newtron Va camino a la fama
Cita:
Empezado por JXJ Ver Mensaje
si eso era lo que preguntaba ..
por que la mayoria declara sus arreglos de 0...1023 o 0....1024.

segun para soportar el tamaño del archivo.
pero yo tenia entendido que si declaras el arreglo de mayor tamaño
del que es requerido. te al usar el arreglo obtienes basura en los espacios extra
o el archivo llega incompleto.
se corrompe.
Es que una cosa que tienes que tener clara para declarar el array es la longitud que necesitas del mismo. Si lo tienes claro lo declaras con esa longitud porque lo vas a usar al completo, en caso contrario lo haces de forma dinámica y lo vas adaptando según vayas necesitando con la instrucción setlength como te decía el amigo Casimiro.

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Como definir una class Ziara C++ Builder 2 11-01-2008 16:12:32
Multiusuario + Buffers = mal negocio... aprendiz2 OOP 3 16-04-2007 21:53:09
Como definir un campo Memo manuelpr Conexión con bases de datos 4 12-04-2005 20:01:45
Definir mi propio tamaño de hoja para FastReport ingel Impresión 0 04-12-2004 16:41:41
Definir el tamaño de la página gatosoft Impresión 1 28-04-2004 07:08:24


La franja horaria es GMT +2. Ahora son las 00:17:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi