Дать способ узнать в farlua длину строки в редакторе F4 Topic is solved

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
User avatar
zg
zero-gravity
Posts: 6055
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 186 times
Contact:

Дать способ узнать в farlua длину строки в редакторе F4

Post by zg »

Latest post of the previous page:

Дмитрий Журко wrote: Tue 09 Apr, 2024 14:29 Упс. Только теперь понял, что это ровно то же -- копирование строки в отдельный буфер, чтобы вычислить её длину.
раз вы поняли, то сможете легко указать место в моём коде из 8 строк, где копируется строка в отдельный буфер. жду.
Дмитрий Журко
Posts: 129
Joined: Tue 19 Jan, 2021 21:49
Has thanked: 27 times
Been thanked: 1 time

Дать способ узнать в farlua длину строки в редакторе F4

Post by Дмитрий Журко »

zg wrote: Tue 09 Apr, 2024 14:39раз вы поняли
Почему столько агрессии? Вы ведь могли просто мне не отвечать.
Вы утверждаете, что запись о строке не копируется таким вызовом, а даёт прямой указатель на строку F4. Возможно такое в C. Видимо, я тут не прав. Это так?
User avatar
HaRT
Moderator
Posts: 10906
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 223 times
Been thanked: 359 times

Дать способ узнать в farlua длину строки в редакторе F4

Post by HaRT »

Дмитрий Журко wrote: Tue 09 Apr, 2024 14:02 Вам откуда начать пояснять важность этого?
Мне пояснять уже ничего не требуется. То, что мне было важно, я уже и так понял. Надеюсь, что поспособствовал тому, чтобы и остальные тоже поняли.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
zg
zero-gravity
Posts: 6055
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 186 times
Contact:

Дать способ узнать в farlua длину строки в редакторе F4

Post by zg »

Дмитрий Журко wrote: Tue 09 Apr, 2024 14:58Почему столько агрессии? Вы ведь могли просто мне не отвечать.
серьёзно? вы утверждаете объективную ложь о моём коде и удивляетесь тому, что я на это реагирую?
Дмитрий Журко wrote: Tue 09 Apr, 2024 14:58Вы утверждаете, что запись о строке не копируется таким вызовом
откуда взялась запись о строке? до этого момента речь шла о самой строке, а не о записи о ней, что бы вы в это понятие не вкладывали. строка — не копируется. в предложенной мной функции я даже не вижу места, которое можно заподозрить в копировании строк.
Дмитрий Журко wrote: Tue 09 Apr, 2024 14:58а даёт прямой указатель на строку F4.
поле egs.StringText содержит указатель на данные фара, но оно даже не используется в моей функции.
Дмитрий Журко wrote: Tue 09 Apr, 2024 14:58Возможно такое в C.
причём здесь C?
Дмитрий Журко wrote: Tue 09 Apr, 2024 14:58Видимо, я тут не прав. Это так?
не очень понятно, что значит «тут», но вы не правы в том, что в моей функции копируется строка и что вы что-то поняли. и я всё ещё жду, когда вы пришлёте код моей функции, ускоренной в три раза.
User avatar
zg
zero-gravity
Posts: 6055
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 186 times
Contact:

Дать способ узнать в farlua длину строки в редакторе F4

Post by zg »

John Doe wrote: Tue 09 Apr, 2024 12:09(Интересно а если переписать весь luafar на ffi, заметит ли кто-то разницу)
тут пример синтетический. я в editorsettings заменил editor.AddColor заменил на прямой вызов ECTL_ADDCOLOR — ничего не поменялось. очевидно, что основное время тратиться на парсинг текста, а не вызов фарапи.
Дмитрий Журко
Posts: 129
Joined: Tue 19 Jan, 2021 21:49
Has thanked: 27 times
Been thanked: 1 time

Дать способ узнать в farlua длину строки в редакторе F4

Post by Дмитрий Журко »

Спасибо авторам far, теперь есть возможность взять длину строки редактора без того, чтобы грузить всю строку:
editor.GetString(Id, StringNumber, 4)
Третье возвращённое значение -- длина, код -- 4, строка не грузится. Два первых: SelStart и SelEnd.
То есть

Code: Select all

SelStart, SelEnd, Length = editor.GetString(Id, StringNumber, 4)
Last edited by Дмитрий Журко on Fri 10 May, 2024 19:52, edited 1 time in total.
Post Reply

Return to “Нужна помощь”