Автор темы
Кто нибудь решал такую задачу, столкнулся что LotusStream не знает такую кодировку (CP866) ..
как можно еще решить задачу выгрузки данных в формате дос?
как можно еще решить задачу выгрузки данных в формате дос?
Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.
Ключевые ответы обсуждения и их оценка появятся здесь.
Участники с сильными ответами в этой теме появятся здесь.
попробуй IBM866
The list is given as text stream format constants. Any of these values may be used as a stream format for a text stream when creating scripts using the Lotus Connectors LotusScript Extensions. To indicate the character set on the local machine, use the constant LCSTREAMFMT_NATIVE. When providing a character set on the LEI Administrator, use the stream format constant with the prefix ”LCSTREAMFMT_” removed. For DECS see "Forcing LEI or DECS to Use a Character Set as Native" in this chapter.
Stream Format Constant Description
LCSTREAMFMT_LICS Lotus International Character Set
LCSTREAMFMT_IBMCP851 MS-DOS PC Greek (CP 851)
LCSTREAMFMT_IBMCP852 MS-DOS PC Eastern European (CP 852)
LCSTREAMFMT_IBMCP853 MS-DOS PC Turkish (CP 853)
LCSTREAMFMT_IBMCP857 MS-DOS PC Turkish (CP 857)
LCSTREAMFMT_IBMCP862 MS-DOS PC Hebrew (CP 862)
LCSTREAMFMT_IBMCP864 MS-DOS PC Arabic (CP 864)
LCSTREAMFMT_IBMCP866 MS-DOS PC Cyrillic Unicode (CP 866)
LCSTREAMFMT_IBMCP437 MS-DOS PC US (CP 437)
LCSTREAMFMT_IBMCP850 MS-DOS PC Western European (CP 850)
LCSTREAMFMT_IBMCP855 MS-DOS PC Cyrillic (CP 855)
LCSTREAMFMT_IBMCP860 MS-DOS PC Portuguese (CP 860)
LCSTREAMFMT_IBMCP861 MS-DOS PC Icelandic (CP 861)
LCSTREAMFMT_IBMCP863 MS-DOS PC Canadian French (CP 863)
LCSTREAMFMT_IBMCP865 MS-DOS PC Norwegian (CP 865)
LCSTREAMFMT_IBMCP869 MS-DOS PC Greek (CP 869)
LCSTREAMFMT_IBMCP899 IBM Code Page 899 (CP 899)
Private Function toDOS(Byval s_str$) As String
On Error Resume Next
Dim k%, n_asc%, s_chr$, FR$
For k = Len(s_str) To 1 Step - 1
s_chr = Mid(s_str, k, 1)
n_asc = Asc(s_chr)
If n_asc = 168 Then
s_chr = Chr(240)
Elseif n_asc = 184 Then
s_chr = Chr(241)
Elseif n_asc >= 192 And n_asc <= 239 Then
s_chr = Chr(n_asc - 64)
Elseif n_asc >= 240 And n_asc <= 255 Then
s_chr = Chr(n_asc - 16)
End If
FR = s_chr + FR
Next k
toDOS = FR
End Function
вот это попробуй, но корректность функции я не проверял (стиль кода ужасен)
Код:Private Function toDOS(Byval s_str$) As String On Error Resume Next Dim k%, n_asc%, s_chr$, FR$ For k = Len(s_str) To 1 Step - 1 s_chr = Mid(s_str, k, 1) n_asc = Asc(s_chr) If n_asc = 168 Then s_chr = Chr(240) Elseif n_asc = 184 Then s_chr = Chr(241) Elseif n_asc >= 192 And n_asc <= 239 Then s_chr = Chr(n_asc - 64) Elseif n_asc >= 240 And n_asc <= 255 Then s_chr = Chr(n_asc - 16) End If FR = s_chr + FR Next k toDOS = FR End Function
Эту функцию вставте в какую-нит библиотеку.
Потом, там где Вам нужно её использовать подключайте эту библиотеку и вызывайте функцию...
dim dosString as string
dosString = toDOS("срока для преобразования")