NO SE SI A ALGUIEN LE PASO PERO ENCONTRE DENTRO DE WINDOWS.PRG
Code: Select all
function ARead( cInfo )
local nPos := 1, nLen, n
local aArray, cType, cBuffer
Veran que nPos esta definido como 1,
bien cambiando este parametro a 4 funciona correctamente, esto comparado con un WINDOWS.PRG de versiones anteriores, de hecho he generado una nueva funcion AREAD_2 como la siguiente para no tocar el codigo original de FWH y he reemplazado todas las funciones AREAD por AREAD_2,
Nueva funcion,
Code: Select all
//----------------------------------------------------------------------------//
function ARead_2( cInfo )
local nPos := 4, nLen, n
local aArray, cType, cBuffer
nLen = Bin2I( SubStr( cInfo, nPos, 2 ) )
nPos += 2
aArray = Array( nLen )
for n = 1 to Len( aArray )
cType = SubStr( cInfo, nPos++, 1 )
nLen = Bin2I( SubStr( cInfo, nPos, 2 ) )
nPos += 2
cBuffer = SubStr( cInfo, nPos, nLen )
nPos += nLen
do case
case cType == "A"
aArray[ n ] = ARead_2( "A" + I2Bin( nLen ) + cBuffer )
case cType == "O"
aArray[ n ] = ORead( cBuffer )
case cType == "C"
aArray[ n ] = cBuffer
case cType == "D"
aArray[ n ] = CToD( cBuffer )
case cType == "L"
aArray[ n ] = ( cBuffer == ".T." )
case cType == "N"
aArray[ n ] = Val( cBuffer )
endcase
next
return aArray
Espero le sirva a alguien,
Saludos,