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
> 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.
BTW does anyone have full list of above FoxPro CP identifiers?

best regards,
Przemek

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
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to