Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26061
Рейтинг: 2120
#31: 2022-02-16 22:34:46 ЛС | профиль | цитата
ser_davkin писал(а):
Мда-а-а.. Как всё запущено.

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

--- Добавлено в 2022-02-16 22:53:59

Добавил обновление на SVN
ser_davkin, можешь опробовать на своей задаче.

Редактировалось 1 раз(а), последний 2022-02-16 22:53:59
карма: 22

1
Голосовали:sla8a
Ответов: 2059
Рейтинг: 131
#32: 2022-02-16 23:39:52 ЛС | профиль | цитата
flint2, пойдем дальше. Есть имя файла (опустим пока, что есть отдельные компоненты для работы с разделителем), имя файла имеет переменную длину, но расширение имеет всегда три символа с конца. Как мне получить всегда эти три символа по твоему алгоритму для кучи файлов с разной длиной имени, по текущему это делается просто?

Это уже другие задачи и другой вопрос.
Надо подумать как всё увязать. В принципе есть мысли, пробую...
Мне всю носоглотку искромсали и верхнюю челюсть, заморозка отходит - думать не могу.
Завтра отвечу.

Редактировалось 4 раз(а), последний 2022-02-18 09:18:34
карма: 6

0
Ответов: 2193
Рейтинг: 673
#33: 2022-02-17 11:34:17 ЛС | профиль | цитата
nesco, по поводу добавления Max, думаю не стоит этого делать. Так как при ошибке и подачи данных с отрицательным значениями, будет выдаваться первый символ. Как по мне то это не логично.

И раз идёт правка элемента, допишите в описании (ini) о том что строка начинается с Position = 1. Тем кто первый раз столкнётся с элементом это поможет разобраться.
карма: 10

0
Ответов: 2059
Рейтинг: 131
#34: 2022-02-17 11:51:56 ЛС | профиль | цитата
sla8asla8a, писал(а):
о том что строка начинается с Position = 1.

sla8a, а чем это вызвано?
Вроде как непривычно. Терпимо, но не очень здорово.
Или это принцип домино от какого то косяка тянется?

Редактировалось 1 раз(а), последний 2022-02-17 11:54:18
карма: 6

0
Ответов: 2193
Рейтинг: 673
#35: 2022-02-17 12:22:49 ЛС | профиль | цитата
flint2, неужели вы этого не знаете: http://delphibasics.ru/Copy.php заодно и Delete там посмотрите, тоже с 1 начинается.

Редактировалось 1 раз(а), последний 2022-02-17 12:24:41
карма: 10

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#36: 2022-02-17 12:51:09 ЛС | профиль | цитата
sla8a писал(а):
И раз идёт правка элемента, допишите в описании (ini) о том что строка начинается с Position = 1. Тем кто первый раз столкнётся с элементом это поможет разобраться.

Так мне просто описание добавить или все же сделать как в Delete -- в Pos вместо дефолтного 0 поставить 1, но и описание добавить для пущей важности?

Редактировалось 2 раз(а), последний 2022-02-17 12:52:27
карма: 22

0
Ответов: 2193
Рейтинг: 673
#37: 2022-02-17 13:11:10 ЛС | профиль | цитата
nesco, как минимум описание, а в идеале и 1 по дефолту. И с описаниями не скупитесь. Разжевать к каждой точке, чтоб самый начинающий мог понять и пременить без проблем.

Редактировалось 1 раз(а), последний 2022-02-17 13:11:27
карма: 10

0
Ответов: 284
Рейтинг: 23
#38: 2022-02-17 14:27:10 ЛС | профиль | цитата
sla8a писал(а):
начинающий мог понять

Я начинающий и я понял.
карма: 2
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#39: 2022-02-17 14:45:41 ЛС | профиль | цитата
Добавил такое же свойство StartPosRTL в Delete и немного расширил описания точек.
envoy_sky писал(а):
Я начинающий и я понял

Молодец, но другие могут и не совсем понять. Вон, бедный старый кот уже потерялся, а flint2, то ли не знал, то ли знал и забыл, что у нас отсчет символов в строке всегда начинается с 1, а не с 0, как в массивах

Редактировалось 1 раз(а), последний 2022-02-17 14:48:31
карма: 22

0
Ответов: 2193
Рейтинг: 673
#40: 2022-02-18 08:35:16 ЛС | профиль | цитата
nesco писал(а):
бедный старый кот уже потерялся
Так потерялся что и не заходит правки к элементу протестировать
карма: 10

0
Ответов: 2059
Рейтинг: 131
#41: 2022-02-18 09:57:10 ЛС | профиль | цитата
Моё мнение, что подход неверен.
Не надо привязывать расширения названий файлов и так далее. Компонент должен в первую очередь нести свою функциональность, а для другого есть специально обученные компоненты. По этому мы друг друга не понимали.
Что касается отсчёта с нуля, или единицы, то после операции и наркоза голова идёт кругом и в голову приходят только простые и логичные решения. + Я уже года два и больше на плюсах всё делаю, а delphi не знал да ещё и забыл. И чем я сейчас занимаюсь, строки лучше представлять в виде массива, соответственно мозги перестроились. Зачем это так вообще сделано в delphi? Но не суть.
Себе сделал так: https://forum.hiasm.com/getfile/39396
Можно ещё сделать отсчёт с конца строки, но нужно ли?

Редактировалось 7 раз(а), последний 2022-02-18 12:06:37
карма: 6

0
Ответов: 2059
Рейтинг: 131
#42: 2022-02-18 12:11:13 ЛС | профиль | цитата
Вот вариант https://forum.hiasm.com/getfile/39396 который корректно работает во всех режимах.
Режимы независимы!
При Pos меньше Count в режиме справа налево тоже корректно работает.

Add(MainForm,904413,357,126)
{
Height=188
}
Add(Edit,9403533,588,56)
{
Left=20
Top=10
Width=255
Text="абвгдежзиклмн"
}
Add(Edit,5936633,763,154)
{
Left=20
Top=40
Width=245
}
Add(Button,9939578,490,154)
{
Left=25
Top=70
link(onClick,2252814:doCopy,[])
}
Add(Edit,1354108,742,56)
{
Left=295
Top=10
Text="5"
DataType=1
}
Add(Edit,12700301,665,56)
{
Left=295
Top=40
Text="3"
DataType=1
}
Add(Copy,2252814,623,154)
{
Direction=1
StartPosRTL=1
link(onCopy,5936633:doText,[])
link(Str,9403533:Text,[(629,121)(594,121)])
link(Position,12700301:Text,[(636,121)(671,121)])
link(Count,1354108:Text,[(643,121)(748,121)])
}

[/scroll]Copy.ini тоже поправил.

Редактировалось 1 раз(а), последний 2022-02-18 12:11:49
карма: 6

0
Ответов: 2193
Рейтинг: 673
#43: 2022-02-18 12:41:05 ЛС | профиль | цитата
flint2 писал(а):
Надо исправить компонент
...
делался с бодуна.
Вот такие заключения не разобравшись делать не хорошо.
карма: 10

0
Ответов: 2059
Рейтинг: 131
#44: 2022-02-18 13:00:49 ЛС | профиль | цитата
sla8a, я ещё тогда разобрался и опять сегодня тоже самое скажу!
А вот тут как раз с налёту, не разобравшись.
Зачем наводить тень на плетень с другим компонентом?
По вашей логике и Str_Enum (Перебор элементов строки) тоже переделывать придется (схема выше). Теряется смысл реверса, получается абы что.

Зачем мне знать длину строки? Мне нужно скопировать 12 символов с конца строки, реверс с этим справляется без проблем и это более распространенная задача чем,

Или формулировать надо чётче!

Редактировалось 3 раз(а), последний 2022-02-18 13:10:00
карма: 6

0
Ответов: 2193
Рейтинг: 673
#45: 2022-02-18 13:12:56 ЛС | профиль | цитата
flint2 писал(а):
я ещё тогда разобрался
А ну тогда все понятно.
карма: 10

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)