FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour webview archivos grandes
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
webview archivos grandes
Posted: Fri Aug 29, 2025 06:13 PM
Buenas tardes con todos tengo un codigo que me funciona perfecto para archivos pequeños html pero si el archivo es mas grandes digamos de 2 mb no funciona se queda pensando y nunca sale el contenido se podra ajustar algo en el codigo para archivos grandes ya consulte con la IA ero no me ayuda aca esta el codigo ( por si acaso en el navegador si funciona muy bien )
#include "FiveWin.ch"

function Main( cXml )

   local oWebView := TWebView():New()
   local hTags
   local cHtml

   //msginfo( 1 )

   if !file( cXml )
       msginfo('no existe data de entrada presente en ' + cXml )
       return nil
   end

   cHtml = hb_memoread( cXml )


   oWebView:SetHtml( cHtml )
   oWebView:SetTitle( 'Importador XXXXXX ' )
   oWebView:SetSize( 1200, 800 )
   oWebView:SetUserAgent( "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Mobile Safari/537.36" )
   sleep( 300 )
   oWebView:Run()
   oWebView:Destroy()

return nil
de antemano muchas gracias
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 231
Joined: Fri Jul 20, 2012 01:49 AM
Re: webview archivos grandes
Posted: Fri Aug 29, 2025 08:34 PM
Hola Wilson,

Prueba hacer asi:
#include "FiveWin.ch"

function Main( cXml )

   local oWebView := TWebView():New()
   local hTags
//    local cHtml

   //msginfo( 1 )

   if !file( cXml )
       msginfo('no existe data de entrada presente en ' + cXml )
       return nil
   end

//    cHtml = hb_memoread( cXml )
//    oWebView:SetHtml( cHtml )

   oWebView:Navigate( openLocalFile( cXml ) )

   oWebView:SetTitle( 'Importador XXXXXX ' )
   oWebView:SetSize( 1200, 800 )
   oWebView:SetUserAgent( "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Mobile Safari/537.36" )
   sleep( 300 )
   oWebView:Run()
   oWebView:Destroy()

return nil
function openLocalFile( cFile )

	local cUrl := hb_dirTemp() + "index.html"

	hb_memoWrit( cUrl, hb_memoRead( cFile ) )

	cUrl := urlEncode( "file:///" + strtran( cUrl, "\", "/" ) )
	cUrl := strtran( cUrl, "+", "%20" )
	cUrl := strtran( cUrl, " ", "%20" )
	cUrl := strtran( cUrl, "%3A", ":" )

return cUrl

#pragma BEGINDUMP
#include <hbvm.h>
#include <hbapi.h>
#include <hbapiitm.h>
#include <hbapierr.h>

HB_FUNC( URLENCODE )
{
	const char * cData     = hb_parc( 1 );
	HB_ISIZ      nLen      = hb_parclen( 1 );
	HB_BOOL      bComplete = hb_parldef( 2, HB_TRUE );
	char *       cRet;
	HB_ISIZ      nPos = 0, nPosRet = 0, nVal;
	char         cElem;

	if( ! cData )
	{
		hb_errRT_BASE( EG_ARG, 3012, NULL,
						HB_ERR_FUNCNAME, 1, hb_paramError( 1 ) );
		return;
	}

	if( ! nLen )
	{
		hb_retc_null();
		return;
	}

	/* Giving maximum final length possible */
	cRet = ( char * ) hb_xgrab( nLen * 3 + 1 );

	while( nPos < nLen )
	{
		cElem = cData[ nPos ];

		if( cElem == ' ' )
		{
			cRet[ nPosRet ] = '+';
		}
		else if(
			( cElem >= 'A' && cElem <= 'Z' ) ||
			( cElem >= 'a' && cElem <= 'z' ) ||
			( cElem >= '0' && cElem <= '9' ) ||
			cElem == '.' || cElem == ',' || cElem == '&' ||
			cElem == '/' || cElem == ';' || cElem == '_' )
		{
			cRet[ nPosRet ] = cElem;
		}
		else if( ! bComplete && ( cElem == ':' || cElem == '?' || cElem == '=' ) )
		{
			cRet[ nPosRet ] = cElem;
		}
		else /* encode! */
		{
			cRet[ nPosRet++ ] = '%';
			nVal = ( ( HB_UCHAR ) cElem ) >> 4;
			cRet[ nPosRet++ ] = nVal < 10 ? '0' + ( char ) nVal : 'A' + ( char ) nVal - 10;
			nVal = ( ( HB_UCHAR ) cElem ) & 0x0F;
			cRet[ nPosRet ] = nVal < 10 ? '0' + ( char ) nVal : 'A' + ( char ) nVal - 10;
		}

		nPosRet++;
		nPos++;
	}

	hb_retclen_buffer( cRet, nPosRet );
}

#pragma ENDDUMP
Regards,

Lailton Fernando Mariano
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: webview archivos grandes
Posted: Sat Aug 30, 2025 12:17 AM

Lailton eres un capo !!

Muchas gracias

funciono like a charm !!!

agradecido

wilson

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: webview archivos grandes
Posted: Sat Aug 30, 2025 12:49 AM

aprovechando je je como hago que la ventana se abra maximizada

gracias

Wilson

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 231
Joined: Fri Jul 20, 2012 01:49 AM
Re: webview archivos grandes
Posted: Mon Sep 01, 2025 03:37 PM
No tieno probado, pero creo que seja asi:

ShowWindow( oWebView:GetWindow(), 3 ) // SW_MAXIMIZE
wilsongamboa wrote: aprovechando je je como hago que la ventana se abra maximizada
gracias
Wilson
Regards,

Lailton Fernando Mariano
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: webview archivos grandes
Posted: Wed Sep 17, 2025 02:57 PM

Laiton buenos días como estas?

Eso se puede adaptar para cualquier archivo?, hemos tenido problemas al intentar usar la función memoedit(), con varios archivos de tipo json, bastante grandes, los cuales contienen dentro un archivo pdf encriptado en base64, así como un archivo xml también encriptado en base64, pero solo con memoedit(), si se usa memoread(), funciona correctamente.

Gracias de antemano

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]

Continue the discussion