Агент куда-то девает перевод строки

Тема в разделе "Lotus - Программирование", создана пользователем ABarmin, 1 янв 2011.

  1. ABarmin

    ABarmin Гость

    Чтобы как-то наладить выполнение LotusScript между двумя БД решил использовать агенты. Соответственно, данные, которые уходят в агент и которые он возвращает хранятся в переменных окружения. Проблема в том, что эти переменные окружения куда-то девают перевод строки.

    С этим можно как-то бороться?

    Агент:
    Код (LotusScript):
    Sub Initialize
    ' библиотека подключена
    Dim setting As New SettingManager

    Dim s As New NotesSession
    Dim id As String
    Dim res As String

    id = s.GetEnvironmentString("var")

    res = setting.getSetting(id)

    Call s.SetEnvironmentVar("res", res)
    End Sub
    Библиотека получения параметра:
    Код (LotusScript):
    Public Class SettingManager
    ' возвращает параметр по его id
    Function getSetting (ID As String) As String
    Dim res As Variant
    Dim q As String

    q = {@dblookup("":"NoCache"; @dbname; "Настройки"; "} + ID + {"; 2; [FAILSILENT])}
    res = Evaluate(q)

    If Not Isempty(res) Then
    Dim out As String
    out = ""

    Forall r In res
    out = out + r + Chr(13)
    End Forall

    getSetting = out
    End If
    End Function

    ' возвращает базу данных, сервер и путь
    ' которой указан в значении настройки с ключом
    ' ID
    Function getDB (ID As String) As NotesDatabase

    End Function

    ' конструктор
    Sub new

    End Sub
    End Class
    Когда вызываю getSetting непосредственно из той БД, где она описана все переносы строк на месте.

    Что можете посоветовать?
     
  2. lmike

    lmike нет, пердело совершенство
    Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    малопонятное обоснование...
    почемубы просто не использовать временный файл?
     
  3. ABarmin

    ABarmin Гость

    Уже задавал на этом форуме вопрос, как еще это можно сделать (задал тут, послали сюда), поэтому и решил использовать агенты.

    Можно как-то победить проблему с потерей #13??
     
  4. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    как вариант - не используй его, выбери другой разделитель...
     
  5. ABarmin

    ABarmin Гость

    Угу, дело в разделителе. Перевод строки Chr(13) + Chr(10) - вдруг кому пригодится.
     
  6. lmike

    lmike нет, пердело совершенство
    Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    есть нюанецы (и в будущем они проявятся)... :rolleyes: (КМК)
    дело в том что в никсах, перевод каретки - Chr(10), а виндях - то что выше
    пример уже существующих "накладок" - если импортнуть java (созданый в никсах) сорц в агент или либу - будем долго фтыкать - чёйто компиллер ругаецо ;)
     
  7. ABarmin

    ABarmin Гость

    Без граблей никак...
     
Загрузка...

Поделиться этой страницей