Page 1 of 1

identify Language and Codepage of OS at Startup

Posted: Fri Nov 27, 2020 2:11 am
by AUGE_OHR
hi,

i want to build DBF with ""right" Codepage depend on OS Settings.
it must be ANSI DBF Version to import Data from ActiveX like Office

so how do i found out Language and Codepage from OS compare to harbour settings :idea:

Code: Select all

FUNCTION WinCodePage( cStart )
LOCAL nStart    := 1
LOCAL nItem     := 0
LOCAL cRet      := ""
LOCAL aLangName := { "Basque", ;
                        "Czech 852", ;
                        "Czech ISO-8859-2", ;
                        "Czech KAM", ;
                        "Catalan", ;
                        "English", ;
                        "French", ;
                        "Galician", ;
                        "German Ansi", ;
                        "German OEM", ;
                        "Hebrew 862", ;
                        "Hebrew 1255", ;
                        "Hungarian 852", ;
                        "Hungarian CWI-2", ;
                        "Hungarian WINDOWS-1", ;
                        "Italian", ;
                        "Polish 852", ;
                        "Polish ISO-8859-1", ;
                        "Polish Mozowia", ;
                        "Portuguese", ;
                        "Romanian", ;
                        "Russian WINDOWS-1", ;
                        "Serbian ISO-8859-2", ;
                        "Serbian 852", ;
                        "Spanish" }

LOCAL aCodepageID := { "EU", ;
                          "CS852", ;
                          "CSISO", ;
                          "CSKAM", ;
                          "CA", ;
                          "EN", ;
                          "FR", ;
                          "GL", ;
                          "DEWIN", ;
                          "DE850", ;
                          "HE862", ;
                          "HEWIN", ;
                          "HU852", ;
                          "HUCWI", ;
                          "HUWIN", ;
                          "IT", ;
                          "PL852", ;
                          "PLISO", ;
                          "PLMAZ", ;
                          "PT", ;
                          "RO", ;
                          "RUWIN", ;
                          "SRISO", ;
                          "SR852", ;
                          "ES" }

Code: Select all

FUNCTION WinLanguage( cStart )
LOCAL nStart    := 1
LOCAL nItem     := 0
LOCAL cRet      := ""
LOCAL aLangName := {}
LOCAL aLangID   := {}

   AADD( aLangName, "Basque 850" )
   AADD( aLangName, "Catalan 850" )
   AADD( aLangName, "Croatian 852" )
   AADD( aLangName, "Croatian ISO-8859-2" )
   AADD( aLangName, "Czech 852" )
   AADD( aLangName, "Czech ISO-8859-2" )
   AADD( aLangName, "Czech KAM" )
   AADD( aLangName, "English 437" )
   AADD( aLangName, "Esperanto 850" )
   AADD( aLangName, "French 850" )
   AADD( aLangName, "Galician 850" )
   AADD( aLangName, "German 850" )
   AADD( aLangName, "Hebrew 862" )
   AADD( aLangName, "Hungarian 852" )
   AADD( aLangName, "Hungarian CWI-2" )
   AADD( aLangName, "Hungarian Windows-1" )
   AADD( aLangName, "Icelandic 850" )
   AADD( aLangName, "Indonesian 437" )
   AADD( aLangName, "Italian 437" )
   AADD( aLangName, "Korean 949" )
   AADD( aLangName, "Polish 852" )
   AADD( aLangName, "Polish ISO-8859-1" )
   AADD( aLangName, "Polish Mozowia" )
   AADD( aLangName, "Portuguese 850" )
   AADD( aLangName, "Romanian 852" )
   AADD( aLangName, "Russian 866" )
   AADD( aLangName, "Serbian 852" )
   AADD( aLangName, "Serbian ISO-8859-2" )
   AADD( aLangName, "Spanish 850" )

   AADD( aLangID, "EU" )
   AADD( aLangID, "CA" )
   AADD( aLangID, "HR" )
   AADD( aLangID, "HRISO" )
   AADD( aLangID, "CS" )
   AADD( aLangID, "CSISO" )
   AADD( aLangID, "CS" )
   AADD( aLangID, "EN" )
   AADD( aLangID, "EO" )
   AADD( aLangID, "FR" )
   AADD( aLangID, "GL" )
   AADD( aLangID, "DE" )
   AADD( aLangID, "HE" )
   AADD( aLangID, "HU" )
   AADD( aLangID, "HUCWI" )
   AADD( aLangID, "HUWIN" )
   AADD( aLangID, "IS85" )
   AADD( aLangID, "ID" )
   AADD( aLangID, "IT" )
   AADD( aLangID, "KO" )
   AADD( aLangID, "PL" )
   AADD( aLangID, "PLISO" )
   AADD( aLangID, "PLMAZ" )
   AADD( aLangID, "PT" )
   AADD( aLangID, "RO" )
   AADD( aLangID, "RU" )
   AADD( aLangID, "SR" )
   AADD( aLangID, "SRISO" )
   AADD( aLangID, "ES" )

Code: Select all

FUNCTION WinDateFormat( cStart )
LOCAL nItem       := 0
LOCAL cRet        := ""
LOCAL aDateName   := {}
LOCAL aDateFormat := {}
LOCAL nStart      := 1

   AADD( aDateName, "ANSI" )
   AADD( aDateName, "BRITISH" )
   AADD( aDateName, "FRENCH" )
   AADD( aDateName, "GERMAN" )
   AADD( aDateName, "ITALIAN" )
   AADD( aDateName, "JAPAN" )
   AADD( aDateName, "USA" )
   AADD( aDateName, "AMERICAN" )

   AADD( aDateFormat, "yy.mm.dd" )
   AADD( aDateFormat, "dd/mm/yy" )
   AADD( aDateFormat, "dd/mm/yy" )
   AADD( aDateFormat, "dd.mm.yy" )
   AADD( aDateFormat, "dd-mm-yy" )
   AADD( aDateFormat, "yy.mm.dd" )
   AADD( aDateFormat, "mm-dd-yy" )
   AADD( aDateFormat, "mm/dd/yy" )