Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Константа номера строки редактора / 25 сообщений из 76, страница 1 из 4
26.09.2021, 13:12
    #40100071
FreeAdman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
День добрый!

Подскажите, пожалуйста, в Delphi есть волшебная константа номера текущей строки в редакторе кода?
Например:
Код: pascal
1.
2.
3.
4.
5.
6.
0: procedure proc1;
1: begin
2:     ShowMessage('Line num ' + CURRENT_LINE_NUM);
3: end;

Result: Line num 2
...
Рейтинг: 0 / 0
26.09.2021, 13:24
    #40100073
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
FreeAdman,

Зачем тебе такое?

P.S. В SynEdit и его клонах - такое есть (ну вдруг ты свой редактор пишешь).
...
Рейтинг: 0 / 0
26.09.2021, 13:33
    #40100075
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
Нет. Но есть способы получить на основании отладочной информации
...
Рейтинг: 0 / 0
27.09.2021, 10:11
    #40100143
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
FreeAdman
Код: pascal
1.
2.
3.
4.
5.
6.
0: procedure proc1;
1: begin
2:     ShowMessage(
3:           'Line num ' 
4:                + CURRENT_LINE_NUM);
5: end;


А в таком случае что должно написать?

Строки-то понятие условное. Можно в отладочной инфе что-то наковырять. Главное понять - для чего?
...
Рейтинг: 0 / 0
29.10.2021, 05:34
    #40107923
FreeAdman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
wadman
А в таком случае что должно написать?


В теории это: Line num 4
...
Рейтинг: 0 / 0
29.10.2021, 11:57
    #40108004
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
FreeAdman,

а на практике отладчик покажет, что это номер 2. И будет полностью прав.
...
Рейтинг: 0 / 0
29.10.2021, 12:14
    #40108018
FreeAdman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
Vizit0r
FreeAdman,

а на практике отладчик покажет, что это номер 2. И будет полностью прав.


Да нифига.

В примере очевидно же, что то служебная константа.
И вообще вы чушь пишите и противоречите логике.
...
Рейтинг: 0 / 0
29.10.2021, 12:19
    #40108021
FreeAdman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
Vizit0r
FreeAdman,
а на практике отладчик покажет, что это номер 2. И будет полностью прав.


Не будет он прав. Ибо по вашей логике:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
1: begin
2:     ShowMessage(
3:           'Line num ' 
4:                + CURRENT_LINE_NUM);
5: end;

Result: Line num 2



И

Код: pascal
1.
2.
3.
4.
5.
6.
7.
1: begin
2:     
3:     ShowMessage('Line num '  + CURRENT_LINE_NUM);
4:
5: end;

Result: Line num 2



Это одно и тоже. Тогда CURRENT_LINE_NUM вообще не будет показывать корректный номер строки в редакторе по той причине, что он не учитывает перенос строк. Развелось кодеров всяких с дипломами...
...
Рейтинг: 0 / 0
29.10.2021, 13:37
    #40108068
GrigoriyFomin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
FreeAdman,

идея наверное навеяна интерпретаторами? Лучше уж делать в традициях 8-бит и 8кБ ПЗУ - "Ошибка #8715" и уже по коду искать, в каком месте такой код ошибки записан. А то сегодня это строка 12, завтра вы чего-то там нафигачили, выдали новый релиз и сиди потом ищи 12 строка - это для какой версии сырцов и есть ли вообще эта версия сырцов у вас в наличии. Вообщем - бредовая идея с номерами строк.
...
Рейтинг: 0 / 0
29.10.2021, 13:55
    #40108075
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
FreeAdman
И вообще вы чушь пишите и противоречите логике.


ок, ок.
Удаляюсь, не буду спорить со знатоком.
...
Рейтинг: 0 / 0
29.10.2021, 13:57
    #40108076
FreeAdman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
GrigoriyFomin, ещё один? Вы то вникайте в текст, а не на "отстань". Бесполезно разговаривать.
ПС: заодно включите голову

Vizit0r
FreeAdman
И вообще вы чушь пишите и противоречите логике.

ок, ок.
Удаляюсь, не буду спорить со знатоком.

Начните соображать в конце концов
...
Рейтинг: 0 / 0
29.10.2021, 14:03
    #40108080
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
FreeAdman
День добрый!

Подскажите, пожалуйста, в Delphi есть волшебная константа номера текущей строки в редакторе кода?


Вы так и не ответили, для чего вам это надо.
...
Рейтинг: 0 / 0
29.10.2021, 14:57
    #40108099
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
FreeAdman
Подскажите, пожалуйста, в Delphi есть волшебная константа номера текущей строки в редакторе кода?

В FPC есть {$INCLUDE %LINE%}, в Delphi ничего похожего нет.
...
Рейтинг: 0 / 0
29.10.2021, 16:06
    #40108118
FreeAdman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
Kazantsev Alexey
FreeAdman
Подскажите, пожалуйста, в Delphi есть волшебная константа номера текущей строки в редакторе кода?

В FPC есть {$INCLUDE %LINE%}, в Delphi ничего похожего нет.

Вот дураки FPC, вот глупость придумали же
...
Рейтинг: 0 / 0
29.10.2021, 16:28
    #40108122
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
FreeAdman,

И все-таки интересно: а зачем это?
...
Рейтинг: 0 / 0
29.10.2021, 17:49
    #40108151
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
FreeAdman,

можешь (например) получить номер строки и имя файла из текста исключения, сгенерированного псевдофункцией assert().
Опции сборки проекта, естественно, должны быть настроены на генерацию assert's, с отладочной информацией (включая номера строк).
...
Рейтинг: 0 / 0
29.10.2021, 18:17
    #40108163
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
ъъъъъ
FreeAdman,

можешь (например) получить номер строки и имя файла из текста исключения, сгенерированного псевдофункцией assert().
Опции сборки проекта, естественно, должны быть настроены на генерацию assert's, с отладочной информацией (включая номера строк).


Assert покажет ему для примера

Код: pascal
1.
2.
3.
4.
5.
6.
0: procedure proc1;
1: begin
2:     ShowMessage(
3:           'Line num ' 
4:                + CURRENT_LINE_NUM);
5: end;



строку 4?
...
Рейтинг: 0 / 0
29.10.2021, 18:22
    #40108165
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
Vizit0r,

проблемы? Проверь.
...
Рейтинг: 0 / 0
29.10.2021, 20:01
    #40108185
GrigoriyFomin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
ъъъъъ
Vizit0r,

проблемы? Проверь.

Вопрошающий скорее всего хотел в рантайме получить номер строки в исходнике и вывести его в лог либо на экран, а не сгенерить исключение, чем прервать исполнение программы. Как по мне - номер строки ничего не даст, так как эта ошибка могла произойти при разных условиях и стек вызовов тут куда более информативен, чем просто номер строки. Уже много лет использую библиотеку madException, которая решает все проблемы по поиску проблем в коде.
...
Рейтинг: 0 / 0
29.10.2021, 21:21
    #40108198
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
GrigoriyFomin
Вопрошающий скорее всего хотел в рантайме получить номер строки в исходнике и вывести его в лог либо на экран
Это все понятно, фича прикольная, но ЗАЧЕМ?!

Номер текущей строки и так известен программисту в момент написания вывода в лог.

Код: pascal
1.
2.
3.
4.
0: procedure proc1;
1: begin
2:     ShowMessage('Line num 2');
3: end;

vs
Код: pascal
1.
2.
3.
4.
0: procedure proc1;
1: begin
2:     ShowMessage('Line num '+LINE_NUM);
3: end;

Чем эти 2 варианта друг от друга принципиально отличаются?
...
Рейтинг: 0 / 0
29.10.2021, 21:24
    #40108200
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
С точки зрения отладки лучше уж сразу написать:
Код: pascal
1.
2.
3.
4.
0: procedure proc1;
1: begin
2:    ShowMessage('unitx.proc1.my_featureXXX');
3: end;

Надежней и понятней будет.
...
Рейтинг: 0 / 0
29.10.2021, 21:49
    #40108210
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
rgreat
Чем эти 2 варианта друг от друга принципиально отличаются?
Тем, что добавление/удаление кода перед калькулируемой строкой похерит все твои индексы
...
Рейтинг: 0 / 0
29.10.2021, 21:51
    #40108211
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
_Vasilisk_,

Ну и что?

Обычный поиск по тексту прекрасно найдет этот самый showmessage.

При изменении сорцов после релиза этот LineNumber будет все одно показывать погоду на марсе.

Мой вариант с ShowMessage('unitx.proc1.my_featureXXX'); надежней.
...
Рейтинг: 0 / 0
29.10.2021, 21:59
    #40108212
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
rgreat
При изменении сорцов после релиза этот LineNumber будет все одно показывать погоду на марсе.

В VCS всё будет на своих местах.
...
Рейтинг: 0 / 0
29.10.2021, 22:00
    #40108213
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Константа номера строки редактора
Kazantsev Alexey,

Угу. А смысл?
Зачем вообще эти хуевые решения если есть нормальное?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Константа номера строки редактора / 25 сообщений из 76, страница 1 из 4
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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