Author | Topic: Funktion crypt() und ANSI Zeichensatz | |
---|---|---|
Hans Blum | Funktion crypt() und ANSI Zeichensatz on Thu, 17 May 2007 23:31:14 +0200 Hallo Habe ein Problem mit der Funktion crypt() und ANSI Zeichensatz Habe meine Prgs nach ANSI konvertiert dabei ist: crypt(<cString>,<cPassWord>) --> cResultString und crypt(<cResultString><cPassWord>)--> cString (wie beim OEM (Zeichensatz) wenn ich aber cResultString in DBF schreibe und wieder lese --der gelesene unterscheidet sich vom geschriebenen String-- (Warum ? nur bei ANSI ) auch: ConvToAnsiCP() ->falscher String Folge: der ausgelesenen, entcrypte String ist ungleich cResultString Habe ein Beispiel gezipt (Anhang) tcrypt.exe N -> charset OEM tcryp.exe ->Charset ANSI Wer kann mir helfen? oder gibt es eine äquivalente Funktion Mit freundlichen Gruß tcrypt.rar | |
Alfred Janssen | Re: Funktion crypt() und ANSI Zeichensatz on Sun, 20 May 2007 23:55:55 +0200 Hallo Hans, wie hast Du SET CHARSET TO ansi | OEM eingestellt. Probier mal beide Versionen aus. mfg, alfred > Hallo > > Habe ein Problem mit der Funktion crypt() und ANSI Zeichensatz > Habe meine Prgs nach ANSI konvertiert > dabei ist: > crypt(<cString>,<cPassWord>) --> cResultString und > crypt(<cResultString><cPassWord>)--> cString (wie beim OEM > (Zeichensatz) > > wenn ich aber cResultString in DBF schreibe und wieder lese > --der gelesene unterscheidet sich vom geschriebenen String-- (Warum ? > nur bei ANSI ) > auch: ConvToAnsiCP() ->falscher String > Folge: der ausgelesenen, entcrypte String ist ungleich cResultString > > Habe ein Beispiel gezipt (Anhang) > tcrypt.exe N -> charset OEM tcryp.exe ->Charset ANSI > > Wer kann mir helfen? > oder gibt es eine äquivalente Funktion > > Mit freundlichen Gruß | |
Hans@optik-blum.de | Re: Funktion crypt() und ANSI Zeichensatz on Wed, 23 May 2007 13:30:22 +0200 Hallo Alfred, vielen Dank für deine Antwort Problem nur bei charset to ansi und dbfdbe habe aber alle meine Prg?s in ansi konvertiert. Bei SET CHARSET TO OEM und DBFDBE gibt es dieses Problem nicht, da die dbfdbe mit dem OEM Zeichensatz speichert. Suche nur nach einem Schalter oder ähnliches mit dem ich die Crypt-Func. DBFDBE und Ansi benutzen kann. richtige Ergebnisse gibt es nur bei den Kombinationen OEM ->DBFDBE Speicher Daten immer in OEM ANSI->FOXDBE Speichert nach Einstellung Daten in Ansi Viele Grüße, Hans Alfred Janssen schrieb: > Hallo Hans, > > wie hast Du SET CHARSET TO ansi | OEM eingestellt. Probier mal beide > Versionen aus. > > mfg, alfred > > > > >> Hallo >> >> Habe ein Problem mit der Funktion crypt() und ANSI Zeichensatz >> Habe meine Prgs nach ANSI konvertiert >> dabei ist: >> crypt(<cString>,<cPassWord>) --> cResultString und >> crypt(<cResultString><cPassWord>)--> cString (wie beim OEM >> (Zeichensatz) >> >> wenn ich aber cResultString in DBF schreibe und wieder lese >> --der gelesene unterscheidet sich vom geschriebenen String-- (Warum ? >> nur bei ANSI ) >> auch: ConvToAnsiCP() ->falscher String >> Folge: der ausgelesenen, entcrypte String ist ungleich cResultString >> >> Habe ein Beispiel gezipt (Anhang) >> tcrypt.exe N -> charset OEM tcryp.exe ->Charset ANSI >> >> Wer kann mir helfen? >> oder gibt es eine äquivalente Funktion >> >> Mit freundlichen Gruß | |
Thomas Braun | Re: Funktion crypt() und ANSI Zeichensatz on Wed, 23 May 2007 15:50:36 +0200 Hans@optik-blum.de wrote: > Suche nur nach einem Schalter oder ähnliches mit dem ich die Crypt-Func. > DBFDBE und Ansi benutzen kann. Aus der Doku der DBFDBE: > Alle Zeichenketten werden unter Verwendung des OEM Zeichensatzes in > Zeichenfeldern oder Memo-Feldern gespeichert. Wird durch SET CHARSET der > ANSI Zeichensatz für ein Programm eingestellt, erfolgt beim Lesen oder > Schreiben von Feldern eine automatische Konvertierung nach ANSI. Daraus ergibt sich, das du die DBFDBE für diesen Zweck vergessen kannst, denn die ANSI<-->OEM-Konvertierung ist nicht 100% umkehrbar (sprich, mehrere ANSI-Zeichen werden auf dasselbe OEM-Zeichen gewandelt und umgekehrt) Einzige Idee wäre, den verschlüsselten String nochmal so zu codieren, das alle Zeichen unterhalb von ASCII 128 liegen (dort ist die ANSI-OEM Umwandlung umkehrbar), z.B. mit BASE64: http://de.wikipedia.org/wiki/Base64 (dort gibt es auch Links auf alternative Kodierverfahren, wie z.B. quoted-printable oder UUEncode) Für quoted-printable habe ich Xbase++ source, bei Interesse einfach nochmal melden. Grüße Thomas | |
Hans Blum | Re: Funktion crypt() und ANSI Zeichensatz on Thu, 24 May 2007 15:48:27 +0200 Vielen Dank für die Info werde dbfs nach Fox konvertiern Viele Grüße, Hans Thomas Braun schrieb: > Hans@optik-blum.de wrote: > >> Suche nur nach einem Schalter oder ähnliches mit dem ich die Crypt-Func. >> DBFDBE und Ansi benutzen kann. > > Aus der Doku der DBFDBE: > >> Alle Zeichenketten werden unter Verwendung des OEM Zeichensatzes in >> Zeichenfeldern oder Memo-Feldern gespeichert. Wird durch SET CHARSET der >> ANSI Zeichensatz für ein Programm eingestellt, erfolgt beim Lesen oder >> Schreiben von Feldern eine automatische Konvertierung nach ANSI. > > Daraus ergibt sich, das du die DBFDBE für diesen Zweck vergessen kannst, > denn die ANSI<-->OEM-Konvertierung ist nicht 100% umkehrbar (sprich, > mehrere ANSI-Zeichen werden auf dasselbe OEM-Zeichen gewandelt und > umgekehrt) > > Einzige Idee wäre, den verschlüsselten String nochmal so zu codieren, das > alle Zeichen unterhalb von ASCII 128 liegen (dort ist die ANSI-OEM > Umwandlung umkehrbar), z.B. mit BASE64: > > http://de.wikipedia.org/wiki/Base64 (dort gibt es auch Links auf > alternative Kodierverfahren, wie z.B. quoted-printable oder UUEncode) > > Für quoted-printable habe ich Xbase++ source, bei Interesse einfach nochmal > melden. > > Grüße > Thomas |