So you got seriously addicted, this is advancing very fast, just about a bit over 2 months I actually investigated what AI was, I literally did not knew what it was, or what it did.... now I honestly believe we cant survive without it....
If you were ahead of your time when you started The Harbour Project, and then even further with FiveWin, I just wonder what will you come out with, after all this learnings....
xBasePHP.com, .prg to web in a few seconds.....
- Bayron
- Posts: 890
- Joined: Thu Dec 24, 2009 12:46 am
- Location: Guatemala
- Has thanked: 19 times
- Been thanked: 17 times
- Contact:
Re: xBasePHP.com, .prg to web in a few seconds.....
=====>
Bayron Landaverry
NextXbase.com
(215)2226600 Philadelphia,PA, USA
MayaBuilders@gMail.com
Guatemala
FWH25.12--Harbour 3.0.0--MSVC--UEstudio 10.10
Windows 11
FiveWin, One line of code and it's done...
- Bayron
- Posts: 890
- Joined: Thu Dec 24, 2009 12:46 am
- Location: Guatemala
- Has thanked: 19 times
- Been thanked: 17 times
- Contact:
Re: xBasePHP.com, .prg to web in a few seconds.....
Milestone achievement, we finally got to rendering true codebase to PHP..., talking about creating PHP, JavaScript, CSS, Bootstrap, Html, automatically on real time...
After extracting everything from .RES files, and processing .RC files, either or...
We had to translate xBase code from .prg files, and c and c++ from .c and .cpp files...,
Work with api calls conversions, etc...
The necessary code is only a couple gigabytes, but we have a couple terabytes that we need to depure.... i tried to upload to a webserver, but between addresses, dependencies, and other factors, it will take a little while to have an online deployable working version... but already works in my development environment.

functions and class methods are done, just need to implement and make sure they render what its suppossed to be rendered...
We have a long way to go,,,, but proof of concept is already achieved.. it is possible....
After extracting everything from .RES files, and processing .RC files, either or...
We had to translate xBase code from .prg files, and c and c++ from .c and .cpp files...,
Work with api calls conversions, etc...
The necessary code is only a couple gigabytes, but we have a couple terabytes that we need to depure.... i tried to upload to a webserver, but between addresses, dependencies, and other factors, it will take a little while to have an online deployable working version... but already works in my development environment.

functions and class methods are done, just need to implement and make sure they render what its suppossed to be rendered...
We have a long way to go,,,, but proof of concept is already achieved.. it is possible....
Code: Select all | Expand
<?php
/**
* fivedbu - Production Library File
* Platform: Production
* xBasePHP
*
function main($cdbfname = null) {
global $afwstack, $_fwhtmp_, $owndmain, $omrudbfs, $omruodbcconnections, $omruadoconnections, $asearches, $crdd, $cdefrdd, $lshared, $cconnection, $ocon, $nlanguage, $ofontx, $nclrtxtbrw, $nclrbackbrw, $lpijama, $amariacn, $hado;
$obmptiled = null;
$obmptiled = null;
fwnumformat("A", true);
setautohelp(true);
$hado = ["DBASE" => [], "FOXPRO" => [], "EXCEL" => [], "MSACCESS" => [], "MSSQL" => [], "MYSQL" => [], "SQLITE" => [], "ORACLE" => [], "POSTGRE" => []];
TPreview::$bSaveAsPDF = function($o, $c, $l) { return fwsavepreviewtopdf($o, $c, $l); };
setresdebug(true);
$cconnection = hb_space(100);
// Unknown statement type: FunctionCall
// Unknown statement type: FunctionCall
loadpreferences();
if ($lpijama) {
setdlggradient([[1, ((199 + (216 * 256)) + (237 * 65536)), ((237 + (242 * 256)) + (248 * 65536))]]);
} else {
setdlggradient([[1, ((199 + (216 * 256)) + (237 * 65536)), 16777215]]);
}
$ofontx = new TFont("Calibri", 0, -(14), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
$obmptiled = (new TBitmap())->define("background", null, null);
$owndmain = new TMdiFrame(null, null, null, null, "FiveDBU", null, buildmenu(), null, null, null, null, true, true, null, null, null, null, "oWndMain", null, null, null, null);
$owndmain->SetFont($ofontx);
buildmainbar();
new TMsgBar($owndmain, "FiveDBU 32/64 bits, (c) FiveTech Software 2014-2020", false, false, true, true, null, null, null, null, false, (false ? false : true), null, false);
if (!(hb_empty($cdbfname))) {
open($cdbfname);
}
$owndmain->bRClicked = function($nrow, $ncol, $nkeyflags) { return buildpopupmenu($nrow, $ncol, $owndmain); };
$owndmain->bPainted = function($hdc, $cps) use ($owndmain, $obmptiled) { return drawtiled($hdc, $owndmain, $obmptiled); };
$owndmain->ACTIVATE(hb_upper("MAXIMIZED"), $owndmain->bLClicked, $owndmain->bRClicked, $owndmain->bMoved, $owndmain->bResized, $owndmain->bPainted, $owndmain->bKeyDown, $owndmain->bInit, null, null, null, null, null, null, null, null, function() { return (function() { fwmissingstrings(); return msgyesno(fwstring("Want to end ?"), fwstring("Select an option")); })(); }, null, $owndmain->bLButtonUp, false, null);
$obmptiled->END();
if ($ofontx && hb_isobject($ofontx) && $ofontx->END()) {
$ofontx = null;
hb_aeval($amariacn, function($a) { return $a[3]->Close(); });
heval($hado, function($k, $v) { return hb_aeval($v, function($a) { return $a[3]->Close(); }); });
ferase("checkres.txt");
checkres();
return null;
}
}
function buildpopupmenu($nrow = null, $ncol = null, $ownd = null) {
global $afwstack, $_fwhtmp_, $owndmain, $omrudbfs, $omruodbcconnections, $omruadoconnections, $asearches, $crdd, $cdefrdd, $lshared, $cconnection, $ocon, $nlanguage, $ofontx, $nclrtxtbrw, $nclrbackbrw, $lpijama, $amariacn, $hado;
$opopup = null;
$oitem = null;
static $lserver = null;
static $hserver = null;
$opopup = null;
$oitem = null;
$lserver = false;
$hserver = null;
$opopup = menubegin(true, null, null, false, false, null, null, null, null, null, null, null, null, null, false, null, false, false, false, false, null, null, null, null, null, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, null, null, null, null, null, null, null);
if ($lserver) {
menuadditem("WebApp", null, true, null, function($omenuitem) { return (function() { $lserver = false; return hb_threadquitrequest($hserver); })(); }, null, null, null, null, null, null, false, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, false, null, null, null, null, null, null, null, null, false, false, false, null, null, null, null, false, false, false);
} else {
menuadditem("WebApp", null, false, null, function($omenuitem) { return (!($lserver) ? (function() { $lserver = true; return $hserver = hb_threadstart(webserver()); })() : null); }, null, null, null, null, null, null, false, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, false, null, null, null, null, null, null, null, null, false, false, false, null, null, null, null, false, false, false);
}
menuadditem(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, true, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
menuadditem("Controller", null, false, null, function($omenuitem) { return wa_controller(); }, null, null, null, null, null, null, false, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, false, null, null, null, null, null, null, null, null, false, false, false, null, null, null, null, false, false, false);
menuadditem(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, true, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
menuadditem("Dialogs", null, false, null, function($omenuitem) { return wa_showcodedialogs(); }, null, null, null, null, null, null, false, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, false, null, null, null, null, null, null, null, null, false, false, false, null, null, null, null, false, false, false);
menuend();
$opopup->ACTIVATE($nrow, $ncol, $ownd, !(false), null);
return null;
}
=====>
Bayron Landaverry
NextXbase.com
(215)2226600 Philadelphia,PA, USA
MayaBuilders@gMail.com
Guatemala
FWH25.12--Harbour 3.0.0--MSVC--UEstudio 10.10
Windows 11
FiveWin, One line of code and it's done...