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

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

  1. ABarmin

    ABarmin Гость

    Репутация:
    0
    Чтобы как-то наладить выполнение 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

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

    ABarmin Гость

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

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

    hosm * so what *

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

    ABarmin Гость

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

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

    ABarmin Гость

    Репутация:
    0
    Без граблей никак...
     
Загрузка...

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