ANSII <-> OEM

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

ANSII <-> OEM

Beitrag von Manfred »

Hi,

irgendwie brauche ich nochmals Hilfe:

Ich habe Programme, die im Hybridmodus laufen, oder auch komplett unter GUI. Irgendwie kriege ich das mit den Daten in den DB nicht ganz geklärt. Es werden Fremddaten kontrolliert eingespielt, oder über die Programme erfasst oder geändert. Jetzt habe ich das Problem, wenn ich Set COLLATION TO German mache, dann klappt ein Scope nicht richtig. Wenn ich jeweils SCOPE Top und Bottom auf "A" z.B. setze, dann werden nicht alle Sätze angezeigt. Es wird bei "Advt..." aufgehört. Mache ich auf Set Collation ANSII, dann klappt Scope, aber es gibt Probleme mit den Umlauten. (Auch im Programm. habe ich auch schon einen Thread drüber gehabt). Wie gehe ich jetzt richtig vor?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: ANSII <-> OEM

Beitrag von Martin Altmann »

Manfred,
nimm ANSI und spiele die Daten (bei SET COLLATION TO ANSI) in die DBF ein.
Dann klappt das auch!
Wenn Du bereits Daten vorliegen hast, dann konvertiere sie in der DBF selber einmalig (entweder mittels ConvToANSICP() auf die jeweiligen Felder oder - besser - öffne Deine DBF unter Collation OEM und eine neue (mit ANSI) und appende - dabei wird automatisch konvertiert).

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: ANSII <-> OEM

Beitrag von Jan »

Manfred,

ich kann mich nur wiederholen: Ich arbeite auch mit collation german, und Scopes (beide Varianten: Top/Bottom, Both) funktionieren einwandfrei.

Das muß irgendwo anders dran liegen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: ANSII <-> OEM

Beitrag von Manfred »

@Jan,

es ging jetzt nur darum, das Gespräch aus dem Chat hier hin zu bringen. War ja mal so vereinbart.

@Martin,

was ist denn dann mit XbpBrowse, bzw. mit Get Feldern oder SLE? Zeigen die dann alles richtig an? Ich habe jetzt m.E. schon so viel probiert, aber jedesmal irgendwo Müll gezeigt bekommen. Alles war bisher nicht unter einen Hut zu bringen. :confused2:
Wie gesagt, mal wird im Textmodus erfasst und geändert und mal im Gui Modus. Mal wird im Textmodus Daten übernommen, und mal im GUI Modus. Das kann doch nicht alles nebensächlich sein, oder?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: ANSII <-> OEM

Beitrag von Markus Walter »

Hallo Manfred,

da spielt auch die verwendete DBE eine Rolle...

Ich arbeite mit FOXCDX und habe:
SET COLLATION TO GERMAN
und
DbeInfo(COMPONENT_DATA, FOXDBE_CREATE_2X, .T.), also Foxpro Version 2.6

damit habe ich keine Probleme im Hybrid- oder Gui-Modus. Auch die Scopes stimmen.

Was heisst denn "Es werden Fremddaten kontrolliert eingespielt"? Durch andere Anwendungen? Sie diese von Dir erstellt? Anderes Entwicklungswerkzeug? Wir haben da immer lustige Effekte, wenn wir aus Delphi-Programmen mit ensprechenden Datenzugriffskomponenten Daten reinschreiben...
Gruß
Markus

Mitglied der XUG Saarland-Pfalz
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: ANSII <-> OEM

Beitrag von Manfred »

was müßte denn dann in der DbeSys stehen?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: ANSII <-> OEM

Beitrag von Manfred »

Hi Markus,

Du warst schneller als ich

so sieht meine dbesys aus

Code: Alles auswählen

//  Syntax:                                                                    *
//      DbeSys() wird am Anfang des Programms vor der Funktion MAIN            *
//      automatich aufgerufen.                                                 *
// letzte Änderung:18.02.2006                                                  *
// andere Indexengine eingebunden                                              *
//////////////////////////////////////////////////////////////////////         *


// Text-Konstanten
#define MSG_DBE_NOT_LOADED   " Database-Engine nicht geladen"
#define MSG_DBE_NOT_CREATED  " Database-Engine;konnte nicht erzeugt werden"

********************************************************************************
* DbeSys() wird bei jedem Programmstart ausgefhrt                             *
********************************************************************************
#include "DbfDbe.ch"
********************************************************************************
PROCEDURE dbeSys()
          /*
           *   Der Parameter lHidden wird fr alle Database-Engines, die zu
           *   einer abstrakten Database-Engine kombiniert werden, auf .T. gesetzt.
          */
          LOCAL aDbes := {;
                          { "DBFDBE", .T.},;
                          { "CDXDBE", .T.},;
                          { "DELDBE", .F.},;
                          { "SDFDBE", .F.};
                         }
          LOCAL aBuild :={ { "DBFCDX", 1, 2 } }
          LOCAL nI

          /*
           *   Setzen der Sortierfolge und des Datumformates
          */
          SET COLLATION TO GERMAN 
          SET DATE TO GERMAN

          /*
           *   Laden aller Database-Engines
          */
          FOR nI := 1 TO LEN(aDbes)
              IF ! DBELOAD( aDbes[nI][1], aDbes[nI][2])
                 Alert( aDbes[nI][1] + MSG_DBE_NOT_LOADED , {"OK"} )
              ENDIF
          NEXT nI

          /*
           *   Erzeugen von Database-Engines
          */
          FOR nI := 1 TO LEN(aBuild)
              IF ! DBEBUILD( aBuild[nI][1], aDbes[aBuild[nI][2]][1], aDbes[aBuild[nI][3]][1])
                 Alert( aBuild[nI][1] + MSG_DBE_NOT_CREATED , {"OK"} )
              ENDIF
          NEXT nI

          IF ! DbeLoad( "NTXDBE",.T. )
             Alert( "Database-Engine NTXDBE konnte nicht geladen werden!", {"OK"})
          ENDIF
          IF ! DbeBuild( "DBFNTX", "DBFDBE", "NTXDBE" )
             Alert( "DBFNTX Database-Engine konnte nicht erzeugt werden!", {"OK"})
          ENDIF
          DbeInfo(COMPONENT_DATA,DBFDBE_LIFETIME,0)
          DbeInfo(COMPONENT_ORDER,DBE_LOCKMODE,LOCKING_EXTENDED) // macht das die Massenabfertigung schneller? (29.10.2008)
          RETURN
Fremddaten werden kontrolliert von mir übernommen. Es sind nur Textdateien die aus einer GUI Anwendung heraus erzeugt werden.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: ANSII <-> OEM

Beitrag von Markus Walter »

Hi Manfred,

dann muss es eigentlich reichen, wenn Du in allen Programmen diese dbesys verwendest (und damit die gleichen Einstellungen hast). Wenn nicht noch sonst im Code irgendwo ein "SET COLLATION..." steht...
Natürlich sollte auch die ANSI/OEM passen.

Ansonsten sind mir keine Probleme im Hybrid- und/oder Gui-Modus bekannt. Nur wenn man z. B. Windows-API-Funktionen verwendet, muss man ggf. explizit umwandeln.

Aber, wie gesagt, meine Erfahrungen beziehen sich auf die FOX-Engine.

Aber ich denke es ist bei Dir eine Einstellungssache, ich glaube nicht, dass es sich um ein Problem von Xbase++ handelt.
Gruß
Markus

Mitglied der XUG Saarland-Pfalz
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: ANSII <-> OEM

Beitrag von Manfred »

Hi Markus,

ich denke auch, dass es eine Einstellungssache ist. Aber im Moment weiß ich nicht, welchen Schalter ich wann und wo umlegen muß. Ich werde mir mal die entsprechenden Programmteile nochmals zu Gemüte führen und prüfen, was ich da konvertiere und vor allen Dingen wohin....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1931
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: ANSII <-> OEM

Beitrag von Rolf Ramacher »

Hi Manfred,

ich habe dies bei mir in 2 getrennten prg liegen

Code: Alles auswählen

Proc Appsys

Set Date to German
Set Deleted On
Set Collation to German
Set Console ON
Set Charset to Ansi
Return

Code: Alles auswählen

PROCEDURE DbeSys 
#include "DbfDbe.ch" 
#include "Dmlb.Ch"
 
 
   IF ! DbeLoad( "DBFDBE", .T.)      // Engine für DBF-Dateien laden 
      ALERT( "Database Engine DBFDBE nicht geladen" , {"OK"} ) 
   ENDIF 
 
   IF ! DbeLoad( "CDXDBE" , .T.)     // Engine für CDX-Dateien laden 
      ALERT( "Database Engine CDXDBE nicht geladen" , {"OK"} ) 

   ENDIF 
                                     // Engines für Datensatz- und 
                                     // Index-Management zusammenfügen 
   IF ! DbeBuild( "DBFCDX", "DBFDBE", "CDXDBE" ) 
      ALERT( "Database Engine DBFCDX nicht erzeugt" , {"OK"} ) 
   ENDIF 
 
	DbeSetDefault("DBFCDX")
 
RETURN 
Scope verwende ich auch an gewissen Stellen. Vergleiche mal die Einträge mit deinen. ? Vielleicht ist da irgendwo ein Unterschied ??
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Antworten