Página 2 de 3

Warning sobre a Xhb

Enviado: 09 Jun 2017 09:08
por asimoes
Pessoal,

Bom dia,

Qual é o equivalente a função IsAscii() ?

Warning sobre a Xhb

Enviado: 10 Jun 2017 20:24
por cl@udio
Esta classe ExcelWriterXml() esta no hb32\core\extras\hbxlsxml.
Mas esta classe nao tem no hb34.
Pelo menos nao encontrei.
[]s

Warning sobre a Xhb

Enviado: 10 Jun 2017 22:03
por JoséQuintas
Não dá pra substituir por esta?
Se é que não é a mesma...

https://github.com/FTrautwein/xlsxwriter

Warning sobre a Xhb

Enviado: 22 Jun 2017 16:13
por cl@udio
Pessoal
Boa tarde

Sabem me dizer, qual a funcao equivalente:

Código: Selecionar todos

HB_FReadLine( hHandle, @cLine, aEol )
Pesquisei com find do hbmk2:
hbmk2 -find ReadL
xhb.hbc (não instalado):
hb_FReadLine()
hb_ReadLine()
hbmisc.hbc (não instalado):
hb_FReadLn()
hbnf.hbc (não instalado):
ft_FReadLn()
Núcleo Harbour (instalado):
hb_FReadLen()
hb_vfReadLen()
[]s

Warning sobre a Xhb

Enviado: 22 Jun 2017 16:57
por JoséQuintas
Importante:

Convém confirmar as funções.
Pode ser que além de nome diferente, o comportamento seja diferente.

No CH deve indicar se é apenas tradução de nome ou não.

Warning sobre a Xhb

Enviado: 22 Jun 2017 17:17
por asimoes
Como fica valtoprg equivalente?

Warning sobre a Xhb

Enviado: 22 Jun 2017 17:20
por asimoes
Se é pra matar a xhb tem que mapear todas as equivalentes, inclusive a minigui usa getprinters que tá na xhb

Warning sobre a Xhb

Enviado: 22 Jun 2017 22:00
por acelconsultoria
É complicado... a xhb tinha várias coisas interessantes, mas concordo que é como um "remendo" no Harbour.

Eu fiz um teste aqui... abri o Notepad++, fui em Localizar>Localizar em Arquivos... configurei pra procurar dentro da pasta com os fontes da xhb e pesquisei alguns dos nomes das funções que os colegas postaram aqui.

E encontrou todas. Algumas parecem fáceis de resolver. Outras nem tanto.

Por exemplo... peguei a ISASCII() que o ASimões postou... deu isto aqui:

Código: Selecionar todos

D:\Harbour\contrib\xhb\xhbis.c (6 hits)
	Line 85: #if ! defined( isascii )
	Line 86:    #define isascii( c )  ( ( unsigned ) ( c ) <= 0x7F )
	Line 150:    Printable characters have an ASCII value between 32 - 126, (0x20 - 0x7e),
	Line 173: /* determines if first char of a string is a member of the 7-bit ASCII
	Line 177: HB_FUNC( ISASCII )
	Line 181:    hb_retl( szString && isascii( ( HB_BYTE ) *szString ) );
Aí eu abri o tal arquivo xhbis.c e tava lá:

Código: Selecionar todos

HB_FUNC( ISASCII )
{
   const char * szString = hb_parc( 1 );

   hb_retl( szString && isascii( ( HB_BYTE ) *szString ) );
}
Neste caso, me parece que a função IsAscII() não tem "tradução" pronta pro Harbour. Ela foi construída em C pra atender a xhb.

Warning sobre a Xhb

Enviado: 22 Jun 2017 22:15
por acelconsultoria
Pesquisando ValToPrg no Notepad++:

Código: Selecionar todos

Search "valtoprg" (15 hits in 5 files)
  D:\Harbour\contrib\xhb\dumpvar.prg (1 hit)
	Line 234:    // TraceLog( "DShowHash: hVar, ValType( hVar ), lRecursive", hVar, ValType( hVar ), ValToPrg( hVar ), lRecursive )
  D:\Harbour\contrib\xhb\hbcompat.ch (2 hits)
	Line 92:    #xtranslate hb_ValToExp( [<x,...>] )        => ValToPrgExp( <x> )
	Line 365:    #xtranslate ValToPrgExp( [<x,...>] )        => hb_ValToExp( <x> )
  D:\Harbour\contrib\xhb\xcstr.prg (9 hits)
	Line 106: FUNCTION ValToPrg( xVal, cName, nPad, aObjs )
	Line 121:          cName := "M->__ValToPrg_Array"
	Line 140:          cRet += cPad + cName + "[" + hb_ntos( aVar:__enumIndex() ) + "] := " + ValToPrg( aVar, cName + "[" + hb_ntos( aVar:__enumIndex() ) + "]", nPad, aObjs ) + hb_eol()
	Line 156:             cRet += ValToPrg( aVar:__enumKey() ) + " => " + ValToPrg( aVar )
	Line 156:             cRet += ValToPrg( aVar:__enumKey() ) + " => " + ValToPrg( aVar )
	Line 165:    CASE "B" ; RETURN ValToPrgExp( xVal )
	Line 171:          cName := "M->__ValToPrg_Object"
	Line 191:          cRet += cPad + cName + ":" + aVar[ 1 ] + " := " + ValToPrg( aVar[ 2 ], cName + ":" + aVar[ 1 ], nPad, aObjs ) + hb_eol()
	Line 202:          Throw( xhb_ErrorNew( "VALTOPRG", 0, 3103, ProcName(), "Unsupported type", { xVal } ) )
  D:\Harbour\contrib\xhb\xhb.hbx (2 hits)
	Line 436: DYNAMIC ValToPrg
	Line 437: DYNAMIC ValToPrgExp
  D:\Harbour\contrib\xhb\xhbfunc.c (1 hit)
	Line 347: HB_FUNC_TRANSLATE( VALTOPRGEXP    , HB_VALTOEXP   )
É... dependendo da quantidade de funções, vai dar trabalho mesmo.

Lembrando que pesquisei nos fontes do HB 3.4

Warning sobre a Xhb

Enviado: 22 Jun 2017 22:32
por JoséQuintas
Sobre a IsAscii().... mas está usando aonde?
Se é numa LIB gráfica, a saída seria colocar essa função na LIB gráfica, até ajustarem a LIB.

Ou agrupar o que sobrar num único fonte, assim fica em destaque o que será eliminado.
O que não tiver alternativa, provavelmente terá uma equivalente antes de retirar xhb.

Warning sobre a Xhb

Enviado: 23 Jun 2017 11:54
por asimoes
Eu até já tinha localizado essas funções hb_isnil e isacii nos fontes C da xhb, estão o ineressante seria agrupar ou fazer parte da aplicação, quantos aos prg´s tem que ver se vale apene fazer isso também, ou simplesmente continuar usando a xhb salvando em algum lugar pra não perder.

Outro detalhe é que a minigui usa funções da xhb não se a hwgui também tem que verificar isso.

Warning sobre a Xhb

Enviado: 23 Jun 2017 13:32
por fladimir
Eu to finalizando a migração do meu aki, fiz conforme o colega comentou, pesquisando nos fontes da xhb, pra ver as correlatas e as q estão em .C
As q estão em PRG estou avaliando.

Warning sobre a Xhb

Enviado: 23 Jun 2017 14:21
por asimoes
Na minha opinião o que falta é uma orientação mais clara, olha se você usa tal função substitua por essa e essa, até a gente se preparar para isso.
Imagina sistema legado que eu tenho esse caso, tem valtoprg, issascii, hb_isnil e por ai vai, substituir não é muito fácil, tem garantir que vai funcionar da mesma forma ou como eu disse pega toda a pasta xhb salva em outro lugar e continua usando, não tá funcionando ? então deixa quieto.

Warning sobre a Xhb

Enviado: 23 Jun 2017 17:07
por cl@udio
Boa tarde

asimoes

Pelo que entendi, os mantenedores vao deixar de atualizar para novas codificacoes.
O que estiver funcionando ate agora, vai continuar assim.
Ou entendi errado.

Eu mesmo estou fazendo as mudancas simplesmente para nao ficar dependente de mais uma lib.
E trabalhar tudo em puro harbour dentro do possivel.
[]s

Warning sobre a Xhb

Enviado: 23 Jun 2017 17:22
por asimoes
Sim,

É isso mesmo, hoje saiu novamente o WARNING sobre a xhb, não haverá mais manutenções, quem continuar o uso será por conta e risco eu me atrevo a dizer que tudo que usamos do harbour é por conta e risco, rs