CftClub.ru
Клуб специалистов ЦФТ-Банк

Экспорт в тектовый файл - значимые траблы...
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
kdmitriev
Участник со стажем


Вступление в Клуб: 26.06.2007
СообщениеЧт Сен 09, 2010 14:13   Экспорт в тектовый файл - значимые траблы... Ответить с цитатой
Полезность: Нет оценки
Коллеги, вот такой вопрос:
экспортирую в текстовый файл с разделителем.
все хорошо...но в конце экспортируемой строки уже в файле появляется перенос.
как с этим бороться ?

trim(res_str,LF$);
trim(res_str,CR$);
не помогают...

Заранее - спасибо, сто грамм и пончик
markoff
Участник - экстремал


Вступление в Клуб: 09.06.2009
СообщениеЧт Сен 09, 2010 14:36    Ответить с цитатой
Полезность: Нет оценки
пакет STDIO:

Код:
procedure SET_DEF_TEXT( p_txt string,
                                       p_slash  string default null,
                                       p_add_cr string default null,
                                       p_name_txt string default null );


Цитата:
если задан параметр p_add_cr - перечисленные кодировки или их первые буквы), при которых во время чтения-записи строк из файлов удаляется-добавляется символ перевода каретки chr(13) в конце строки.
markoff
Участник - экстремал


Вступление в Клуб: 09.06.2009
СообщениеЧт Сен 09, 2010 14:39    Ответить с цитатой
Полезность: Нет оценки
так как при использований

Код:
procedure PUT_LINE(file integer, text string, raising boolean default FALSE,
                   in_text integer default NULL,out_text integer default NULL)


Цитата:
text - записываемый текст, если заданы in_text и out_text (по
умолчанию не задаются), то при записи производится_
перекодировка из in_text в out_text, причем, если
выходная кодировка попадает в список DEF_CR_ADD,
например, DOS,KOI (out_text=DOSTEXT,KOITEXT),
то в конец строки text добавляется символ перевода
каретки (chr(13)),


вот от куда у вас перевод каретки
kdmitriev
Участник со стажем


Вступление в Клуб: 26.06.2007
СообщениеЧт Сен 09, 2010 14:58    Ответить с цитатой
Полезность: Нет оценки
спасибо.
но вот.... у меня же они не задаются....

stdio.put_line(file, res_str, null, null, stdio.WINTEXT);
markoff
Участник - экстремал


Вступление в Клуб: 09.06.2009
СообщениеЧт Сен 09, 2010 15:55    Ответить с цитатой
Полезность: Нет оценки
перед выполнением процедуры put_line нужно выполнить процедуру SET_DEF_TEXT

kdmitriev пишет:

stdio.put_line(file, res_str, null, null, stdio.WINTEXT);
kdmitriev
Участник со стажем


Вступление в Клуб: 26.06.2007
СообщениеЧт Сен 09, 2010 16:50    Ответить с цитатой
Полезность: Нет оценки
прошу прощения.... что-то так Embarassed Embarassed ? - stdio.set_def_text('W',null,'D,W,K');
German
Профи


Вступление в Клуб: 25.06.2007
СообщениеЧт Сен 09, 2010 16:57    Ответить с цитатой
Полезность: Нет оценки
put_line добавляет в файл одну строку и завершает её символом перевода строки, всё логично.

Если в файле должна быть только одна строка, может будет проще собрать всё содержимое будущего файла в одну переменную и записать её в файл один раз?
_________________
Homo homini
markoff
Участник - экстремал


Вступление в Клуб: 09.06.2009
СообщениеЧт Сен 09, 2010 17:29    Ответить с цитатой
Полезность: Нет оценки
German пишет:

Если в файле должна быть только одна строка, может будет проще собрать всё содержимое будущего файла в одну переменную и записать её в файл один раз?


Если я правильно понял kdmitriev, то у него как раз и есть одна строка, в конце которой и происходит возврат каретки от которой он пытается избавится
markoff
Участник - экстремал


Вступление в Клуб: 09.06.2009
СообщениеЧт Сен 09, 2010 17:37    Ответить с цитатой
Полезность: Нет оценки
kdmitriev пишет:
прошу прощения.... что-то так Embarassed Embarassed ? - stdio.set_def_text('W',null,'D,W,K');


сейчас нет возможности проверить попробуйте так:
Код:
stdio.set_def_text('W',null,null);
kdmitriev
Участник со стажем


Вступление в Клуб: 26.06.2007
СообщениеПт Сен 10, 2010 08:23    Ответить с цитатой
Полезность: Нет оценки
German пишет:
put_line добавляет в файл одну строку и завершает её символом перевода строки, всё логично.

Если в файле должна быть только одна строка, может будет проще собрать всё содержимое будущего файла в одну переменную и записать её в файл один раз?


как раз и собираю:
res_str := cl.p_1 || '#' || и т.д.

потом

stdio.put_line(file, res_str, null, null, stdio.WINTEXT);

и вот.... Embarassed Sad
kdmitriev
Участник со стажем


Вступление в Клуб: 26.06.2007
СообщениеПт Сен 10, 2010 08:24    Ответить с цитатой
Полезность: Нет оценки
markoff пишет:
kdmitriev пишет:
прошу прощения.... что-то так Embarassed Embarassed ? - stdio.set_def_text('W',null,'D,W,K');


сейчас нет возможности проверить попробуйте так:
Код:
stdio.set_def_text('W',null,null);


тож самое ((((( Embarassed Sad Sad Sad
XLman
Участник со стажем


Вступление в Клуб: 20.02.2008
СообщениеПт Сен 10, 2010 09:12    Ответить с цитатой
Полезность: Нет оценки
stdio.fput не пробовали использовать?
kdmitriev
Участник со стажем


Вступление в Клуб: 26.06.2007
СообщениеПт Сен 10, 2010 11:39    Ответить с цитатой
Полезность: Нет оценки
XLman пишет:
stdio.fput не пробовали использовать?


нет.. стоит попробовать ? ... напишу резалт
kdmitriev
Участник со стажем


Вступление в Клуб: 26.06.2007
СообщениеПт Сен 10, 2010 16:36    Ответить с цитатой
Полезность: Нет оценки
XLman пишет:
stdio.fput не пробовали использовать?


спасибо, о, добрый и умный человек!!
все - гут!!!
stdio.FPUT( file, stdio.TRANSFORM( res_str, stdio.UNXTEXT, stdio.WINTEXT ) );

как гонорар передать ? Smile Confused Rolling Eyes
kdmitriev
Участник со стажем


Вступление в Клуб: 26.06.2007
СообщениеПт Сен 10, 2010 16:45    Ответить с цитатой
Полезность: Нет оценки
kdmitriev пишет:
XLman пишет:
stdio.fput не пробовали использовать?


спасибо, о, добрый и умный человек!!
все - гут!!!
stdio.FPUT( file, stdio.TRANSFORM( res_str, stdio.UNXTEXT, stdio.WINTEXT ) );

как гонорар передать ? Smile Confused Rolling Eyes


...да...но таперь...если группой (списком) выгружать...то нет переноса между строками... все идет одной стркой.... а как быть в этом случае ?
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru