National characters

National characters

Postby Zupan Miran » Thu Jan 12, 2017 8:46 am

Hello to all
i am new in Fivewin and I'm currently working on transfer old program
written in clipper (and xbase++) to new environment ... and xbrowse.
All my DBF are in CP852 (for compatibility reason!). In HMG (harbour minigui) I simpy add
REQUEST HB_LANG_SL852
REQUEST HB_CODEPAGE_SL852
...
and function hb_OemToAnsi() to
COLUMNS "sifpar",hb_OemToAnsi("naziv"),hb_OemToAnsi("ulica"),hb_OemToAnsi("Naslov");

and in browse I have slovene national characters, but not in fivewin xbrowse. Also, in search field
I can not insert characters like "šđžćč"
Any help (or hint)?
Miran Zupan
Code: Select all  Expand view
 #include "fivewin.ch"

//  REQUEST HB_LANG_SLWIN
//  REQUEST HB_CODEPAGE_SLWIN

  //*** national characters in PARTNER.DBF are in CP852 ***
  REQUEST HB_LANG_SL852
  REQUEST HB_CODEPAGE_SL852

  REQUEST DBFCDX


FUNCTION Main()
  LOCAL oDlg, oFont, oBrw

//  hb_LangSelect("SL852")
  hb_SetCodePage("SL852")


//*** for testing
//   FW_SetUnicode( .T. )

MsgInfo(SET(_SET_CODEPAGE))

  USE PARTNER NEW VIA "DBFCDX"
      INDEX ON sifpar TAG "sifra" TO PARTNER
      INDEX ON naziv  TAG "naziv" TO PARTNER
      INDEX ON ulica  TAG "ulica" TO PARTNER
      INDEX ON naslov TAG "kraj"  TO PARTNER
      SET INDEX TO PARTNER
      DbSetOrder( "naziv" )
  DbGoTop()

  IF IsWin8() .or. IsWindows10()
     DEFINE FONT oFont NAME "Segoe UI" SIZE 0, -14
  ELSE
     DEFINE FONT oFont NAME "Arial CE" SIZE 0, -14
  ENDIF

  DEFINE DIALOG oDlg SIZE 1200,700 PIXEL FONT oFont TRUEPIXEL ;
         TITLE "FWH 16.12 : SEEK IN HEADER BAR"

  @ 20,20 XBROWSE oBrw SIZE -20,-20 PIXEL OF oDlg ;
             DATASOURCE "PARTNER"                    ;
             HEADERS hb_OemToAnsi("ćifra"),"Naziv"+CRLF+"partnerja","Naslov","Kraj" ;
             COLUMNS "sifpar",OemToAnsi("naziv"),OemToAnsi("ulica"),OemToAnsi("Naslov");
             FIELDSIZES 80,400,400,400                ;
             CELL LINES NOBORDER FOOTERS AUTOSORT

             WITH OBJECT oBrw
               :lFastEdit        := .T.
               :nEditTypes       := EDIT_GET
               :nMarqueeStyle    := MARQSTYLE_HIGHLROW
               :nColDividerStyle := LINESTYLE_LIGHTGRAY
               :nRowDividerStyle := LINESTYLE_LIGHTGRAY
               :nStretchCol      := STRETCHCOL_LAST
               :lSeekBar         := .t.
               :bClrEdits        := { || { CLR_HRED, CLR_YELLOW } }
               :CreateFromCode()
             END

  ACTIVATE DIALOG oDlg CENTERED
  RELEASE FONT oFont

RETURN nil
 
Zupan Miran
 
Posts: 5
Joined: Mon Mar 30, 2009 9:06 pm
Location: Slovenia

Re: National characters

Postby cnavarro » Thu Jan 12, 2017 3:13 pm

Try in your Main function

Code: Select all  Expand view

HB_CDPSELECT( "SL852" )   // or CP852
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: National characters

Postby Zupan Miran » Thu Jan 12, 2017 10:04 pm

Or, back to the clipper days ...
I wrote convert program something like this

STATIC FUNCTION Convert_CP1250(kaj)
//*** Big letters
kaj = IF("¬" $ kaj,STRTRAN(kaj,"¬","Č"),kaj)
kaj = if("¦" $ kaj,STRTRAN(kaj,"¦","Ž"),kaj)
kaj = if("ć" $ kaj,STRTRAN(kaj,"ć","Š"),kaj)
kaj = if("Ź" $ kaj,STRTRAN(kaj,"Ź","Ć"),kaj)
kaj = if("Ń" $ kaj,STRTRAN(kaj,"Ń","Đ"),kaj)

//*** small letters
kaj = if("ź" $ kaj,STRTRAN(kaj,"ź","č"),kaj)
kaj = if("§" $ kaj,STRTRAN(kaj,"§","ž"),kaj)
kaj = if("ç" $ kaj,STRTRAN(kaj,"ç","š"),kaj)
kaj = if("†" $ kaj,STRTRAN(kaj,"†","ć"),kaj)
kaj = if("Đ" $ kaj,STRTRAN(kaj,"Đ","đ"),kaj)

RETURN kaj

and convert old dbf to CP1250
Maybe, this is better solution now
Best regards
Miran Zupan
Zupan Miran
 
Posts: 5
Joined: Mon Mar 30, 2009 9:06 pm
Location: Slovenia

Re: National characters

Postby cnavarro » Thu Jan 12, 2017 10:25 pm

Function DbuseArea allow To indicate the codepage parameter
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 80 guests