|
Von:Jürgen Wondzinski juergen@wondzinski.de An:Ulf Neugebauer uNe-tronics@t-NoSpam.de :gelesen |
erstellt am:19.07.2019 21:23:38
- #23958 in section
Antworten Antworten mit Zitat
Wie gesagt: Ich würd da einfach das hier hernehmen, anstatt mir nen Wolf zu programmieren: ? STRCONV(cUniCodeTxt,10) Servus wOOdy Lianja, Servoy und Visual FoxPro Technologieberater Microsoft "Most Valuable Professional" von 1996 bis 2009 Servoy Valued Professional 2011 "*´¨) ¸.•´¸.•*´¨) ¸.•*¨) (¸.•´. (¸.•` * .•`.Visual FoxPro: It's magic ! (¸.•``••* Servus |
Von:Ulf Neugebauer uNe-tronics@t-NoSpam.de An:Jürgen Wondzinski juergen@wondzinski.de :gelesen |
erstellt am:18.07.2019 23:09:08
- #23957 in section
Antworten Antworten mit Zitat
Hallo Woody, das währ ja schön wenn es so währe! Zum Importieren aus einer Excel Zelle nutze ich eine nahezu nicht dokumentierte Codepage. #DEFINE CP_UTF8 65001 Wenn es Utf8 ist kannst du es in den Ascii Raum konvertieren! Hilfsfunktion: FUNCTION Buf2Word ( tcBuffer ) RETURN ASC( SUBSTR( tcBuffer ,1 ,1 )) + ASC( SUBSTR( tcBuffer ,2 ,1 )) * 256 Arbeitsfunktion: FUNCTION Utf8ToAsc( tcUtf8String ) LOCAL lnLen AS Integer ,; lcChar AS String ,; lcText AS String ,; lnAscx AS Integer lcText = "" lnLen = LEN( tcUtf8String ) IF lnLen = 0 RETURN lcText ENDIF FOR lnCount = 1 TO lnLen-1 STEP 2 lcChar = SUBSTR( tcUtf8String ,lnCount ,2 ) lnAscx = Buf2Word( lcChar ) IF lnAscx < 256 lcText = lcText + CHR( lnAscx ) ELSE DO CASE CASE lnAscx = 287 lcText = lcText + CHR( 240 ) CASE lnAscx = 305 lcText = lcText + CHR( 253 ) CASE lnAscx = 304 lcText = lcText + CHR( 221 ) CASE lnAscx = 350 lcText = lcText + CHR( 222 ) CASE lnAscx = 351 lcText = lcText + CHR( 254 ) * Latin Extended-B CASE lnAscx = 536 lcText = lcText + CHR( 222 ) CASE lnAscx = 537 lcText = lcText + CHR( 254 ) * Sonderzeichen http://www.webmaster-seo.com/unicode/original/range/17/ CASE lnAscx = 8230 lcText = lcText + "..." CASE lnAscx = 8217 lcText = lcText + "'" CASE lnAscx = 8211 lcText = lcText + "-" OTHERWISE ACTIVATE SCREEN ? lnAscx lcText = lcText + "?" ENDCASE ENDIF ENDFOR RETURN lcText Das kann man leicht erweitern, man sieht es an Fragezeichen im Return, dann muss man schauen welchem Code es im Ascii Zeichensatz es entspricht. Aus lnAscx = 8230 werden einfach "...", und das ist natürlich auch im deutschem so. Wie du siehst habe ich mich intensiv damit beschäftigt, auch weil mein Chef einfach mal aus dem Google Übersetzer etwas kopiert und in vfp einfügt, und wenn dann ??? auftaucht kriegt der ne Kriese... na ja mein Problem. Warum ich dennoch mit vfp unterwegs bin hängt mit er einfachen on the fly Instanziierung von Objekten zusammen. Ich hätte auch gern telefoniert, aber das willst du ja nicht... Schade. Wenn ich meine neue Internetpräsenz endlich hinbekomme werde ich die dll's usw. auch zur allgemeinen Verfügung stellen. Ich bin ja auch schon 16 Jahre mit dem Fuchs unterwegs. nichts für ungut! Beste Grüße Ulf Fox on The Run (The Sweet) |
Von:Ulf Neugebauer uNe-tronics@t-NoSpam.de An:Jürgen Wondzinski juergen@wondzinski.de :gelesen |
erstellt am:18.07.2019 16:30:35
- #23956 in section
Antworten Antworten mit Zitat
Hallo Woody, vielen Dank für die Antwort. So mache ich es ja in meinem Servicetool, welches ich on the fly in 25 Sprachen umschaltbar entwickelt habe. Mit den nativen vfp Steuerelementen kommt man nicht sehr weit, spätestens wenn jemand seinen russischen Text aus dem Excel kopieren will geht das nicht, und da geht es nicht nur um Smileys, sondern um unterschiedliche Sprachen in einer Box (z.B. Handlungsanweisungen), von der Formatierung mal gar nicht zu sprechen. Mit dem RTF Control bzw. mit anderen OCX-en klappt es dann. Die Sache mit dem Getfile(), Putfile(), Copy... habe ich in einer C++ dll realisiert. Hier kommt dann aus der dll der Dialog zur Auswahl, diese kopiert entweder nach temp oder gibt gleich die Binär Daten ähnlich FileToString an VFP zurück. Ein anderer Aspekt ist der Zugriff auf Unicode Feldtypen z.B. aus dem SQL Server oder Oracle, wenn sich da auch Sprachen mischen, wird das nichts mehr mit reinem VFP, leider... Beste Grüße Ulf Fox on The Run (The Sweet) |
Von:Jürgen Wondzinski juergen@wondzinski.de An:Ulf Neugebauer uNe-tronics@t-NoSpam.de :gelesen |
erstellt am:18.07.2019 11:01:58
- #23955 in section
Antworten Antworten mit Zitat
Noch nen Nachtrag: Die Funktion STRCONV() kann von Unicode auf SingleCode und zurück wandeln. Und mit dem RichText-Control kannst du schlimmstenfalls dein Unicode auch noch als RTF abspeichern. Servus wOOdy Lianja, Servoy und Visual FoxPro Technologieberater Microsoft "Most Valuable Professional" von 1996 bis 2009 Servoy Valued Professional 2011 "*´¨) ¸.•´¸.•*´¨) ¸.•*¨) (¸.•´. (¸.•` * .•`.Visual FoxPro: It's magic ! (¸.•``••* Servus |
Von:Jürgen Wondzinski juergen@wondzinski.de An:Ulf Neugebauer uNe-tronics@t-NoSpam.de :gelesen |
erstellt am:18.07.2019 10:58:53
- #23954 in section
Antworten Antworten mit Zitat
Servus Ulf, Wir alle wissen, dass VFP ein reines 1Byte-Zeichensatz Produkt ist. Also kann es mit einer kompletten Unicode-Darstellung in einem _nativen_ Steuerelement nie klappen. Aber du kannst jederzeit unterschiedliche Codepages pro Feld parallel darstellen, indem du dir die jeweilig zu verwendende Codepage in einem Int-Feld mit abspeicherst; die VFP-Textbox hat dazu das Property FontCharSet. So kannst du ohne Probleme deutsche und russische und chinesische Texte auf der selben Maske darstellen, gerne auch von Record zu Record unterschiedlich. Wenn du den kompletten Unicode-Zeichensatz bunt gemischt darstellen willst (weil irgendwer Smileys im Artikeltext haben will?), dann nimm ne OCX-Textbox rein. Der String selber kann problemlos in der VFP-DBF gespeichert werden. Servus wOOdy Lianja, Servoy und Visual FoxPro Technologieberater Microsoft "Most Valuable Professional" von 1996 bis 2009 Servoy Valued Professional 2011 "*´¨) ¸.•´¸.•*´¨) ¸.•*¨) (¸.•´. (¸.•` * .•`.Visual FoxPro: It's magic ! (¸.•``••* Servus |
Von:Ulf Neugebauer uNe-tronics@t-NoSpam.de An:All :gelesen |
erstellt am:13.07.2019 16:05:12
- #23953 in section
Antworten Antworten mit Zitat
Hallo, also mir wurde gerade erklärt vfp9 könnte problemlos Unicode Strings darstellen. Da muss mir wohl etwas entgangen sein. Wie stelle ich diesen String in nativen Steuerelementen dar? Wie öffne ich diese Datei? D:\Anleitungen\спецификации\seznam parametrů.txt Deutsch + Russisch + Tschechisch Beste Grüße Ulf Neugebauer Fox on The Run (The Sweet) |