Управляющие/непечатные символы

Хотите говорить о Far и не знаете, куда обратиться?
Post Reply
User avatar
Dennis_Moore
Posts: 295
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 6 times
Been thanked: 17 times

Управляющие/непечатные символы

Post by Dennis_Moore »

HaRT wrote: Fri 23 Jun, 2017 19:30Lua тут ни при чём. Почитайте в Википедии про CR и LF
Я знаю про оличия в этом плане между ОС. Непонятно тогда почему в C такой код

Code: Select all

    
    printf("123456\rDEF");
выведет DEF456, а не
123456
DEF
Last edited by Dennis_Moore on Fri 23 Jun, 2017 20:04, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Управляющие/непечатные символы

Post by HaRT »

Dennis_Moore wrote: Fri 23 Jun, 2017 20:02выведет DEF456
Я проверил на RHEL5 с gcc 4.1.2 — выводится “DEF”, что вполне согласуется с назначением символа Carriage Return. То, что наблюдаете Вы, — это особенность виндовой консоли. А, скажем, на ленточном телетайпе получилось бы что-то вообще иное. Учите матчасть, не ленитесь, благо документации и прочих материалов хоть отбавляй.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Управляющие/непечатные символы

Post by Shmuel »

Dennis_Moore, Lua выводит то же самое, что и C. Но в LuaMacro функция print переопределена, чтобы сохранить совместимость с прежним Macro API. И (если не ошибаюсь) в Энциклопедии в описании print именно указывается употреблять \r для перевода строки.

P.S. Память подвела, в описании print про \r ничего нет (перепутал с ECTL_INSERTTEXT). Тем не менее, фаровский print работает так.
Last edited by Shmuel on Fri 23 Jun, 2017 20:34, edited 1 time in total.
User avatar
Dennis_Moore
Posts: 295
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 6 times
Been thanked: 17 times

Управляющие/непечатные символы

Post by Dennis_Moore »

Shmuel wrote: Fri 23 Jun, 2017 20:23 Dennis_Moore, Lua выводит то же самое, что и C. Но в LuaMacro функция print переопределена, чтобы сохранить совместимость с прежним Macro API. И (если не ошибаюсь) в Энциклопедии в описании print именно указывается употреблять \r для перевода строки.
Да, уже проверил отдельным интерпретатором Lua и хотел написать.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Управляющие/непечатные символы

Post by DrKnS »

Shmuel wrote: Fri 23 Jun, 2017 20:23в Энциклопедии в описании print именно указывается употреблять \r для перевода строки
Вроде ничего такого нет.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Управляющие/непечатные символы

Post by Shmuel »

DrKnS, моё сообщение выше отредактировано.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Управляющие/непечатные символы

Post by DrKnS »

Shmuel wrote: Fri 23 Jun, 2017 20:23ECTL_INSERTTEXT
Какая прелесть. В документации CR, в коде - '\n'.
User avatar
Dennis_Moore
Posts: 295
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 6 times
Been thanked: 17 times

Управляющие/непечатные символы

Post by Dennis_Moore »

DrKnS wrote: Fri 23 Jun, 2017 20:46Какая прелесть. В документации CR, в коде - '\n'.
Т.е. это баг и в ближайшее время у \r будет такое же поведение как у lua.exe ?
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Управляющие/непечатные символы

Post by Shmuel »

Это не баг, а (скажем так) несоответствие между документацией и реализацией.
Но это не о print говорится, а о ECTL_INSERTTEXT.
А зачем вам поведение \r как у lua.exe ? Меня и теперешнее поведение устраивает (но есть одна тонкость - я практически всегда пользуюсь только \n).
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Управляющие/непечатные символы

Post by John Doe »

Shmuel wrote: Sat 24 Jun, 2017 12:51я практически всегда пользуюсь только \n
Во всяком случае в некоторых местах именно \n используется как разделитель, и это документировано, например http://api.farmanager.com/ru/service_fu ... ssage.html
User avatar
Dennis_Moore
Posts: 295
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 6 times
Been thanked: 17 times

Управляющие/непечатные символы

Post by Dennis_Moore »

Shmuel wrote: Sat 24 Jun, 2017 12:51А зачем вам поведение \r как у lua.exe ?
Была одна мысль по использованию, но я понял что это мне не поможет.
Post Reply

Return to “Обсуждение Far Manager”