Przemyslaw Czerpak escribió:
On Tue, 03 Feb 2009, Miguel Angel Marchuet wrote:

Hi Miguel,

the offset 1Dh  at DBF/foxpro header tables has ( Language driver ) as follow:
(Foxpro) Code page: These values follow the DOS / Windows Code Page values.
Value   Description     Code page
01h     DOS USA code page 437
02h     DOS Multilingual        code page 850
03h     Windows ANSI    code page 1252
04h     Standard Macintosh
64h     EE MS-DOS       code page 852
65h     Nordic MS-DOS   code page 865
66h     Russian MS-DOS  code page 866
67h     Icelandic MS-DOS
68h     Kamenicky (Czech) MS-DOS
69h     Mazovia (Polish) MS-DOS
6Ah     Greek MS-DOS (437G)
6Bh     Turkish MS-DOS
96h     Russian Macintosh
97h     Eastern European Macintosh
98h     Greek Macintosh
C8h     Windows EE      code page 1250
C9h     Russian Windows
CAh     Turkish Windows
CBh     Greek Windows

this is full table supporte for old foxpro not vfp ( see below for vfp)

I purpose to save this information at DBF, and use this collation
at dbfCompare, to sort properly the tables.
We can add too other code pages that are created at harbour.

The above list does not cover collation orders well, f.e.:
   64h  EE MS-DOS       code page 852
Informs only about used CP but we still do not know we should
sort using: CS852, HR852, HU852, PL852, RO852, SK852, SL852, ...
Only in few cases the FoxPro CP ID determinate exact CP with
collation order, f.e.:
   69h  Mazovia (Polish) MS-DOS
which is PLMAZ so at beginning you have something what cannot
work well. Of course we can try to hard code our own CP IDs
but IMHO first we should clean our own CODEPAGE subsystem
because the final version may be different then the current
one and such mapping cannot be longer supported. It will be
very serious compatibility problem because we will have old
IDs in existing DBFs.
Adding the above modification is about 30 minute of work.
Updating it to new CP may take days if it's possible at all.
The only implementation which we can add now should be only
for strict VFP compatibility (it should check DBF signature
for 0x3[01]) and should not make any modifications in our CP
code so it should keep the translation table (ourCP<->fpCP)
in own structures. I think it can be added as separate GT
which inherits from DBF* ones (f.e. VFPCDX) so it's not
necessary to touch existing RDD code.

this codes are for old foxpro dbf not for current vfp

BTW does anyone have full list of above FoxPro CP identifiers?

CPDBF([nWorkArea | cTableAlias]) -> Returns the code page with which an open 
table has been marked.

This are all codepages supported by vfp:

Code page       Platform                Code page identifier
437             U.S. MS-DOS             x01
620 *           Mazovia (Polish) MS-DOS x69
737 *           Greek MS-DOS (437G)     x6A
850             International MS-DOS    x02
852             Eastern European MS-DOS x64
857             Turkish MS-DOS          x6B
861             Icelandic MS-DOS        x67
865             Nordic MS-DOS           x66
866             Russian MS-DOS          x65
874             Thai Windows            x7C
895 *           Kamenicky (Czech) MS-DOS x68
932             Japanese Windows        x7B
936             Chinese (PRC, Singapore) Windows        x7A
949             Korean Windows          x79
950             Chinese (Hong Kong SAR, Taiwan) Windows         x78
1250            Eastern European Windows xC8
1251            Russian Windows         xC9
1252            Windows ANSI            x03
1253            Greek Windows           xCB
1254            Turkish Windows         xCA
1255            Hebrew Windows          x7D
1256            Arabic Windows          x7E
10000           Standard Macintosh      x04
10006           Greek Macintosh         x98
10007 *         Russian Macintosh       x96
10029           Macintosh EE            x97

* Not detected when you include CODEPAGE=AUTO in your configuration file.

http://msdn.microsoft.com/en-us/library/8t45x02s(VS.71).aspx


ps. I've seen that you added BlobExport() and BlobImport() functions
    to xHarbour CVS.
    They were not missing. Clipper also does not have them.
    In Clipper and [x]Harbour all Blob*() functions are only
    PP directives defined in blob.ch

thks, i found one problem, when users of ourxdbu try to write code
using BlobImport, macro evaluator not found this function :(, I think
can be good idea to add synonim fo DbFileGet and DbFilePut too as
BlobImport, BlobExport and others to help macroevaluator to solve this
type of code, of course i can say too users, that BlobImport is not a
function. :(

What do you think?



Best regards,
Miguel Angel Marchuet
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to