FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Para Mr Antonio Linares Tamanio de Registro
Posts: 51
Joined: Sat Nov 19, 2005 08:30 PM

Para Mr Antonio Linares Tamanio de Registro

Posted: Mon Mar 24, 2008 12:26 AM
En un post anterior lei lo siguiente:

<<<<<<<<
La funci贸n At() es extremadamente r谩pida ya que practicamente esta implementada al 100% en el propio microprocesador.

Lo que es lento es ir leyendo los registros de uno en uno. La soluci贸n a esto, aunque suene increible, es cargar de una vez toda la DBF en memoria usando MemoRead() y entonces hacer el At():

cDatos = MemoRead( "nombre.dbf" )
nPos = At( "lo que busco", cDatos )

Dividiendo el valor devuelto por At() por el tama帽o de un registro (+ el tama帽o de la cabecera) sabemos inmediatamente en que registro estamos. El siguiente At() se har铆a a partir de donde se encontr贸 la primera ocurrencia.
>>>>>

se me hizo algo muy interesante ya que tengo una aplicacion que se me hizo super lenta en un proceso de busqueda / actualizacion..

Como se obtiene el tamanio de un registro + el tamanio de la cabecera??

saludos y Gracias.
Arnulfo
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Para Mr Antonio Linares Tamanio de Registro

Posted: Mon Mar 24, 2008 08:49 AM

El tama帽o de la cabecera lo devuelve la funci贸n Header()

El tama帽o de un registro lo devuelve la funci贸n RecSize()

Seg煤n la documentaci贸n de Clipper:

define DbfSize() (HEADER() + (RECSIZE() * LASTREC()) + 1)

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion