Excel Text usbekisch auslesen

Einbindung von Office-Komponenten wie Word, Excel usw.

Moderator: Moderatoren

Campergue
Rookie
Rookie
Beiträge: 17
Registriert: Mi, 20. Jun 2012 16:47

Excel Text usbekisch auslesen

Beitrag von Campergue » Mi, 20. Jun 2012 17:02

Hallo

hat einer eine Idee wie ich usbekische Schrift aus einer Excel Liste einlesen kann?

Ziel des ganzen ist das ich den Text in ein RTF Format umwandeln möchte und dann in die DB einfügen.

Mein Problem ist das ich beim einlesen der Excel liste einen leeren Datensatz erhalte.

hier der Text =>
Artikelnummer Bezeichnung 2
B10001-0002610 Сверла – твердосплавные сверла с шагом 0,01 мм, 0,26x1,0x30 mm

Code: Alles auswählen

 oExcel := CreateObject("Excel.Application")
   IF Empty(oExcel)
      FEHLER("Excel ist nicht installiert!")
      RETURN .F.
   ENDIF

	 oWorkBook := oExcel:workbooks:open("D:/IMPORT/OST-Express/testrussich.xls")
   aValues := oWorkBook:workSheets(1):usedRange:value
   oWorkBook:Close()


	 oRTF := XbpActiveXControl():new( oDlg:Drawingarea,, {10 ,270 }, { ((nRR/10)*nPixel)+( 0.5 *nPixel), oDlg:drawingarea:CurrentSize()[2]-130 } ,,,"{a0c97100-2786-11db-bdef-0013d350667c}")
	 oRTF:CLSID    := "TIS.TX.TextControl.16"
   oRtf:license  := "TS-5600260478"
   //oRtf:controlFlags := OLECTRL_ACTSLIKELABEL
   oRTF:UseGuiThread := .F.
   oRTF:Create()


	 oRTF:Text := aValues[1][2]
	 msgbox(aValues[2][1])
	 msgbox(aValues[2][2])

	 cFeld := oRTF:RTFSelText
   cFeld := SUBSTR( cFeld ,1, RAT("\par",cFeld)-1) + "}"
   xField := cFeld
Hat einer eine Idee...

Vielen Dank schon mal im Voraus

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14822
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Excel Text usbekisch auslesen

Beitrag von brandelh » Mi, 20. Jun 2012 17:23

Ich habe es mal mit CODE-Tag formatiert, damit man es besser lesen kann. ;-)

1. Idee, teste das Programm mit einer von dir erstellten "deutschen" XLS Datei ...
2. Ich würde die Befehle nicht so tief verschachteln, sondern Prüfschritte durch mehr Variablen ermöglichen ...

Code: Alles auswählen

statt

aValues := oWorkBook:workSheets(1):usedRange:value

oSheet := oWorkBook:workSheets(1) => Namen prüfen, eventuell greift Excel auf ein anders Blatt zu
Range := oSheet:usedRange => was wird als Range zurückgeliefert ...
aValues := oWorkBook:workSheets(1):usedRange:value
msgbox( "Anzahl "+str(len(aValues)) ... => Anzahl der Zeilen testen ...
for x := 1 to len(aValues)
     ? x, len(aValues[x]) ... Dimensionen prüfen, Datentypen dieser Dimensionen ...
...
und so den Fehler eingrenzen.

Es könnte z.B. ein Fehler in der Range zu der Abfrage eines leeren Bereiches führen.
Es könnte sein, dass du zwar viele Zeilen aber alle mit UNICODE Text erhälst, den Xbase++ nicht automatisch umsetzt.
Oder du erhälst viele leere Zeilen (also Blanks oder "") ...
Gruß
Hubert

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12031
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Excel Text usbekisch auslesen

Beitrag von AUGE_OHR » Do, 21. Jun 2012 4:22

Campergue hat geschrieben:

Code: Alles auswählen

aValues := oWorkBook:workSheets(1):usedRange:value
wie Hubert schon sagte du hast ja noch gar keinen Bereich ( Range ) markiert.
du musst den Anfang, gewöhnlich A1, bis Ende "select(ieren)" um was damit machen zu können.
Campergue hat geschrieben:hat einer eine Idee wie ich usbekische Schrift aus einer Excel Liste einlesen kann?

Ziel des ganzen ist das ich den Text in ein RTF Format umwandeln möchte und dann in die DB einfügen.

Mein Problem ist das ich beim einlesen der Excel liste einen leeren Datensatz erhalte.
"leer" oder nicht "darstellbar" ist hier die Frage ...
Campergue hat geschrieben:

Code: Alles auswählen

	 oRTF:CLSID    := "TIS.TX.TextControl.16"

	 oRTF:Text := aValues[1][2]
	 msgbox(aValues[2][1])
	 msgbox(aValues[2][2])
Hat einer eine Idee...
wenn ich das richtig sehe verwendest du TX.TextControl ? schon mal den Support nach usbekisch gefragt ?

ich würde zunächst mal darauf tippen das du einen falschen Font verwendest der keine usbekische Schrift darstellen kann.

was über Windows "kommt" ist ANSI bzw UniCode und deine Excel Tabelle ?
welche Excel Version ? welches OS() ? welche Xbase++ Version ?

ich verwende nun dazu ArialUNI.TTF aus der betreffenden Office Version und speichere in OEM DBF die chinesischen Zeichen.
gruss by OHR
Jimmy

Campergue
Rookie
Rookie
Beiträge: 17
Registriert: Mi, 20. Jun 2012 16:47

Re: Excel Text usbekisch auslesen

Beitrag von Campergue » Do, 21. Jun 2012 9:06

Hallo

OS = Windows7 64 bit
Exel 2010
Xbasee++ 1.90.355

Ich habe grundsätzlich schon zugriff auf die Excel Liste. ich kann auch alle Zellen abfragen. Nur die Zelle wo der uzbekische Teil steht, erhalte ich einen Leer-String oder wie schon vermutet vieleicht auch nicht darstellbar.

Vielleicht noch eine kurze Erläuterung. In unserem Programm verwenden wir den RTF Text Editor und händisch funktioniert auch alles. Ich nehme den Text per Drap and Drow füge den Text in den Editor. Speichere den text und der RFT Code wird in die DB eingetragen. Da ein Kunde nun 10.000 von Artikel den Text hinterlegen will wird es händich sehr mühevoll.

@Hubert
Auf die Excel datei kann ich zugreifen. Mein Array wird auch gefüllt. Die Texte in deutsch werden auch angezeigt. Nur wenn ich auf die Zellen mit der Uzbekischen Schrift zugreife bekomme ich einen Leerstring. Weil selbst das TX_TextControl erstellt zwar ein Gerüst aber ohne Textinhalt. Drum war meine Aussage das ich einen leeren String erhalte.
brandelh hat geschrieben: Es könnte sein, dass du zwar viele Zeilen aber alle mit UNICODE Text erhälst, den Xbase++ nicht automatisch umsetzt.
Ich komme aus der Java welt. Und da würde ich jetzt beim öffnen der Exel Datei bereits ein Charset / konvertierung anstossen (Ist in dem Fall nicht nötig, weil standard utf-8 und kann die zeichen anzeigen) aber das würde ich machen wenn ich zeichenprobleme habe.
Wie ist es bei Xbase++ muss bzw. kann ich das genau so angehen oder habe ich den Satz falsch verstanden?

gruss patrick

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12031
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Excel Text usbekisch auslesen

Beitrag von AUGE_OHR » Do, 21. Jun 2012 9:51

Campergue hat geschrieben:Ich habe grundsätzlich schon zugriff auf die Excel Liste. ich kann auch alle Zellen abfragen. Nur die Zelle wo der uzbekische Teil steht, erhalte ich einen Leer-String oder wie schon vermutet vieleicht auch nicht darstellbar.
wenn Excel es dir nichts anzeigt wird vermutlich auch nichts in deinem Array sein.
versuche mal die ganze Tabelle zu "markieren" und mit einem anderen Font / Codepage zu "formatieren" ob sich was ändert.
ich sagte ja schon das ich ArialUNI.TTF verwende, auf beiden OS() ( chinesisch / deutsch ), damit das klappt.
Campergue hat geschrieben:Vielleicht noch eine kurze Erläuterung. In unserem Programm verwenden wir den RTF Text Editor und händisch funktioniert auch alles. Ich nehme den Text per Drap and Drow füge den Text in den Editor. Speichere den text und der RFT Code wird in die DB eingetragen. Da ein Kunde nun 10.000 von Artikel den Text hinterlegen will wird es händich sehr mühevoll.
meinst du mit "RTF Text Editor" jetzt WordPad / Write ? welchen Font verwendest du bei der "händisch" Eingabe von usbekische Zeichen ?

ein RTF "Code" ist ja nicht nur "Text" sondern auch z.b. der Font steckt drin.
Frage : wenn du den RTF "Code" wieder aus der DBF ( Memo ?) "raus" holst was machst du dann damit ?
gruss by OHR
Jimmy

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14822
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Excel Text usbekisch auslesen

Beitrag von brandelh » Do, 21. Jun 2012 10:01

Kannst du feststellen, ob die Excel-Datei in ANSI (russisch oder so) oder in UNICODE ist ?
Es gibt Funktionen zur Umwandlung :arrow: Unicode2Str( <cuString>] ) du könntest auch versuchen die problematische Zelle mit var2char() nach Ansi zu bekommen.

Wenn Excel "russisches Ansi" liefern würde (also in einer anderen Codepage), müssten dennoch Zeichen ankommen,
denn der asc() Wert ist ja identisch, nur die darstellung variiert. Auch UTF-8 müsste normale Zeichen und "seltsame" liefern.
Daher vermute ich, dass Office 2010 hier schon Unicode liefert, aber dieses nicht sauber rüber kommt.
Gruß
Hubert

Campergue
Rookie
Rookie
Beiträge: 17
Registriert: Mi, 20. Jun 2012 16:47

Re: Excel Text usbekisch auslesen

Beitrag von Campergue » Do, 21. Jun 2012 10:25

AUGE_OHR hat geschrieben:wenn Excel es dir nichts anzeigt wird vermutlich auch nichts in deinem Array sein.
Habe ich mich vielleicht unglücklich ausgedrückt. In der Excel Liste kann ich den Text schon sehen und auch den text in rtf konvertieren funktioniert auch. Habe den uzbekischen text direkt dem oRtf:text übergeben und dann mit oRTF:RTFSelText in die DB eingetragen. Das Ergebniss ist genau das was ich haben will.

Was nicht funktioniert ist eigentlich nur das einlesen.... bzw. einlesen selbst geht ja auch. Nur ich verliere den Inhalt(nur die Zellen mit der uzbekischen Schrift) beim Einlesen

Also ich bin mal mit dem Debugger drüber ich erhalte tatsächlich beim Einlesen nur ein LeerString......

@auge_ohr
da die Konventierung nicht das Problem ist, glaube ich das Ansatz bezüglich des Font in die falsche Richtung geht....

@brandelh
leider habe ich keine Ahnung wie ich das rausfinden soll? Nur soviel. Beim Debuggen war ein String mit der Länge 63 nach einem alltrim war die Länge = 0. So nach dem Motto kenn ich net, mache ich ein leerzeichen....

Da ich mit xbase++ / Windows Welt(programmier) völliger Anfänger bin. Entschuldigt mir die Frage aber wo finde ich unterlagen zur den Activex Programmen wie hier zum Beispiel Excel?

vielleicht finde ich ja eine Möglichkeit direkt beim Einlesen einfluss auf die Zeichenkonventierung zubekommen. Ich vermute mal wenn bereits Müll ankommt, werde ich wahrscheinlich umwandeln können wie ein wilder ohne Ergebniss....

Danke für euere Geduld :D :wink:

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13485
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Excel Text usbekisch auslesen

Beitrag von Jan » Do, 21. Jun 2012 10:59

Hallo Patrick,

Xbase++-Beginner sind herzlich willkommen hier! Also keine Scheu, immer her mit Deinen Fragen und Problemen.

Es gibt in der Alaska-Installation einige Beispiele zu ActiveX. Auch eines zu Excel. Aber soweit bist Du ja im Prinzip schon. Ansonsten schau mal in \XppW32\source\samples\activex\ nach.

Hast Du denn mal versucht, die Variablen im Debugger anzusehen? Oder das Excel-Object im Object-Inspector von VX? Das ist enorm hilfreich, um eventuelle Probleme zu betrachten.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12031
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Excel Text usbekisch auslesen

Beitrag von AUGE_OHR » Do, 21. Jun 2012 11:43

Campergue hat geschrieben:
AUGE_OHR hat geschrieben:wenn Excel es dir nichts anzeigt wird vermutlich auch nichts in deinem Array sein.
Habe ich mich vielleicht unglücklich ausgedrückt ...

da die Konventierung nicht das Problem ist, glaube ich das Ansatz bezüglich des Font in die falsche Richtung geht....
du kannst den usbekisch Text in Excel "sehen" und "markieren" und per DragDrop / Clipboard and RTF:Text übergeben ?

aber der RTF:Text ist nur der "Body", der Font etc. steht im RTF "Header".
mach mal ein DragDrop nach WordPad / Write und siehe die Datei im Hex Editor an was das steht als Font / Codepage.

Frage : wie sieht es mit einem CSV "Export" aus ?
gruss by OHR
Jimmy

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14822
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Excel Text usbekisch auslesen

Beitrag von brandelh » Do, 21. Jun 2012 11:47

Hallo Jan,

nach seiner obigen Erklärung hat er alles funktionsfähig um aus der Excel Tabelle die Daten zu lesen, solange diese "normale" Texte enthalten.

Hallo Patrick,

vermutlich ist die ActiveX Schnittstelle zu Excel mit dem Datenformat dieser Spalte (unicode ?) überfordert.
Das kann aber eigentlich nur Alaska selbst beurteilen ...

Was passiert eigentlich, wenn du in Excel die Datei als XLS oder DBF abspeicherst, beides könnte man auch über ActiveX tun.
Gruß
Hubert

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13485
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Excel Text usbekisch auslesen

Beitrag von Jan » Do, 21. Jun 2012 11:59

Hubert,

genau. Deswegen werden die Beispiele von Alaska nicht mehr weiterhelfen, denn soweit ist er ja schon. Aber da er schreibt, das Xbase++ noch neu für ihn ist kennt er vielleicht die Hilfsmittel wie den tollen Debugger und den Codeinspector nicht. Die gerade in diesem Fall immens weiterhelfen könnten wo er nicht weiß, wo das Problem beginnt aufzutauchen.

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: 14822
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Excel Text usbekisch auslesen

Beitrag von brandelh » Do, 21. Jun 2012 12:46

Excel1.PRG aus den Beispielen öffnet eine DBF und schreibt eine XLS (bzw. das Standardformat).
Dieses Beispiel müsste er nur umdrehen, XLS öffnen, richtiges Arbeitsblatt wählen (meist automatisch richtig) und als Speicherformat DBF nutzen ...
Vermutlich xlDBF3 statt xlWorkbookNormal :arrow: ...\XPPW32\source\samples\activex\msexcel
mal sehen was Excel hier dann macht :-D
Gruß
Hubert

Campergue
Rookie
Rookie
Beiträge: 17
Registriert: Mi, 20. Jun 2012 16:47

Re: Excel Text usbekisch auslesen

Beitrag von Campergue » Do, 21. Jun 2012 14:06

Wow

also als erstes mal vielen Dank für den herzlichen Empfang. =D>

so nun zu den Punkten.
AUGE_OHR hat geschrieben:Frage : wie sieht es mit einem CSV "Export" aus ?
Habe ich versucht. Dann verliere ich alle zeichen. die werden dann ersetzt durch ??????
AUGE_OHR hat geschrieben:mach mal ein DragDrop nach WordPad / Write und siehe die Datei im Hex Editor an was das steht als Font / Codepage.

Code: Alles auswählen

{\rtf1\ansi\ansicpg1252\uc1\deff0{\fonttbl
{\f0\fnil\fcharset0\fprq2 Arial;}
{\f1\fnil\fcharset0\fprq0 Calibri;}
{\f2\froman\fcharset2\fprq2 Symbol;}}
{\colortbl;\red0\green0\blue0;\red255\green255\blue255;\red0\green0\blue0;}
{\stylesheet{\s0\itap0\nowidctlpar\f0\fs24 [Normal];}{\*\cs10\additive Default Paragraph Font;}}
{\*\generator TX_RTF32 16.0.534.501;}
\deftab1134\margl0\margt0\margr0\margb0\widowctrl\formshade\sectd
\headery720\footery720\pgwsxn12240\pghsxn15840\marglsxn1800\margtsxn1440\margrsxn1800\margbsxn1440\pard\itap0\nowidctlpar\plain\f1\fs22\cf3\loch\f1\hich\f1\u1057 ?\u1074 ?\u1077 ?\u1088 ?\u1083 ?\u1072 ? \'96 \u1090 ?\u1074 ?\u1077 ?\u1088 ?\u1076 ?\u1086 ?\u1089 ?\u1087 ?\u1083 ?\u1072 ?\u1074 ?\u1085 ?\u1099 ?\u1077 ? \u1089 ?\u1074 ?\u1077 ?\u1088 ?\u1083 ?\u1072 ? \u1089 ? \u1096 ?\u1072 ?\u1075 ?\u1086 ?\u1084 ? 0,01 \u1084 ?\u1084 ?, \'9d0,26x1,0x30 mm}

So sieht der RTF Gerüst im Memofeld aus wenn ich es händlich mache....
brandelh hat geschrieben:Was passiert eigentlich, wenn du in Excel die Datei als XLS oder DBF abspeicherst, beides könnte man auch über ActiveX tun.
Du meinst also die Excel auslesen und in eine dbf Tabelle einfügen? Oder direkt die Excel liste in ein DBF Tabelle umwandeln?

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14822
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Excel Text usbekisch auslesen

Beitrag von brandelh » Do, 21. Jun 2012 15:59

direkt in Excel "speichern unter ..." wählen und CSV und DBF3 oder DBF4 versuchen.
Gruß
Hubert

Campergue
Rookie
Rookie
Beiträge: 17
Registriert: Mi, 20. Jun 2012 16:47

Re: Excel Text usbekisch auslesen

Beitrag von Campergue » Do, 21. Jun 2012 16:18

das ist das ergebnis wenn ich die .xls Datei mit "Speichern unter" CSV auswähle. Die anderen zwei Formaten werden mir nicht angeboten

Code: Alles auswählen

Artikelnummer	Bezeichnung 2
B10001-0002610	?????? – ?????????????? ?????? ? ????? 0,01 ??, 0,26x1,0x30 mm

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14822
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Excel Text usbekisch auslesen

Beitrag von brandelh » Do, 21. Jun 2012 21:02

Und was machten ältere Versionen, oder hast du es noch nie mit der kyrillischen Schrift versucht ?
Wenn aber Excel das schon selbst nicht ausgeben kann ... :oops:
Gruß
Hubert

Campergue
Rookie
Rookie
Beiträge: 17
Registriert: Mi, 20. Jun 2012 16:47

Re: Excel Text usbekisch auslesen

Beitrag von Campergue » Do, 21. Jun 2012 22:09

also sehen meine Chancen schlecht aus.

nein bisher haben wir keine Erfahrungen mit kyrillischer Schrift. Aber die Anfragen mit verschiedenen Sprachen werden immer mehr...

Habe ich den keine Möglichkeit xbase++ zu sagen behandele den String als UTF-8?

ich habe die Excel Datei über java eingelesen. Da behalte ich den String im Original Zeichensatz. und java verwendet als Standard ja utf-8.

Wenn das weiter geht werde ich wohl jxbase erstellen müssen 8)

Hmm, mal blöd gefragt, hat jemand vielleicht bereits Erfahrungen mit Java / Xbase++ ??

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13485
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Excel Text usbekisch auslesen

Beitrag von Jan » Do, 21. Jun 2012 22:18

Patrick,

klar kannst Du UTF-8 einlesen. Ich selber mache das regelmäßig, wenn auch aus und in eine Textdatei und nicht Excel, was aber dafür vollkommen egal ist. Wenn Du die Routine brauchst kann ich Dir die gerne durchmailen. Du findest die aber auch in der Alaska-NG, da hab ich die her.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Campergue
Rookie
Rookie
Beiträge: 17
Registriert: Mi, 20. Jun 2012 16:47

Re: Excel Text usbekisch auslesen

Beitrag von Campergue » Do, 21. Jun 2012 22:39

Hallo Jan,

ich wäre dir zu dank verpflichtet =D> :D 8)

sende es bitte an meine firmen email => pc at wegasoft de

das ist meine letzte Hoffnung :roll:

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12031
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Excel Text usbekisch auslesen

Beitrag von AUGE_OHR » Fr, 22. Jun 2012 4:03

Campergue hat geschrieben:

Code: Alles auswählen

{\rtf1\ansi\ansicpg1252\uc1\deff0{\fonttbl
{\f0\fnil\fcharset0\fprq2 Arial;}
{\f1\fnil\fcharset0\fprq0 Calibri;}
{\f2\froman\fcharset2\fprq2 Symbol;}}
das ist mehr als 1 Font der da geladen wird
Campergue hat geschrieben:

Code: Alles auswählen

\f1\fs22\cf3\loch\f1\hich\f1\u1057 ?\u1074 ?\u1077 ?\u1088 ?\u1083 ?\u1072 ? \'96 \u1090 ?\u1074 ?\u1077 ?\u1088 ?\u1076 ?\u1086 ?\u1089 ?\u1087 ?\u1083 ?\u1072 ?\u1074 ?\u1085 ?\u1099 ?\u1077 ? \u1089 ?\u1074 ?\u1077 ?\u1088 ?\u1083 ?\u1072 ? \u1089 ? \u1096 ?\u1072 ?\u1075 ?\u1086 ?\u1084 ? 0,01 \u1084 ?\u1084 ?, \'9d0,26x1,0x30 mm}
ich hab es mal auf den Teil reduziert. es wird "\u" mit einer Nummer verwendet.
die Nummern stehen für Unicode Zeichen für die es kein ANSI Äquivalent gibt.

in einer RTF sind also alle Font Informationen enthalten die zur Darstellung benötigt werden.
wenn Excel es "darstellen" kann und du es per DragDrop in den RTF Editor "fallen" lässt wird es natürlich im RTF "Format" eingefügt.

du könntest es aber per Dragdrop auch in Notepad "fallen" lassen und dann bekommst du ANSI ...
und was sich nicht darstellen lässt gibt es eben nicht ... und das genau passiert bei deinem activeX.

hier kommt nun ArialUNI.TTF ins Spiel was ja mit Office kommt und sich "tief" in das OS() "einnistet"
ArialUNI.TTF ist praktische in jeder Application anwendbar, sogar in Notepad.

Wenn nun eine Excel Tabelle mit ArialUNI.TTF erfasst wurde und man im Notepad die "richtige"
Codepage einstellt dann kann ich damit auch chinesische Zeichen darstellen nach einem Dragdrop.

wenn man nun verschiedene Codepage in einer Excel Tabelle hat muss man schon Wordpad nehmen den Notepad kann immer nur 1 Font darstellen.

btw. das "umschalten" der Codepage wird automatisch vom OS() "erkannt" wenn man z.b. in den "Pejing" Modus wechselt.
Office Produkte "erkennen" so was aber eine Xbase++ Application muss sich die Message vom OS() erst "holen" und sie dann "auswerten" um darauf zu reagieren.
gruss by OHR
Jimmy

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14822
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Excel Text usbekisch auslesen

Beitrag von brandelh » Fr, 22. Jun 2012 8:37

Frage, MUSS es Excel sein ?

Wenn du nur Daten transferieren willst, wäre eine CSV viel einfacher, wobei diese dann in UTF8 sein sollte ...
Zeilenweise einlesen (nicht mit der SDFDBE ... sondern direkt in der Wissenbasis habe ich dazu eine Routine hinterlegt),
umsetzen nach ANSI (numerische Infos, sollten gleich sein), Rest als UTF8 in einem FOX binär Feld speichern (flexible Länge, alle Zeichen möglich).
Eigentlich sollte UTF8 direkt als Text speicherbar sein, da ja die 16bit UNICODE Zeichen in ein/mehrere 8 Bit Zeichen gepresst werden.

Mit der hoffentlich bald erscheinenden Xbase++ 2.0 sollte das einfacher werden, da laut einer Aussage von Alaska z.B. Android SQLite DB direkt lesbar/bearbeitbar sein sollen
(falls ich das nachher nicht falsch verstanden habe ;-) )

Wenn du mit JAVA und ActiveX die Daten richtig bekommst, dann muss das Problem in der Typwandlung der Xbase++ ActiveX Schnittstelle liegen ... :arrow: Alaska Support fragen ;-)
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14822
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Excel Text usbekisch auslesen

Beitrag von brandelh » Fr, 22. Jun 2012 8:41

Du könntest aber auch ein JAVA Programm (ohne Oberfläche, Parameter gesteuert) schreiben, das die Daten direkt aus Excel holt und in ein passendes Format zwischenspeichert.
Dieses Programm aus Xbase++ heraus aufgerufen ( runshell() kann im Hintergrund und syncron oder asyncron laufen) erzeugt die Zwischendatei die du danach einliest.
Gruß
Hubert

Campergue
Rookie
Rookie
Beiträge: 17
Registriert: Mi, 20. Jun 2012 16:47

Re: Excel Text usbekisch auslesen

Beitrag von Campergue » Fr, 22. Jun 2012 8:46

deine Beschreibung scheint einleuchtent zu sein.

Das einfügen in die Datenbank im RTF-Format ist beabsichtigt weil die bestehende Datenbankstruktur und die bestehende Applikation auch auf Ansi aufgebaut ist. Der Text wird nur für den Druck benötigt.

Wo ich dir nur noch nicht folgen kann ist wie mir das Tool ArialUNI.TTF helfen kann?

Ich bekomme eine Excel-Liste die ca. 10.000 Datensätze enthalten wird mit einer Spalte Artikelnummer(für die Zuordnung) und eine Spalte mit der krylischen Schrift. Meine Aufgabe dabei ist nur den Text in das Memofeld zu transferieren. Diese Aktion ist einmalig. Zukünftig wird der Kunde die Artikel bei Neuanlage selbst händich pflegen können. Was ja keine Probleme darstellt.

Mein Entwicklungsleiter würde es sicher nicht gefallen, wenn ich zu ihm hingehe und im sagen muss er soll das Tool wechseln.

Oder sehe ich gerade den Wald vor lauter Bäumen net und verstehe deine Worte falsch.....

Gruss Patrick

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14822
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Excel Text usbekisch auslesen

Beitrag von brandelh » Fr, 22. Jun 2012 9:00

ArialUNI.TTF ist kein TOOL, sondern der Font Arial mit Unicode Codierung. Bei meinem XP Rechner liegt der in c:\windows\fonts
Gruß
Hubert

Campergue
Rookie
Rookie
Beiträge: 17
Registriert: Mi, 20. Jun 2012 16:47

Re: Excel Text usbekisch auslesen

Beitrag von Campergue » Fr, 22. Jun 2012 9:08

grins brandelh

diesen Gedanken hatte ich auch schon. Nur fehlt mir ein Puzzleteil.

1. ich lese in Java ein String ok. (kein gescheites Tool gefunden wo mir den Text in RTF Konventieren kann)
2. ich brauche aber Xbase++ um die Daten in die ADS Datenbank zu bekommen.
(Probleme mit dem JDBC Treiber von Sybase für ADS, andere lange Geschichte 8), aber bereits mit Sybase in Klärung Soll in 11. behoben werden. )

mir fällt gerade keine andere Idee ein wie ich den eingelese String an Xbase++ übergeben kann ohne das ich den Original Zeichensatz zu verlieren.....

mein derzeitiger paraller Versuch ist. das ich versuche mit Java auf die Activex Komponente zu kommen den String mit dem RTF Format an xbase++ übergebe der dann diesen in die DB eintragen kann.

Aber mal ein Grosses Dankeschön an alle. Ihr seit mir echt eine grosse Hilfe....
brandelh hat geschrieben:ArialUNI.TTF ist kein TOOL, sondern der Font Arial mit Unicode Codierung. Bei meinem XP Rechner liegt der in c:\windows\fonts
Ah ok. das heißt ich nehme mir die Exel Liste vor und setze die Schriftart auf die oben genannte und dann hätte ich eine Chance es einzulesen....?
NACHTRAG => kann mir die Antwort selber geben, das funktioniertiert so natürlich nicht [-X

Antworten