And if there's something that's not quite supported yet, there's a file
called dbcmd.xh that you can use to "create" commands. e.g.

#command SCAN => CoreDb.GoTop(); DO WHILE NOT CoreDb.Eof()
#command ENDSCAN => CoreDb.Skip(1); ENDDO

See the SWFox X# whitepaper
<http://saltydogllc.com/wp-content/uploads/SELJE-Look-at-X-Sharp.pdf> for
more info on that.

This is good stuff, Johan.

Eric



On Wed, Jul 29, 2020 at 11:06 AM Matt Slay <matts...@jordanmachine.com>
wrote:

> Yes,  Scan/EndScan now supported in X#.
>
> - Matt Slay
>
>
> On 2020-07-29 11:00 AM, MB Software Solutions, LLC wrote:
> > No SCAN/ENDSCAN support yet?
> >
> >
> > On 7/29/2020 11:56 AM, Johan Nel wrote:
> >> Hi all VFPers,
> >>
> >> Well have not posted much lately about X# here due to some other
> >> issues I have to attend to, but good progress are made with support
> >> for the VFP dialect.
> >>
> >> As per the message regarding .NET Core, I would also like to share
> >> progress with X# regarding .NET Core support.
> >>
> >> Attached the link and posting by Robert today.
> >>
> >> Hope it is of interest to (most) some.
> >>
> >> Johan Nel
> >> George, South Africa.
> >>
> >>
> https://www.xsharp.info/forum/public-product/2069-xsharp-builds-on-net-core
> >>
> >>
> >> I would like to share some progress that I made today.
> >> I have changed the X# build system to support building for .Net Core.
> >> Consider an app that has one PRG file and a XSPROJ file.
> >> The contents of the XSProj file looks like this:
> >>
> >> <Project Sdk="Microsoft.NET.Sdk">
> >>   <Import Project="$(XSharpMsBuildDir)\XSharp.NET.Sdk.props" />
> >>   <PropertyGroup>
> >>     <OutputType>Exe</OutputType>
> >>     <TargetFramework>netcoreapp5.0</TargetFramework>
> >>     <ins>true</ins>
> >>     <dialect>vo</dialect>
> >>   </PropertyGroup>
> >> <ItemGroup>
> >>     <Reference Include="XSharp.Core" />
> >>     <Reference Include="XSharp.RT" />
> >>     <Reference Include="XSharp.RDD" />
> >>     <Reference Include="XSharp.MacroCompiler" />
> >> </ItemGroup>
> >> <Import Project="$(XSharpMsBuildDir)\XSharp.NET.Sdk.targets" />
> >> <ItemGroup>
> >>   <PackageReference Include="System.Text.Encoding.CodePages"
> >> Version="4.7.1" />
> >> </ItemGroup>
> >> </Project>
> >>
> >>
> >> As you can see we are compiling for .Net Core 5.0 and for the VO
> >> dialect. I have included the XSharp assemblies needed to open a DBF
> >> file. The only "strange" thing in here is the package references to
> >> the System.Text.Encoding.CodePages package, because by default .Net
> >> Core does not have support for Codepage 1252 which I am using.
> >> Unlike traditional project files there are no items included. By
> >> default .Net Core includes all source code items in the folder.
> >>
> >> The code looks like this:
> >>
> >> USING System.Text
> >>
> >> FUNCTION Start() AS VOID
> >> FIELD CUSTNUM, LASTNAME, FIRSTNAME
> >> Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)
> >> ? "Hello from X#"
> >> ? "OS       :",OS(TRUE)
> >> ? "Framework:", System.Environment.Version:ToString()
> >> ? "Xsharp   : version", Version(), "dialect",
> >> RuntimeState.Dialect:ToString()
> >> ? "Datetime :", DateTime()
> >> ? "Program  :", ExecName(TRUE)
> >> ? "Workdir  :", WorkDir()
> >> ? "Curdir   :", System.IO.Directory.GetCurrentDirectory()
> >>
> >> ? "Opening, Indexing and listing a DBF with .Net Core"
> >> ?
> >> USE Customer
> >> INDEX ON LASTNAME TO LASTNAME
> >> DO WHILE ! EOF()
> >>     ? Str(CUSTNUM,2) , LASTNAME, FIRSTNAME
> >>     SKIP
> >> ENDDO
> >> ? "Press any key"
> >> Console.ReadLine()
> >> RETURN
> >>
> >>
> >> As you can see I am calling a function in the Encoding class to link
> >> the package that has the codepage support.
> >> The rest is a normal mixture of Xbase code and .Net code.
> >> To compile and run the program I type
> >>
> >> dotnet run
> >>
> >> on the command line.
> >> The result is this:
> >>
> >> Hello from X#
> >> OS       : Windows 10 Enterprise (x64) ( Version 10.0, Build 18363 )
> >> Framework: 5.0.0
> >> Xsharp   : version XSharp 2.5.2.0 dialect VO
> >> Datetime : 29-07-2020 16:10:58
> >> Program  : C:\test\bin\Debug\netcoreapp5.0\test.dll
> >> Workdir  : C:\test\bin\Debug\netcoreapp5.0\
> >> Curdir   : C:\test
> >> Opening, Indexing and listing a DBF with .Net Core
> >>
> >>  6 Baker      James
> >>  2 Borne      Maria
> >> 15 Chandler   Walter
> >>  3 Cooper     Elizabeth
> >> 12 Cusumano   Karen
> >>  5 Dougherty  Janet
> >> .
> >> .
> >> 14 Walsh      Gloria
> >> 19 Zimmerman  Carla
> >> Press any key
> >>
> >>
> >> As you can see the runtime, RDD system and Macro compiler all work on
> >> .Net Core 5.0 !
> >> You can deploy this app with all support DLLs in one single Exe and 2
> >> small DLLs by calling:
> >>
> >> dotnet publish --self-contained true -r win-x64
> >> -p:PublishSingleFile=true -p:PublishTrimmed=true
> >>
> >>
> >> This creates the following files, which make up the whole program:
> >>
> >> 29-07-2020  16:13        28.955.153 test.exe
> >> 28-05-2020  08:26           500.608 hostfxr.dll
> >> 28-05-2020  08:26           506.248 hostpolicy.dll
> >>
> >> Even the XSharp DLLs are included in test,exe. The total size is 29 Mb.
> >>
> >> You can also prepare an image for Linux by replacing win-x64 with
> >> linux-x64 and then the output is:
> >>
> >> 29-07-2020  16:16        44.552.454 test
> >> 28-05-2020  07:54           563.728 libhostfxr.so
> >> 28-05-2020  07:54           532.408 libhostpolicy.so
> >>
> >> A self contained .Net app for Linux in 44 Mb !
> >>
> >> I hope you find this interesting.
> >>
> >> Robert
> >>
> >> And yes this will be included in the next build. Not with the VS
> >> project system, that will take a bit longer.
> >>
[excessive quoting removed by server]

_______________________________________________
Post Messages to: ProFox@leafe.com
Subscription Maintenance: https://mail.leafe.com/mailman/listinfo/profox
OT-free version of this list: https://mail.leafe.com/mailman/listinfo/profoxtech
Searchable Archive: https://leafe.com/archives
This message: 
https://leafe.com/archives/byMID/CAAwxvU=Rgm8WRHLGKocwwjUCSeBJYEFnTXEUx0zGK=0a0oo...@mail.gmail.com
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to