Hi,
Ich höre immer viel von ot4xb, nur leider steht nirgends so richtig (oder ich habe zu wenig gesucht), wo man ot4xb bekommt und was fast noch wichtiger ist, wie ich das in Xbase++ benutzen kann.
Ich versuche schon seit längerem immer wieder UTF-8 Text so in Xbase++ umzuwandeln, dass auch die Sonderzeichen richtig in der dbf stehen.
Die Lösung scheint cUTF8toAnsi zu sein, die es wohl in der ot4xb zu geben scheint, aber wie ich da rankomme habe ich leider bis heute nicht verstanden, deshalb heute mal meine Bitte an euch, könntet ihr mir vielleicht einen gültigen Link dafür schicken und eine kurze Beschreibung wie ich das einbaue, am besten mit einem kleinen Beispielcode?
Vielen Dank schonmal und viele Grüße
ot4xb
Moderator: Moderatoren
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2825
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 96 Mal
- Danksagung erhalten: 13 Mal
Re: ot4xb
Hallo,
letztens bekam man OT4XB unter der Adresse xbwin.com.
Es handelt sich um eine Zusatzbibliothek für Xbase++, die verschiedene Funktionalitäten erlaubt, wie das von Dir genannte Konvertieren.
letztens bekam man OT4XB unter der Adresse xbwin.com.
Es handelt sich um eine Zusatzbibliothek für Xbase++, die verschiedene Funktionalitäten erlaubt, wie das von Dir genannte Konvertieren.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: ot4xb
Wenn es Dir nur um UTF8 nach ANSI geht:
Ich verwende auch schon mal ot4xb, weil da Funktionen drin sind die wichtig sind. Und in Xbase++ fehlen. Allerdings sind manche der Funktionen mir einfach zu sperrig und tewwleise auch zu langsam.
Runterladen kannst Du Dir das von www.xbwin.com. da gibt es auch ein Forum. Manche Sachen mußt Du da nachsehen, weil die in der Doku nicht immer alle drin stehen (hauptsächlich Anwendungsbeispiele).
Jan
Code: Alles auswählen
FUNCTION UTF8ToAnsi(cUtf8)
LOCAL cMBtoW
LOCAL cWToMB
LOCAL nWideChars
LOCAL cPlainUnicode
LOCAL nCodepage
LOCAL nBytes
LOCAL cAnsi
/*
Guenter Beyes <gbeyes at gmx.de>
Freitag, 10. März 2006 12:10
public.xbase++.generic
Re: UTF-8 conversion
*/
// UTF-8 code-page identifier.
#DEFINE CP_UTF8 65001
cMBtoW := DllPrepareCall("kernel32.dll", DLL_STDCALL, "MultiByteToWideChar")
cWToMB := DllPrepareCall("kernel32.dll", DLL_STDCALL, "WideCharToMultiByte")
// First convert UTF-8 to plain Unicode:
// Add string terminator just to be safe.
cUTF8 += chr(0)
// Get number of resulting wide characters.
nWideChars := DllExecuteCall(cMBtoW, CP_UTF8, 0, cUTF8, -1, 0, 0)
// Provide a sufficient buffer.
cPlainUnicode := Space(2 * (nWideChars + 1))
// Do the conversion.
nWideChars := DllExecuteCall(cMBtoW, CP_UTF8, 0, cUTF8, -1 , ;
@cPlainUnicode, nWideChars + 1)
// Strip Unicode string terminator.
// (NOT, because it's needed in the next step. )
// cPlainUnicode := left( cPlainUnicode, 2*(nWideChars - 1) )
// Now convert plain Unicode to ANSI,
// using the current ANSI code page:
// Get current ANSI code-page identifier.
nCodepage := DllCall("kernel32.dll", DLL_STDCALL, "GetACP")
// Get number of resulting bytes.
nBytes := DllExecuteCall(cWToMB, nCodepage, 0, cPlainUnicode, -1, ;
0, 0, 0, 0)
// Provide a sufficient buffer.
cAnsi := Space(nBytes + 1)
// Do the conversion.
nBytes := DllExecuteCall(cWToMB, nCodePage, 0, cPlainUnicode, -1, ;
@cAnsi, nBytes + 1, 0, 0)
// Strip ANSI string terminator.
cAnsi := Left(cAnsi, nBytes - 1)
RETURN cAnsi
Runterladen kannst Du Dir das von www.xbwin.com. da gibt es auch ein Forum. Manche Sachen mußt Du da nachsehen, weil die in der Doku nicht immer alle drin stehen (hauptsächlich Anwendungsbeispiele).
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: ot4xb
genau, das ist die Adresse von Pablo:
http://www.xbwin.com/
Seit der Neugestaltung seiner Web-Site finde ich mich auch nicht mehr so gut zurecht
Was man braucht ist ...
1. die OT4XB.DLL (mit LIB und CH): "Download ot4xb Package"
2. Dokumentation ... ein heikles Thema ... "unsortiere Dokumente" ... http://www.xbwin.com/doc/ot4xb-docs/
3. Es gab eine schöne alte Hilfedatei, aber die wird ja immer weniger unterstützt ... ach da ganz unten http://www.xbwin.com/download/ot4xb/
4. OT4XB.DLL im Programmverzeichnis der erzeugten EXE oder im Pfad und während Entwicklung noch OT4XB.LIB und OT4XB.CH z.B. im Pfad von Xbase++
5. im Quellcode: #include "OT4XB.CH" ...
6. Funktionen verwenden, wie jede normale Xbase++ Funktion auch.
http://www.xbwin.com/
Seit der Neugestaltung seiner Web-Site finde ich mich auch nicht mehr so gut zurecht
Was man braucht ist ...
1. die OT4XB.DLL (mit LIB und CH): "Download ot4xb Package"
2. Dokumentation ... ein heikles Thema ... "unsortiere Dokumente" ... http://www.xbwin.com/doc/ot4xb-docs/
3. Es gab eine schöne alte Hilfedatei, aber die wird ja immer weniger unterstützt ... ach da ganz unten http://www.xbwin.com/download/ot4xb/
4. OT4XB.DLL im Programmverzeichnis der erzeugten EXE oder im Pfad und während Entwicklung noch OT4XB.LIB und OT4XB.CH z.B. im Pfad von Xbase++
5. im Quellcode: #include "OT4XB.CH" ...
6. Funktionen verwenden, wie jede normale Xbase++ Funktion auch.
- Dateianhänge
-
- ot4xb-Hilfedatei.zip
- Die Datei fehlt auf dem Server, hänge ich sie mal hier an
- (270.08 KiB) 300-mal heruntergeladen
Gruß
Hubert
Hubert