HB_FUNC( SHR )
{
unsigned int ui = hb_parnl( 1 );
unsigned char uc = hb_parnl( 2 );
hb_retnl( ui >>= uc );
}
function feof( nHandle )
local lEof := ( fseek( nHandle, 1, FS_RELATIVE ) == fseek( nHandle, 0, FS_RELATIVE ) )
if ! lEof
fseek( nHandle, -1, FS_RELATIVE )
endif
return lEof
function bin2num( cBinStr )
local n := 1, nResult := 0
for n = 1 to Len( cBinStr )
if SubStr( cBinStr, Len( cBinStr ) - n + 1, 1 ) == "1"
nResult += ( 2 ^ ( n - 1 ) )
endif
next
return Int( nResult )
function Byte2Bin( nValue )
local cResult := "", n := 7
while n >= 0
if Int( nValue / ( 2 ^ n ) ) != 0
cResult += "1"
nValue -= Int( nValue / ( 2 ^ n ) ) * ( 2 ^ n )
else
cResult += "0"
endif
n--
end
return cResult
function freadline( nHandle, nLineLen )
local cBuffer, nBytes, nAt
DEFAULT nLineLen := 512
cBuffer := Space( nLineLen )
nBytes = FRead( nHandle, @cBuffer, nLineLen )
nAt = At( Chr( 13 ) + Chr( 10 ), cBuffer )
if nAt != 0
FSeek( nHandle, -( nBytes - nAt + 2 ), FS_RELATIVE )
endif
return If( nAt != 0, SubStr( cBuffer, 1, nAt - 1 ), SubStr( cBuffer, 1, nBytes ) )
Me da este error:Antonio Linares wrote:
- Code: Select all Expand view RUN
HB_FUNC( SHR )
{ // Esta es la linea 1175
unsigned int ui = hb_parnl( 1 );
unsigned char uc = hb_parnl( 2 );
hb_retnl( ui >>= uc );
} // Esta es la linea 1179
Me he "inventado" esta (y voy tirando) y me funciona, pero si se arregla la de arriba mejor:Antonio Linares wrote:
- Code: Select all Expand view RUN
function feof( nHandle )
local lEof := ( fseek( nHandle, 1, FS_RELATIVE ) == fseek( nHandle, 0, FS_RELATIVE ) )
if ! lEof
fseek( nHandle, -1, FS_RELATIVE )
endif
return lEof
function feof( nHandle )
local BLOCK_SIZE := 1 // 1 o lo que sea mayor de 0 (cero)
LOCAL cBuffer := Space( BLOCK_SIZE )
LOCAL nRead := 0
local lEof := .T.
nRead := FRead( nHandle, @cBuffer, BLOCK_SIZE )
IF nRead == BLOCK_SIZE
fseek( nHandle, -BLOCK_SIZE, FS_RELATIVE )
lEof:= .F.
ELSE
lEof:= .T.
ENDIF
return lEof
JmGarcia wrote:La funcion LASTDAY de Funcky cual es la de FWH.
Function LastDay( dDate, dLast ) // dLast solo para ahorrar definiciones
Return ( dLast := If( dDate == Nil, Date(), dDate ) + If( Month( dDate + 28 ) == Month( dDate ), 31, 28 ) ) - Day( dLast )
FUNCTION LastDay(dDate)
DEFAULT dDate:=Date()
RETURN IF(Day(dDate:=StoD(Str(Year(dDate),4)+PadL(lTrim(Str(Month(dDate)+1)),2,'0')+'01')-1)==0,31,Day(dDate))
Hola Biel:Biel EA6DD wrote:Para ser igual que la de funcky, debiera devolver day( dlasta:= ... ).
Si observas bien, verás que también traté de considerarlo pero no escribí adecuadamente la expresión (con dDate = Nil asume la fecha del sistema), también te darás cuenta que la acabo de inventar.Biel EA6DD wrote:Y prevenir el pase de nil, que se tiene en cuenta con dLast, pero no con dDate, y produciria un error en ejecución.
Function dFinalMes( dDate, dLast )
Return ( dLast := ( dDate := If( dDate == Nil, Date(), dDate ) ) + If( Month( dDate + 28 ) == Month( dDate ), 31, 28 ) ) - Day( dLast )
Jose Maria,
Te respondo con mucho retraso, pero es cuando he visto el mensaje (a veces se me pasan mensajes
>
E:\Bases\Practicas\InyectaS.prg(1175) Error E0020 Incomplete statement or unbalanced delimiters
E:\Bases\Practicas\InyectaS.prg(1179) Error E0030 Syntax error: "parse error at 'INT'"
>
Tienes que usar ese código desde C incluyendo #include <hbapi.h> ó desde un PRG usando #pragma BEGINDUMP y #pragma ENDDUMP y tambien usando ese include.
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: D.Fernandez, Google [Bot] and 20 guests