Wenn ich mit X# die DBF Daten auslese, bekomme ich falsche Umlaute bei Daten aus den DBFs angezeigt.
Korrigiere ich die Umlaute in X# sind sie in VO wieder falsch.
Welche Einstellungen brauche ich in X#, damit die Umlaute korrekt angezeigt und eingegeben werden?
In the meantime, can't you use SetAnsi(TRUE) instead (both for opening and creating the dbfs)? I think the only reason for using OEM dbfs is for compatibility with old clipper dbfs.
Yes, that's because the dbf must also be (re)generated with having SetAnsi(TRUE) first (from either X# or VO). Then it will work the same from both X# and VO.
Hi Chris,
that means that I have to
- rename all DBFs (about 30)
- create all DBFs new with SetAnsi(TRUE)
- copy all recs from renamed DBFs to new DBFs
- delete renames DBFs
Or another way maybe?
- Run through all DBFs, update char fields with replaced Umlauts
The dbfs need to be recreated with the new ANSI setting, so you need the first option. Of course you can write a small utility app to do it automatically, if you want I can create one for you.
SetAnsi(TRUE)
FRename(GetDefault()+"KGR.DBF", GetDefault()+"KGR.TMP") // Rename old OEM DBF
odb := dbKgr{} // Create new ANSI DBF
odb:AppendDB(GetDefault()+"KGR.TMP") // Append all recs
// odb:GoTop()
// DO WHILE !odb:Eof
// IF odb:RLOCK()
// odb:FIELDPUT("TXT", Oem2Ansi(odb:FIELDGET("TXT")))
// ENDIF
// odb:Skip()
// ENDDO
odb:Close()
But Umlauts in textfields remain wrong. Then I uncommented DO WHILE block to update textfield manually, but also no effect. What is wrong in my code?
Franz