Page 16 of 19

STRU - Lists and modifies the structure of the dbfs files

Posted: Sat May 18, 2013 9:44 pm
by Pablo César
I found a mistake in the parameterization when the DBF is clicked on folder whose name contains spaces (for example, My Documents), then STRU did not interpret the path+name of the DBF because he was not quoted.

The parameter should contain quotes to receive fully the file name, as follows: C:\..\Stru.exe "%1" /G

File compressed file was actualized already for new download.

Re: STRU - Lists and modifies the structure of the dbfs file

Posted: Sat May 18, 2013 11:22 pm
by fchirico
Pablo César wrote:The "Setup" option now has one more item that allows access to STRU by clicking on DBF in Window Explorer:
...............
Excelent!!!!

Thank you.

Re: STRU - Lists and modifies the structure of the dbfs file

Posted: Sat May 18, 2013 11:56 pm
by danielmaximiliano
Pablo César wrote:Ohh thank you amigo Esgici, as always you are so kind !

I sent a MP to Dr. Soto, asking for any C code solution for these specialfolders cases.
Shall wait and I´ll revert to you.

Best regards
Hola Pablo :
para las carpetas MSDM tiene esto :

http://msdn.microsoft.com/en-us/library ... older.aspx

STRU - Lists and modifies the structure of the dbfs files

Posted: Sun May 19, 2013 1:34 am
by Pablo César
Thanks Fernando for your enjoying !

Thank you Daniel, I have already solved this was a UNICODE convertion for special folders in my code. The problem was when comes with latin accents, but now I've fixed. Tks.

Now I am working in MEMO extension file auto-recognizing and it is working very well...
At begining I have decided to let user or fixed format (DBT/FPT), but I've found a problem when file was not existing then the system crash... but now accessing in low level without memo file, we can know which type is. It is quite ready but I am finishing tomorrow. I am still recovering from surgery, but I believe tomorrow or on monday I finish this:

Code: Select all

aMemos:={{"0x02","FoxBase",""},;
         {"0x03","dBASE III, dBASE IV, dBASE 5, dBASE 7, FoxPro, FoxBASE+",""},;
         {"0x04","dBASE 7",""},;
         {"0x30","Visual FoxPro","FPT"},;
         {"0x31","Visual FoxPro",""},;
         {"0x43","dBASE IV, dBASE 5",""},;
         {"0x63","dBASE IV, dBASE 5",""},;
         {"0x83","dBASE III, FoxBase+, FoxPro","DBT"},;
         {"0x8B","dBASE IV, dBASE 5","DBT"},;
         {"0x8C","dBASE 7","DBT"},;
         {"0xCB","dBASE IV, dBASE 5","DBT"},;
         {"0xE5","SMT","SMT"},;
         {"0xEB","dBASE IV, dBASE 5","DBT"},;
         {"0xF5","FoxPro","FPT"},;
         {"0xFB","FoxBase",""},;
         {"0x54","dBASE IV with SQL","DBT"},;
         {"0xA7","FoxPro 2.x (or older)","DBT"},;
         {"0xB9","FoxBase",""},;
         {"0xE2","dBASE III+ or FoxBase+","DBT"},;
         {"0xEF","dBASE IV","DBT"}}
This is an Array with codes, descriptions and extension names for DBf with Memo fields. I've compoused from many sources (I hope to be in good order).

Another thing is to implement with a persistent routine for opening DBFs that I should do too.

Thanks at all for your entusiastic comments and interests. :D

Re: STRU - Lists and modifies the structure of the dbfs file

Posted: Sun May 19, 2013 4:29 pm
by srvet_claudio
Hi Pablo.
To develop applications that support ANSI and UNICODE, we must abandon those text functions that only support ANSI character set. Here is a partial list of equivalences:

Code: Select all

           ANSI/UNICODE               ANSI Only
 
-          HMG_LEN()             <=>   LEN()
-          HMG_LOWER()           <=>   LOWER()
-          HMG_UPPER()           <=>   UPPER()
-          HMG_PADC()            <=>   PADC()
-          HMG_PADL()            <=>   PADL()
-          HMG_PADR()            <=>   PADR()
-          HMG_ISALPHA()         <=>   ISALPHA()
-          HMG_ISDIGIT()         <=>   ISDIGIT()
-          HMG_ISLOWER()         <=>   ISLOWER()
-          HMG_ISUPPER()         <=>   ISUPPER()
-          HMG_ISALPHANUMERIC()  <=>   RETURN (ISALPHA(c) .OR. ISDIGIT(c))
 
-          (*) HB_USUBSTR()      <=>   SUBSTR()
-          (*) HB_ULEFT()        <=>   LEFT()
-          (*) HB_URIGHT()       <=>   RIGHT()
-          (*) HB_UAT()          <=>   AT()
-          (*) HB_UTF8RAT()      <=>   RAT()
-          (*) HB_UTF8STUFF()    <=>   STUFF()
           (*) Harbour native functions


You have to replace in the source code all functions which only supports ANSI character set for ANSI/UNICODE equivalent functions.

Best regards,
Claudio.

PS: Hi all, this comment is true for all the applications that you develop for UNICODE.

STRU - Lists and modifies the structure of the dbfs files

Posted: Sun May 19, 2013 5:33 pm
by Pablo César
srvet_claudio wrote:To develop applications that support ANSI and UNICODE, we must abandon those text functions that only support ANSI character set. Here is a partial list of equivalences:

Code: Select all

           ANSI/UNICODE               ANSI Only
 
-          HMG_LEN()             <=>   LEN()
-          HMG_LOWER()           <=>   LOWER()
-          HMG_UPPER()           <=>   UPPER()
-          HMG_PADC()            <=>   PADC()
-          HMG_PADL()            <=>   PADL()
-          HMG_PADR()            <=>   PADR()
-          HMG_ISALPHA()         <=>   ISALPHA()
-          HMG_ISDIGIT()         <=>   ISDIGIT()
-          HMG_ISLOWER()         <=>   ISLOWER()
-          HMG_ISUPPER()         <=>   ISUPPER()
-          HMG_ISALPHANUMERIC()  <=>   RETURN (ISALPHA(c) .OR. ISDIGIT(c))

Harbour native functions: 
-------------------------
HB_USUBSTR()      <=>   SUBSTR()
HB_ULEFT()        <=>   LEFT()
HB_URIGHT()       <=>   RIGHT()
HB_UAT()          <=>   AT()
HB_UTF8RAT()      <=>   RAT()
HB_UTF8STUFF()    <=>   STUFF()


You have to replace in the source code all functions which only supports ANSI character set for ANSI/UNICODE equivalent functions.

PS: Hi all, this comment is true for all the applications that you develop for UNICODE.
That's right !!! Great, Dr. Soto ! Now it is clear for me ! Many thank you !

It is very very good to use UNICODE mode. IMO this is the right way... It is wonderfull ! Thank you Dr. Soto for your genious idea ! :)

STRU - Lists and modifies the structure of the dbfs files

Posted: Mon May 20, 2013 5:53 pm
by Pablo César
Routine persistence for DBF opening has been implemented with also auto-recognition of type of DBF, as promissed as follows:
Screen73.PNG
Screen73.PNG (10.99 KiB) Viewed 7455 times
I hope to be enjoyed !

<Attached file removed, see last message with new release>

Re: STRU - Lists and modifies the structure of the dbfs file

Posted: Mon May 20, 2013 9:16 pm
by esgici
Gracias amigo

Good advance :)

Viva HMG :D

STRU - Lists and modifies the structure of the dbfs files

Posted: Mon May 20, 2013 10:51 pm
by Pablo César
Thank amigo Esgici for your interest ! :)

By the way, is it possible to correct your Turkish.Lng file in UTF-8 format and post to us ? And please also let us know if STRU is working properly in your language (in console and GUI modes).

B.Rgds

Re: STRU - Lists and modifies the structure of the dbfs file

Posted: Mon May 20, 2013 11:33 pm
by esgici
Pablo César wrote:is it possible to correct your Turkish.Lng file in UTF-8 format and post to us ?
Done (new lines added).
let us know if STRU is working properly in your language (in console and GUI modes).
Tested, no problem encountered for both ( Console and Windows) modes.

Thanks a lot again :)

Viva HMG :D