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

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

  1. ABarmin

    ABarmin Гость

    Репутация:
    0
    Чтобы как-то наладить выполнение 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
    Библиотека получения параметра:
    Код:
    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.361
    Симпатии:
    336
    малопонятное обоснование...
    почемубы просто не использовать временный файл?
     
  3. ABarmin

    ABarmin Гость

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

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

    hosm * so what *

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

    ABarmin Гость

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

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

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

    ABarmin Гость

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

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