ot4xb

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

ot4xb

Beitrag von Benz »

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
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: ot4xb

Beitrag von georg »

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.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: ot4xb

Beitrag von Jan »

Wenn es Dir nur um UTF8 nach ANSI geht:

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
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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: ot4xb

Beitrag von brandelh »

genau, das ist die Adresse von Pablo:

:arrow: 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 :arrow: 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) 296-mal heruntergeladen
Gruß
Hubert
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: ot4xb

Beitrag von Benz »

ok super, jetzt funktioniert es, vielen Dank! :)
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: ot4xb

Beitrag von AUGE_OHR »

habe in die Wissensbasis die Devcon 2007 / 2012 Unterlagen von Pablo gelegt
http://www.xbaseforum.de/viewtopic.php?f=16&t=9480
gruss by OHR
Jimmy
Antworten