epDBU DBF Administration tool

This forum is meant for anything you would like to share with other visitors
User avatar
Alf
Posts: 55
Joined: Wed Dec 30, 2020 10:04 am

epDBU DBF Administration tool

Post by Alf »

Hello,
is there anyone using the good old epDBU tool? I guess the company Electric People no longer exists and so I can use this tool without registration? Or is there another free or inexpensive DBF-tool to recommend?
Thanks for answer.
Regards
Alf
ic2
Posts: 2010
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Re: epDBU DBF Administration tool

Post by ic2 »

Hello Alf,

Many years ago I redesigned dbv created by multiple colleagues, which can do most of the DBF stuff. I added support for ADS DBF's as well. I even started creating a Vulcan version with the help of Frank Maraite. But that original version was a lot slower. Typing dbv MyDBF from a command prompt was immediate in the VO version while it took something like 2 seconds in the Vulcan version because of the IL. SO I still use the VO version and on my long list 'ToDo' are a couple of small bugs and things to improve.

That having said, if you want to use the current DBV 'as is' without any guarantee that I fix the above thins any time soon ;) , drop me a mail and you can get it (for free of course).

Dick
User avatar
wriedmann
Posts: 4109
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Re: epDBU DBF Administration tool

Post by wriedmann »

Hi Dick,
do you have tried to port that software to X#?
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
ic2
Posts: 2010
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Re: epDBU DBF Administration tool

Post by ic2 »

Hello Wolfgang,

I checked and actually I have an X# version but I hadn't opened it for 5 years. Except for 2 compiler errors for which I can not immediately see a cause or solution, it compiles. Not everything works (yet), some keyboard shortcut didn't work and not did opening ADS DBF's.

Opening a DBF in the X# version takes 1-2 seconds, the VO version is almost immediate. Hence the only reason to improve the an X# version is that it's more future proof. But making the improvements in the VO version objectively makes more sense: I don't have to fix the things which are not working in the X# version and I end up with a faster program. When working on some project, I might quickly open a DBFs dozens of times in an hour using DBV so I introduce an (irritating) extra minute of waiting times every hour.

The waiting time is not an issue for opening a program which stays active for hours after that. Of course I can open a DBF from within DBV once it's opened just as quick in the X# version as in the VO version. But opening from the command prompt is so much quicker.

So either way, going for the X# version is a disadvantage everything taken into account.

Dick
Last edited by ic2 on Fri Mar 27, 2026 2:23 pm, edited 1 time in total.
ic2
Posts: 2010
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Re: epDBU DBF Administration tool

Post by ic2 »

As a separate question, this is 1 program line giving an error XS0266 Cannot implicitly convert type 'codeblock' to 'XSharp._Codeblock'. An explicit conversion exists (are you missing a cast?)

Code: Select all

	bFor := {||}		// Error is here (this and next line)
	bWhile := {||}
	bFor   := IIF( Empty( sForClause), bFor,      &( "{||" + sForClause   + "}" ) )	// But not here!
I can solve that with bFor := &("{||}") but not sure why that is needed.

This one doesn't make sense to me:

Code: Select all

				LOCAL cSep AS CHAR[]
				cSep := CHAR[]{1}
				IF wWorkAs == 2
					cSep[1] := '|'
Error here is: XS0029 Cannot implicitly convert type 'string' to 'char'

But cSep is defined as a CHAR[]. Why does the compiler say I am converting a string (in the last line of the code above).

Dick
FFF
Posts: 1746
Joined: Fri Sep 25, 2015 4:52 pm
Location: Germany

Re: epDBU DBF Administration tool

Post by FFF »

For the 2nd Error: depending on the dialect you use, the meaning of ' changes. In "VO" the compiler accepts ", ', and [] as string marker, only in "Vulcan" the ' denotes a char.
Regards
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
ic2
Posts: 2010
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Re: epDBU DBF Administration tool

Post by ic2 »

Hello Karl,

Indeed that could be an issue, I remember that, but not here. But if I change the faulty line to

Code: Select all

					cSep[1] := "|"
with double quotes, I get the same error. From the error I would say that I feed a string somewhere. But I don't.

Dick
User avatar
wriedmann
Posts: 4109
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Re: epDBU DBF Administration tool

Post by wriedmann »

Hi Dick,
you have defined cSep as array of char.
Therefore you have to assign a char, and in the VO dialect both " and ' can be delimiters for strings.
So, if you would like to define a char, you have to write

Code: Select all

cSep[1] := c'|'
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
User avatar
robert
Posts: 5116
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Re: epDBU DBF Administration tool

Post by robert »

Dick,
With regard to the error with the codeblock:
How did you declare bFor and bWhile?
There is a different in X# (and VO) between CodeBlock and _Codeblock. The first is for compile time codeblocks and the second for macro compiled code blocks.


Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
ic2
Posts: 2010
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Re: epDBU DBF Administration tool

Post by ic2 »

Hello Wolfgang,
wriedmann wrote: Fri Mar 27, 2026 8:38 pm you have defined cSep as array of char.

Code: Select all

cSep[1] := c'|'
That works indeed, thanks. The preceding 'c', that is like a type casting?

The code is from Lutz Eckert' Wildseek and it started a pretty complicated creation of the variable in which to find the '|' or '|&'

Code: Select all

		cToWildSeek := STRING(_CAST,MemUpper( PTR(_CAST,cToWildSeek), SLen(cToWildSeek)))
My guess is that the original Vulcan Transported would have created something unusable from this and that Frank Maraite, who had way more experience with concerting VO to Vulcan at that time, rebuilt it like this. And that it worked in Vulcan and not in (the current) X#.

As written, I should be reviewing both the code and the working of some of the functions. But the fact that the VO version starts so much faster makes it difficult to decide to use X# for it. On the other hand, Wildseek and other operations are considerably faster and most likely more stable in the X# version. For me the quick start is important however and a slower start is unavoidable in any .Net program..

Dick
Post Reply