powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / знак переноса строки?
76 сообщений из 76, показаны все 4 страниц
знак переноса строки?
    #32077906
Паблик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте
Возможно ли Interbase указать значок переноса строки?
или как-то указывать коды ASCII?
Т. е. мне нужно получить следующее
str=str1||<перенос строки>||str2||<перенос строки>||str3
...
Рейтинг: 0 / 0
знак переноса строки?
    #32077948
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет. Недавно, после чтения док по Postgre, сам такое спрашивал и сказали вот что:
Спец. символов нет, но можно:
1 использовать УДФ
2 создать таблицу соотв. кодов символов и самих символов (можно в варианте поля типа массив) и использовать это.
...
Рейтинг: 0 / 0
знак переноса строки?
    #32077955
Паблик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот я сейчас как раз эту UDF функцию и пишу. Просто хотел узнать можно ли это сделать проще.
Спасибо за ответ.
...
Рейтинг: 0 / 0
знак переноса строки?
    #32078276
Паблик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, на всякий случай если кому понадобиться то такая функция уже есть, надо ее только подключить.
DECLARE EXTERNAL FUNCTION ASCII_CHAR
INTEGER
RETURNS CHAR(1)
ENTRY_POINT 'IB_UDF_ascii_char' MODULE_NAME 'ib_udf';
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
знак переноса строки?
    #36070231
MEGA_MOZG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тема конечно старая, но может еще кому понадобится.
Когда-то сталкивался с такой проблемой. Решил ее топорно.
Из хранимки возврашаю строку:
str = str1 || ^ || str2 || ^ || str3

Возвращал строку в Delphi.

А там уже
Код: plaintext
str := AnsiReplaceText(str, '^', # 13 # 10 );
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070245
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МегаМозг, ты некрофил и тормозГ.
Код: plaintext
1.
2.
3.
declare crlf char( 2 );
crlf = '
';
str = str1 || crlf || str2 || crlf || str3;
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070348
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryМегаМозг, ты некрофил и тормозГ.
Код: plaintext
1.
2.
3.
declare crlf char( 2 );
crlf = '
';
str = str1 || crlf || str2 || crlf || str3;

А вдруг под Linux'ом в crlf окажется '\x0a\x20' вместо ожидаемых '\x0d\x0a'? ;)
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070392
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку ascii_char уже давно имеет статус SDF, то все сломаные копья - на свалку.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070437
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtА вдруг под Linux'ом в crlf окажется '\x0a\x20' вместо ожидаемых '\x0d\x0a'? ;)
Кем ожидаемых?
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070471
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryDzirtА вдруг под Linux'ом в crlf окажется '\x0a\x20' вместо ожидаемых '\x0d\x0a'? ;)
Кем ожидаемых?
Тобой, кем же еще... Я же твой пост процитировал. Ты бы хотя бы VarChar(2) объявил.

PS: Хотя я уже слышу ответ, что-то типа "я Линуксом не пользуюсь, мне это не интересно" ;)
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070485
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dzirt!
You wrote on Thu, 02 Jul 09 13:24:18 GMT:

Dzirt D> PS: Хотя я уже слышу ответ, что-то типа
"я Линуксом не пользуюсь, мне это не интересно" ;)серверу пох, на какой он платформе.
перенос строки формирует инструмент, которым ты альтеришь процедуру.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070487
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Dzirt
> WildSery
> Кем ожидаемых?
> Тобой, кем же еще... Я же твой пост процитировал. Ты бы хотя бы VarChar(2) объявил.

А задлянафига там варчар?, там что может быть переменное количество символов?

> PS: Хотя я уже слышу ответ, что-то типа "я Линуксом не пользуюсь, мне это не интересно" ;)

Да по моему он как раз и сидит на линуксах


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070592
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
Hello, Dzirt!
You wrote on Thu, 02 Jul 09 13:24:18 GMT:

Dzirt D> PS: Хотя я уже слышу ответ, что-то типа
"я Линуксом не пользуюсь, мне это не интересно" ;)серверу пох, на какой он платформе.
перенос строки формирует инструмент , которым ты альтеришь процедуру.

Я как раз об этом и написал, если ты не заметил... Могу и уточнить - инструментом может выступить любой текстовый редактор под Linux, в котором будет набран и сохранен скрипт, который будет выполнен через isql. Текстовый редактор в качестве перевода строки вставит одиночный \x0a, а пробел добавит уже сервер т.к. переменная объявлена CHAR(2), а одиночный \x0a занимает только один символ.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070594
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
> Автор: Dzirt
> WildSery
> Кем ожидаемых?
> Тобой, кем же еще... Я же твой пост процитировал. Ты бы хотя бы VarChar(2) объявил.

А задлянафига там варчар?, там что может быть переменное количество символов?
...

Вот задля того, чтобы под Linux в переменной crlf не получилось '\x0a\x20'. Предыдущий пост почитай...
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070678
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказалось все еще интереснее :) isql от 2.1.3.18182 даже под Windows пересылает на сервер переводы строки в виде одного символа \x0a (\x0d просто удаляется). Поэтому если скрипт

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
SET NAMES WIN1251;
SET SQL DIALECT  3 ;

CONNECT 'localhost:D:\Database\test3.fdb' USER 'SYSDBA' PASSWORD 'masterkey';

SET AUTODDL ON;

--
-- Исправление...
--

set term ^ ;

recreate procedure C
returns (
    STATUS varchar( 100 ))
AS
/* */
    declare variable CRLF CHAR( 2 );
begin
    CRLF = '
';
    STATUS = '!' || CRLF || '!';
    suspend;
end
^

set term ; ^

commit;
выполнить при помощи isql и при помощи IBEScript, то процедура C будет возвращать разные результаты:
'!\x0a\x20!' - после isql
'!\x0d\x0a!' - после IBEScript

Даже не понадобилось эмулировать переводы строки в стиле Unix чтобы добиться неопределенного поведения...
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070690
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dzirt!
You wrote on Thu, 02 Jul 09 14:43:24 GMT:

Dzirt D> Оказалось все еще интереснее :) isql от 2.1.3.18182 даже под Windows
D> пересылает на сервер переводы строки в виде одного символа \x0a (\x0d просто удаляется).в трекер, будьте так любезны.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070722
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtТобой, кем же еще... Я же твой пост процитировал. Ты бы хотя бы VarChar(2) объявил.
А, ты о длине. Ну пусть будет варчар.
У меня клиенты - виндовые. И где там сервер стоит, не важно. Кстати, все линуксовые, сервера, в смысле.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070824
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryDzirtТобой, кем же еще... Я же твой пост процитировал. Ты бы хотя бы VarChar(2) объявил.
А, ты о длине. Ну пусть будет варчар.
У меня клиенты - виндовые . И где там сервер стоит, не важно. Кстати, все линуксовые, сервера, в смысле.
Я как раз писал чуть выше о возможном ответ "у меня не Linux, мне пофиг" :)
А на самом деле (я чуть выше написал об этом) значение имеет не клиент, а то средство, которым ты процедуру создавал - если это был isql из скрипта, то ты как раз во всех своих клиентах получишь лишний пробел. О чем я тебе и пишу уже в который раз, а ты не читаешь... :/
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070839
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
Hello, Dzirt!
You wrote on Thu, 02 Jul 09 14:43:24 GMT:

Dzirt D> Оказалось все еще интереснее :) isql от 2.1.3.18182 даже под Windows
D> пересылает на сервер переводы строки в виде одного символа \x0a (\x0d просто удаляется).в трекер, будьте так любезны.

Зачем? Если не секрет, конечно... Я не считаю это поведение неправильным. Я считаю неправильным тот способ, которым предлагалось получить в переменной символ(ы) перевода строки. Потому что... уже не хочется повторяться. Не нужно просто советовать такой способ. Правильный способ на мой взгляд такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
    declare variable CRLF VARCHAR( 1 );  -- ну или CHAR(1) для любителей CHAR'ов...
...
begin
    CRLF = ascii_char(  10  );
...
end
где ascii_char либо UDF для сервера версии младше 2.1, либо это встроенная функция для FB 2.1 и старше
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070846
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dzirt!
You wrote on Thu, 02 Jul 09 15:52:49 GMT:

Dzirt D> Зачем?потому, что палочки должны быть попендикулярны! (С)

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070915
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtЯ как раз писал чуть выше о возможном ответ "у меня не Linux, мне пофиг" :)
А на самом деле (я чуть выше написал об этом) значение имеет не клиент, а то средство, которым ты процедуру создавал - если это был isql из скрипта, то ты как раз во всех своих клиентах получишь лишний пробел. О чем я тебе и пишу уже в который раз, а ты не читаешь... :/
Что я не читаю? У тебя клиенты под линуксом работают?
Текст многострочный имеет смысл выдавать только на клиента. Как это он не имеет значение?
Вариант с фиксированным ascii_char(10) как раз практически никого не устроит, за редким исключением.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070979
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery...
Что я не читаю? У тебя клиенты под линуксом работают?
Текст многострочный имеет смысл выдавать только на клиента. Как это он не имеет значение?
Вариант с фиксированным ascii_char(10) как раз практически никого не устроит, за редким исключением.
Еще раз, медленно, по буквам - если создать процедуру с кодом, который ты привет в самом начале (там где ... crlf CHAR(2) ), из скрипта через isql -i script.sql, и как к тому же оказалось вовсе не обязательно под Linux, то в результате в переменной crlf будет два символа - перевод строки (0x0A) и ПРОБЕЛ. Поэтому на клиента вернется текст в переводом строки и ЛИШНИМ ПРОБЕЛОМ. Уже даже не знаю как бы тебе еще понятнее объяснить...

Вот тебе скрипт:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
SET NAMES WIN1251;
SET SQL DIALECT  3 ;

CONNECT 'localhost:D:\Database\test3.fdb' USER 'SYSDBA' PASSWORD 'masterkey';

SET AUTODDL ON;

set term ^ ;

recreate procedure TEST
returns (
    STATUS VarChar( 10 ))
as
/* */
    declare variable CRLF CHAR( 2 );
begin
    CRLF = '
';
    STATUS = '1' || CRLF || '2';
    suspend;
end
^

set term ; ^

commit;

select STATUS from TEST;
commit;
Выполнив его через isql (от сервера 2.1.3.18182) даже под Windows я получаю:

Код: plaintext
1.
2.
3.
4.
5.
6.
C:\>isql -i y.sql
Use CONNECT or CREATE DATABASE to specify a database

STATUS
==========
1
 2
Видишь перед '2' пробел или нет? Linux вначале был мной приведен только как пример системы, в которой перевод строки состоит из одного символа LF, в отличие от Windows, где он состоит из двух символов. При этом совершенно не важно на какой системе стоит твой сервер.

Теперь хоть тебе понятно о чем я говорю?
...
Рейтинг: 0 / 0
знак переноса строки?
    #36070994
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dzirt
Еще раз, медленно, по буквам - если создать процедуру с кодом, который ты привет в самом начале (там где ... crlf CHAR(2) ), из скрипта через isql -i script.sql, и как к тому же оказалось вовсе не обязательно под Linux, то в результате в переменной crlf будет два символа - перевод строки (0x0A) и ПРОБЕЛ.
Для бестолковых МП же сказал, что какие фигни будут "переводом строк" зависит:
МПперенос строки формирует инструмент, которым ты альтеришь процедуру.
- Чего нипанятна??
Хоть в курсе, почему там 2 "знака", а не один?

Dzirt Поэтому на клиента вернется текст в переводом строки и ЛИШНИМ ПРОБЕЛОМ.
Задрали Комикзы...
Винде - #13#10, а Маках - #10#13
А в комигзах...
(Не-е-е, не могу я в приличном опчестве сказать куда им девать лишний пробел)
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071010
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne
(Не-е-е, не могу я в приличном опчестве сказать куда им девать лишний
пробел)

Это ещё ерунда, а вот если у БД случиться defaul character set utf8, то
им придётся озаботиться куда бы девать пять лишних пробелов...

VarChar - самый идеологически правильный тип!
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071058
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtЕще раз, медленно, по буквам - если создать процедуру с кодом, который ты привет в самом начале (там где ... crlf CHAR(2) ), из скрипта через isql -i script.sql, и как к тому же оказалось вовсе не обязательно под Linux, то в результате в переменной crlf будет два символа - перевод строки (0x0A) и ПРОБЕЛ. Поэтому на клиента вернется текст в переводом строки и ЛИШНИМ ПРОБЕЛОМ. Уже даже не знаю как бы тебе еще понятнее объяснить...
Ещё раз, медленно, по буквам - если не пользоваться isql с только что найденной тобой ошибкой, и сделать-таки varchar(2), с каковой поправкой я согласился, то на чём работает КЛИЕНТ, под ту систему и будет скомпилен ПЕРЕНОС СТРОКИ.
Безо всяких дополнительных проверок унутре процедуры.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071099
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery
если не пользоваться isql с только что найденной тобой ошибкой

Это не ошибка, это фича. isql приводит переводы строки перед отправкой в
БД и после получения. Отсюда, кстати, растут ноги удвоения возврата
каретки, на которое тут жаловались недавно: isql несколько неправильно
обращается с исходниками, который в БД загнаны другими инструментами.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071175
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery...
Ещё раз, медленно, по буквам - если не пользоваться isql с только что найденной тобой ошибкой, и сделать-таки varchar(2), с каковой поправкой я согласился, то на чём работает КЛИЕНТ, под ту систему и будет скомпилен ПЕРЕНОС СТРОКИ .
Безо всяких дополнительных проверок унутре процедуры.
Ну да, примерно так и есть... И если процедуру создать из-под Windows и даже с Varchar(2) получить перевод строки в виде \x0d\x0a, то клиент работающий под Linux будет очень удивлен вот этому \x0d, точнее он не удивится, а выведет его на экран (и в зависимости от того, где конкретно это случится можно получить много вариантов...) и кроме того, у такого клиента полученная строка '\x0d\x0a' (т.е. только сам перевод строки, без ничего дополнительно) не будет равен пустой строке - это будет строка с длиной в 1 символ. Вот именно поэтому ascii_char( 10 ) будет работать практически всегда. Ну кроме тех случаев, когда клиент ждет перевод строки именно из двух символов CR и LF. Но это я считаю просчетом проектирования...

PS: И дело не в isql, не ошибка это в нем... С чего ты вдруг решил, что это ошибка?
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071177
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
WildSery
если не пользоваться isql с только что найденной тобой ошибкой

Это не ошибка, это фича. isql приводит переводы строки перед отправкой в
БД и после получения. Отсюда, кстати, растут ноги удвоения возврата
каретки, на которое тут жаловались недавно: isql несколько неправильно
обращается с исходниками, который в БД загнаны другими инструментами
.

Вот именно! По правильному было бы это делать так, как еще во времена MS-DOS делалось - на входе (это например то место, откуда читается текст процедуры...) все символы возврата каретки CR (0x0D) просто пропускать, а символ перевода строки LF (0x0A) и считать переводом строки. А на выходе перед символом LF добавлять символ CR. Если для той системы в которой работает isql это нужно (под Windows - да, под *nix - нет)
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071186
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtПо правильному было бы это делать так, как еще во времена MS-DOS делалось...
Глубоко задумался: - А иде эт оно в PS-DOS делалось?
И про "По правильному было бы это делать так" - это кому правильно?

DzirtЕсли для той системы в которой работает isql это нужно (под Windows - да, под *nix - нет)
Хм... Так во времна PS-DOS, какбэ, DOS был DOS-ом, UNIX - unix-ом.
И ни кто не требовал, штоп оно все в "одном флаконе" работало...

Так что сцылка на хистори - не в зачет.

Как бы народ FB тут не первый день юзает, из-под чего только не юзают, а кипишь ток ты поднял.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071191
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, PS-DOS - это не MS-DOS. Впрочем,
различий именно по этой части в них я не припомню.

Во-вторых, если таки действительно поведение будет
различаться для разных систем (а судя по всему, это
так), то говорить что все тут нормально - глупо.

Хотя тезис - проверяйте все на конкретных клиентах
(подходящий нам - у которых все клиенты виндовые) -
имеет место быть. Вот как-то так...

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071440
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIneDzirtПо правильному было бы это делать так, как еще во времена MS-DOS делалось...
Глубоко задумался: - А иде эт оно в PS-DOS делалось?
...

Я могу напомнить... Вот пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
#include <stdio.h>
#include <string.h>

void main()
{
    // строка состоящая из '1', трех фозвратов каретки и перевода строки
    const char *str = "1\r\r\r\n";
    // запишем строку в файл в режиме двоичный (mode = "wb")
    // файл file_binary будет содержать  5  байт
    FILE *fp = fopen( "file_bin", "wb" );
    if ( fp )  {
        fwrite( str, strlen( str ),  1 , fp );
        fclose( fp );
        }
    
    // прочитаем file_binary в текстовом режиме (mode = "rt")
    FILE *fin = fopen( "file_bin", "rt" );
    if ( fin )  {
        // выходной файл будем писать тоже в текстовом режиме - хотя тут уже без разницы
        // можно заменить записть и на двоичный режим, все будет сделано при чтении из файла
        FILE *fout = fopen( "file_text", "wt" );
        if ( fout )  {
            char mass[ 100 ];
            // читаем построчно файл file_bin и построчно же выводим его в file_text
            while ( fgets( mass, sizeof( mass ), fin ) )  {
                fputs( mass, fout );
                }
            fclose( fout );
            }

        fclose( fin );
        }
}
Скомпилируем bcc32 версии 5.5.1 (эти функции работы с файлами в нем даже сейчас работают так же, как во времена Turbo C 2.0) или Borland C++ 4.5 (досовской версией) и выполним полученную программу. Содержимое файлов:

Код: plaintext
1.
2.
3.
4.
C:\0\FILE_BIN
0000000000: 31 0D 0D 0D 0A          │                          1♪♪♪◙

C:\0\FILE_TEX
0000000000: 31 0D 0A                │                          1♪◙

Вот так это и работало.

Di_LIne...
И про "По правильному было бы это делать так" - это кому правильно?

DzirtЕсли для той системы в которой работает isql это нужно (под Windows - да, под *nix - нет)
Хм... Так во времна PS-DOS, какбэ, DOS был DOS-ом, UNIX - unix-ом.
И ни кто не требовал, штоп оно все в "одном флаконе" работало ...

Так что сцылка на хистори - не в зачет.


Ну вот и прикинь - никто вроде не требовал, а писали так, чтобы работало правильно.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071571
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtНу вот и прикинь - никто вроде не требовал, а писали так, чтобы работало правильно.Гы. Открыл в FAR-е файлик сделал 10 "ентеров". Сохранил. Открыл как HEX. И чиго?
- 10 штук 0D0A налицо. Размер файлика = 20 байт.
Ы?
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071580
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIneDzirtНу вот и прикинь - никто вроде не требовал, а писали так, чтобы работало правильно.Гы. Открыл в FAR-е файлик сделал 10 "ентеров". Сохранил. Открыл как HEX. И чиго?
- 10 штук 0D0A налицо. Размер файлика = 20 байт.
Ы?
Ты открыл для себя Фар? Поздравляю! :)

А что сказать-то хотел?
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071590
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сабжу - а неплохо бы иметь спец. константу для этого дела, имхо...
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071606
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtТы открыл для себя Фар? Поздравляю! :)
А то! FAR - супер ось!
Вот только какой-то гад к моей версии форточки прикрутил...
Не знаешь, как их открутить от FAR-а?


DzirtА что сказать-то хотел?
А то, что сделай такой файлик.txt и посмотри, как его отобразят редакторы в разных осях...
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071617
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Экспиримент №2:
Создай 2 файлика:
1. с содержанием 0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0A
2. с содержанием 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0D

И отправь оба на принтер (9 pin) и удивись.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071664
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Отсюда, кстати, растут ноги удвоения возврата
каретки, на которое тут жаловались недавно: isql несколько неправильно
обращается с исходниками, который в БД загнаны другими инструментами.


Начитавшись тут про бедные вернутые каретки, попробовал я извлечь метаданные
isql'ем. Беглый взгляд на результат выявил, что "лишние" символы вставляются
только при выводе текстовый блобов (тексты процедур, вьюх, описаний и т.п.).
В моей базе они все с crlf, а выводятся crcrlf.

Залез я в исходники птицы (которые 2.1.3) и нашёл там виновника - SHOW_print_metadata_text_blob,
которая вызывает ISQL_printf, которая, в свою очередь, вызывает стандартную
fprintf, которая пишет в поток isqlGlob.Out.
Насколько я помню (с помощью гугла :) ), если поток открыт в текстовом
режиме, то при выводе lf заменяется на crlf, что мы и наблюдаем. :)

НО! Есть один нюанс: isqlGlob.Out открывается через fopen(ftmp.c_str(), "w+b"),
то есть в двоичном (непреобразующем) режиме.

Вывод:
1) либо я чего не увидел/не понял (оченно вероятно);
2) у MS VC мания заменять лыфы на цырылыфы превозмогает над стандартом. ;))
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071751
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIneЭкспиримент №2:
Создай 2 файлика:
1. с содержанием 0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0A
2. с содержанием 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0D

И отправь оба на принтер (9 pin) и удивись.
Не буду я удивляться, я и так знаю, что произойдет.
Если написанное тобой в символах, то так и выведет:
0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0D
и каретка будет установлена после последнего символа, а если это в в HEX-кодах, то соответственно:

1. Каретка в начале строки (сколько ему не посылай CR "начальнее" строки не бывает), прогон бумаги на 1 строку (один LF)
2. Прогон бумаги на 16 строк (у тебя 16 LF, я посчитал), каретка в начало строки (один CR)

Опять таки - ты чего сказать-то хотел?

PS: Я тебе еще напомню (это чтобы предвосхитить эксперимент №3), что у матричных принтеров перевод строки (LF который) не вызывал автоматического возврата каретки, т.е. она в какой позиции была в такой и оставалась.
PPS: Я подозреваю, что тебе просто скучно... ;)
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071794
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennis-rSHOW_print_metadata_text_blob,

Именно в нём стоит коммент, который сбил меня с толку.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071863
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennis-r...
НО! Есть один нюанс: isqlGlob.Out открывается через fopen(ftmp.c_str(), "w+b"),
то есть в двоичном (непреобразующем) режиме.

Вывод:
1) либо я чего не увидел/не понял (оченно вероятно);
2) у MS VC мания заменять лыфы на цырылыфы превозмогает над стандартом. ;))
А еще в файле isql.cpp есть функция
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
static processing_state newoutput(const TEXT* outfile)
{
/**************************************
 *
 *	n e w o u t p u t
 *
 **************************************
 *
 * Functional description
 *	Change the current output file
 *
 *	Parameters:  outfile : Name of file to receive query output
 *
 **************************************/
...
которая переоткрывает файл для вывода, например при выполнении оператора
Код: plaintext
output 'имя_файла';
и делает это уже в текстовом режиме (режим в "a" не указан, по-умолчанию считается "текстовый"):
Код: plaintext
1.
2.
3.
4.
5.
...
		outfile = path;
		FILE* fp = fopen(outfile, "a");
		if (fp)
		{
...

При выводе же на экран isqlGlob.Out содержит файл STDOUT (файловый дескриптор 1), который по умолчанию считается текстовым, и CR перед каждым LF тоже добавляется.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071872
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennis-r...
НО! Есть один нюанс: isqlGlob.Out открывается через fopen(ftmp.c_str(), "w+b") ,
то есть в двоичном (непреобразующем) режиме.
...
Это ты нашел в функции
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
static processing_state copy_table(TEXT* source,
						 TEXT* destination,
						 TEXT* otherdb)
{
/**************************************
 *
 *	c o p y _ t a b l e
 *
 **************************************
 *
 * Functional description
 *	Create a new table based on an existing one.
...
Она к показу метаданных вообще не относится...
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071895
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dzirt
Это ты нашел в функции
Код: plaintext
1.
2.
3.
static processing_state copy_table(TEXT* source,
						 TEXT* destination,
						 TEXT* otherdb)
...
Она к показу метаданных вообще не относится...
Каюсь, смотрел по F7 методом косого чтения. ;)
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071896
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать сделать например так (функция void SHOW_print_metadata_text_blob(FILE* fp, ISC_QUAD* blobid, bool escape_squote), файл src\isql\show.epp, строка 1031) - вместо:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
...
    while (blob.getSegment(sizeof(buffer) -  1 , buffer, length))
    {
        // Need to step through the buffer until we hit a '\n' and then print the
        // line.  This is because '\n' are included in blob text.
        // CVC: The above comment and the code do not match.

        buffer[length] =  0 ;
        if (escape_squote)
        {
            for (const UCHAR* p = (UCHAR*) buffer; *p; ++p)
            {
                if (*p == SINGLE_QUOTE)
                    fputc(*p, fp);
                fputc(*p, fp);
            }
            fflush(fp);
        }
        else
            ISQL_printf(fp, buffer);
    }
...

написать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
...
    while (blob.getSegment(sizeof(buffer) -  1 , buffer, length))
    {
        // Need to step through the buffer until we hit a '\n' and then print the
        // line.  This is because '\n' are included in blob text.
        // CVC: The above comment and the code do not match.

        buffer[length] =  0 ;
        for (const UCHAR* p = (UCHAR*) buffer; *p; ++p)
        {
            if (*p != '\r')
            {
                if (escape_squote && *p == SINGLE_QUOTE)
                    fputc(*p, fp);
                fputc(*p, fp);
            }
        }
        fflush(fp);
    }
...
т.е. попросту убрать из входного потока все символы возврата каретки CR.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071901
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
dennis-rSHOW_print_metadata_text_blob,

Именно в нём стоит коммент, который сбил меня с толку.

Да. Коммент там классный. Особенно приписка от некого CVC, что
коммент и код ничуть не совпадают. Да здравствует копи-паст! :))
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071925
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtМожно попробовать сделать например так
Код: plaintext
...
... т.е. попросту убрать из входного потока все символы возврата каретки CR.
Это конечно да, но не исключено, что бывают особенные платформы, где правят одни CRы.
:]

p.s. Ещё чуть-чуть и CORE-915 можно считать закрытым. ;)
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071934
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennis-rDzirtМожно попробовать сделать например так
Код: plaintext
...
... т.е. попросту убрать из входного потока все символы возврата каретки CR.
Это конечно да, но не исключено, что бывают особенные платформы, где правят одни CRы.
...
Ну, тогда так:
Код: plaintext
1.
2.
3.
4.
5.
6.
...
#ifdef PLATFORM_WITH_CR_ONLY
            if (*p != '\n')
#else
            if (*p != '\r')
#endif
...
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071940
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dzirt
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
...
        if (escape_squote)
        {
            for (const UCHAR* p = (UCHAR*) buffer; *p; ++p)
            {
                if (*p == SINGLE_QUOTE)
                    fputc(*p, fp);
                fputc(*p, fp);
            }
            fflush(fp);
        }
        else
            ISQL_printf(fp, buffer);
...

Кстати! Код, который в if, вааще-то насчёт квотированных строк, а не переводов строк.
И для печати метаданных используется то, что в else. :)
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071955
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dzirt
Ну, тогда так:
Код: plaintext
1.
2.
3.
4.
5.
6.
...
#ifdef PLATFORM_WITH_CR_ONLY
            if (*p != '\n')
#else
            if (*p != '\r')
#endif
...

Это не наш метод. Надо, чтоб у всех всё было одинаково!
Одинаково плохо.

Например, переводить текстовые блобы в html, а вместо crlf - <br>. Хы. :-)
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071963
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennis-r...
Кстати! Код, который в if, вааще-то насчёт квотированных строк, а не переводов строк.
И для печати метаданных используется то, что в else. :)
Я знаю. Просто цикл совместил в один, и то что было в else "ушло".
...
Рейтинг: 0 / 0
знак переноса строки?
    #36071986
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dzirt
Я знаю. Просто цикл совместил в один, и то что было в else "ушло".
А! Точно! Не заметил. Ну, тогда это пора комитить в cvs и сделать товарища
zaher dirkey счастливым. Обещанного, говорят, три года ждут. 30 августа
будет как раз.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36072343
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtНу, тогда так:
Это будет в сервере?
...
Рейтинг: 0 / 0
знак переноса строки?
    #36072434
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryDzirtНу, тогда так:
Это будет в сервере?
Вообще-то этот код не в сервере, а в isql. А будет ли он там - это вопрос к разработчикам
...
Рейтинг: 0 / 0
знак переноса строки?
    #36072478
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dzirt
Вообще-то этот код не в сервере, а в isql. А будет ли он там - это вопрос к разработчикам
Дык. В чём дело стало пройти по ссылке http://tracker.firebirdsql.org/browse/CORE-915
и зафигачить код в комментарий? Так разработчики будут более в курсе.

p.s. Я уж намекал-намекал прозрачно так... :)
...
Рейтинг: 0 / 0
знак переноса строки?
    #36072547
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennis-r,

Добавил коммент в CORE-915, посмотрим как оно... :-)
...
Рейтинг: 0 / 0
знак переноса строки?
    #36072901
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtДобавил коммент в CORE-915, посмотрим как оно... :-)
Замечательно. Если ещё is заменить на will и проставить определённые артикли, будет вааще сногсшибательно! %)
...
Рейтинг: 0 / 0
знак переноса строки?
    #36073876
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtPS: Я тебе еще напомню (это чтобы предвосхитить эксперимент №3), что у матричных принтеров перевод строки (LF который) не вызывал автоматического возврата кареткиА вот это зависело от настроек. Был и Auto-CR и Auto-LF.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36085633
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dzirt...
Добавил коммент в CORE-915, посмотрим как оно... :-)
Получен ответ:
авторAdriano dos Santos Fernandes commented on CORE-915:
---------------------------------------------------

I can't reproduce.

All line breaks are using CRLF.
Ну и все. Как обычно вобщем-то, я уж давно зарекся постить в трекер. Если Дима с Владом тут не возьмутся решать, то никогда оно и не решится... Не напишу ж я там там "возьмите IBExpert/IBEScript или любую старую базу, когда ваш же isql при передаче текста процедуры на сервер еще на удалял символы CR, а передавал как есть, а метаданные извлеките теперишним isql".
...
Рейтинг: 0 / 0
знак переноса строки?
    #36086247
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dzirt> Не напишу ж я там

Отчего же? Напиши. У трекера есть минусы, но не этот...

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36086273
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам пишет:
> Автор: Гаджимурадов Рустам
> <Гаджимурадов Рустам>
>
> Dzirt> Не напишу ж я там
>
> Отчего же? Напиши. У трекера есть минусы, но не этот...

Так dennis-r уже написал... Вполне ожидаемый ответ:
[qoute]
Adriano dos Santos Fernandes commented on CORE-915:
---------------------------------------------------

But IBExpert is not part of Firebird.

I want to see a "good script" that you can use to create the objects
with isql and the extraction result in the "bad script". I\'m unable to
reproduce that.
....
[/qoute]

Пользуйтесь _только_ isql и будет вам счастие... Это глухарь.

--
With best regards, Yuri Grabar. E-mail: yuri_grabar@ukr.net
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36086411
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dzirt> Пользуйтесь _только_ isql и будет вам счастие

Вы ему что именно нужно исправить объяснили?
А-то может тут на трех страницах курили, а хотите
чтобы он сразу въехал. :-)

В принципе, это можно и без трекера ДС-у переадресовать. :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36086774
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
В принципе, это можно и без трекера ДС-у переадресовать. :)

Нет, мне нельзя. Тут только ДЕ или Влад справятся.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36086832
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Вы ему что именно нужно исправить объяснили?
А-то может тут на трех страницах курили, а хотите
чтобы он сразу въехал. :-)

Всё нормально, процесс объяснения идёт.
Там и Влад подключился.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36093891
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dzirt,
Дело мысля пошла однако

Adriano dos Santos Fernandes - 16/Jul/09 06:47 AMJust removing CRs is not a good solution, as they also works as line terminator in Mac OS.

I think we should convert CRLF pairs to LF before print. But that should be done with care re. blob segment bondaries too.
Правда я не понимаю, что там страшного с границами сегментов блоба...
...
Рейтинг: 0 / 0
знак переноса строки?
    #36093928
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennis-rПравда я не понимаю, что там страшного с границами сегментов блоба...
А! Дошло. Если CR в конце одного сегмента, а LF - в начале другого. Нда.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36099529
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dzirt,
Вобщем починили путём замены CRLF->LF->fprintf->CRLF. Смотреть в 2.5 RC1. Или в cvs.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36099569
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennis-r пишет:
> Автор: "dennis-r"
> Dzirt,
> Вобщем починили путём замены CRLF->LF->fprintf->CRLF. Смотреть в 2.5
> RC1. Или в cvs.
Да собственно я и не жду исправления этого :D Мне еще не приходилось
метаданные извлекать при помощи isql. ;) Хм-м... Даже странно как-то -
пользуюсь Interbase/Firebird начиная с IB 6.0, а метаданные isql\'ем не
извлекал.

PS: Накрутил-то Adriano... Без пол-литры и не разобраться ;) Ну, ему виднее
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
знак переноса строки?
    #36100095
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dzirt
Да собственно я и не жду исправления этого

Да мне, собственно, тоже по барабану.
Просто, уж коли взялися давить козявку, надо додавить.

Dzirt
PS: Накрутил-то Adriano... Без пол-литры и не разобраться ;) Ну, ему виднее

Ага. Это он границы сегментов блюдёт. А на про изврат типа LFCR забыил.
...
Рейтинг: 0 / 0
знак переноса строки?
    #36100572
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И рпавильно забил. Ибо изврат.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
знак переноса строки?
    #39672204
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Связанная проблема, так и оставшаяся даже в 3.0.3. isql даже под Windows превращает все переводы строк в 0A.
Короткий пример:
БД - test.fdb, в ней таблица New_Table
Код: sql
1.
2.
3.
4.
5.
SQL> comment on table new_table is 'com
CON> m';
SQL> commit;
SQL> blobdump 6:3cb dump0;
SQL> quit;


В файле dump0 - 63 6F 6D 0A 6D
Ладно, возможно утилита - наследник Линукса и переводы строк в консоли воспринимает по-пингвиньему. Делаем comm.sql
Код: sql
1.
2.
3.
4.
5.
comment on table new_table is 'com
m';
commit;
blobdump 6:3cb dump1;
quit;


сохраняем с виндовыми переводами строк и запускаем
Код: sql
1.
isql -u SYSDBA -p masterkey -i comm.sql TEST.FDB


В файле dump1 - тот же самый 63 6F 6D 0A 6D.
А из-за этого появляются ложные срабатывания при сравнении метаданных, если одна из баз создана isql-ем, а в другой изменения выполнялись сторонними средствами.
...
Рейтинг: 0 / 0
знак переноса строки?
    #39672212
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2возможно утилита - наследник Линукса и переводы строк в консоли воспринимает по-пингвиньему.

Этой утилите сугубо всё равно откуда fgets получает строку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
знак переноса строки?
    #39672217
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самый кайф начинается если эти строки засандалить в стандартный RichEdit.
(только не через ClipBoard)
терминатор становится ТРЕХ-символьным 0A 0D 0A.
понятно, что это глюк RichEdit, но всё одно, прикольно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
знак переноса строки?
    #39672229
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЭтой утилите сугубо всё равно откуда fgets получает строку.

Не спорю. Я имел в виду, что перенос строки, вбитый в консоли, - вещь хрупкая и может зависеть от приложения терминала. Но вот с данными, которые проге скормили в виде файла, не должно быть никаких самоуправств имхо.
Либо, уж если очень большое желание однотипности (например, чтобы избежать печали в сравнении метаданных, если над базой работает несколько кодеров из-под разных осей), можно прибить преобразование гвоздями к серверу и успокоиться.
...
Рейтинг: 0 / 0
знак переноса строки?
    #39672361
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2Dimitry SibiryakovЭтой утилите сугубо всё равно откуда fgets получает строку.

Не спорю. Я имел в виду, что перенос строки, вбитый в консоли, - вещь хрупкая и может зависеть от приложения терминала. Но вот с данными, которые проге скормили в виде файла, не должно быть никаких самоуправств имхо.
Либо, уж если очень большое желание однотипности (например, чтобы избежать печали в сравнении метаданных, если над базой работает несколько кодеров из-под разных осей), можно прибить преобразование гвоздями к серверу и успокоиться.

ASCII_CHAR(13) не устраивает благородного дона?
...
Рейтинг: 0 / 0
знак переноса строки?
    #39672380
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastorASCII_CHAR(13) не устраивает благородного дона?
Если IBE научится извлекать метаданные, заменяя переводы строк на конкатенацию с ASCII_CHAR то мб, мб... Однако ж все равно нехорошее это поведение. Утилите скормили данные в четко определенном виде, какое право она имеет их менять?
...
Рейтинг: 0 / 0
знак переноса строки?
    #39672413
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2pastorASCII_CHAR(13) не устраивает благородного дона?
Если IBE научится извлекать метаданные, заменяя переводы строк на конкатенацию с ASCII_CHAR то мб, мб... Однако ж все равно нехорошее это поведение. Утилите скормили данные в четко определенном виде, какое право она имеет их менять?

1. скормить скрипт в IBE, заставить его срыгнуть, потом опять скормить - неаппетитно как-то выглядит. Требуйте крыжик ( все непонятное в ASCII_CHAR/как попало) в IBE

2. что файлик, что консоль - входному потоку данных фиолетово. особенно перенапрравленному.

3. утилита имеет право их поменять под локали подключения. кодировку точно, а со временем, еще время и разделители и пр.
...
Рейтинг: 0 / 0
знак переноса строки?
    #39672594
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor1. скормить скрипт в IBE, заставить его срыгнуть, потом опять скормить - неаппетитно как-то выглядит. Требуйте крыжик ( все непонятное в ASCII_CHAR/как попало) в IBE
Что-то я не догнал, откуда такая цепочка. Извлекаю метаданные я через IBScript, а базу из него создаю isql-ем.
...
Рейтинг: 0 / 0
76 сообщений из 76, показаны все 4 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / знак переноса строки?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]