Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2016, 10:28   #1
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию Смещение индекса в pos, posEx

Функции pos и posEx выдают неверный индекс если текст в котором производится поиск содержит переносы строк, соответственно искомый индекс смещается на +количество переносов.
Как этого избежать?
Replicant вне форума Ответить с цитированием
Старый 23.11.2016, 10:43   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

переносы строки такие же символы, как и любые другие.
функциям Pos, PosEx индифферентно, какие символы в строке, их задача найти нужные и указать их позицию (индекс).

А в чём, собственно проблема? Чем Вам переносы мешают?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.11.2016, 10:52   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,759
По умолчанию

Как вариант, можно Вашу строку с переносами загрузить в TStringList и уже по нему пробежаться построчно.
Если конечно я правильно Вас понял.
FaTaL вне форума Ответить с цитированием
Старый 23.11.2016, 11:09   #4
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
переносы строки такие же символы, как и любые другие.
функциям Pos, PosEx индифферентно, какие символы в строке, их задача найти нужные и указать их позицию (индекс).

А в чём, собственно проблема? Чем Вам переносы мешают?
Индекс смещается, соответственно неверно находит позицию искомого элемента.
Цитата:
Сообщение от FaTaL Посмотреть сообщение
Как вариант, можно Вашу строку с переносами загрузить в TStringList и уже по нему пробежаться построчно.
Если конечно я правильно Вас понял.
Не вариант. Я по удаляю знаки переноса найду то что надо, а отобразить в исходном тексте/компоненте уже не смогу, так как то где я искал отличается от исходного, поиск визуально привязан к TRichEdit.

Последний раз редактировалось Replicant; 23.11.2016 в 11:16.
Replicant вне форума Ответить с цитированием
Старый 23.11.2016, 11:40   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Replicant Посмотреть сообщение
поиск визуально привязан к TRichEdit.
чем не устраивает штатный метод FindText() ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.11.2016, 11:48   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Индекс смещается, соответственно неверно находит позицию искомого элемента.
Ни чего он не смещается и все правильно находит с учетом служебных символов в строке, в том числе не только переводов каретки и строки, но и табуляции. Да и любых других
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.11.2016, 12:10   #7
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
чем не устраивает штатный метод FindText() ?
Вобщем-то устраивает, сделал с ним - работае, спасибо.
Цитата:
Сообщение от Аватар Посмотреть сообщение
Ни чего он не смещается и все правильно находит с учетом служебных символов в строке, в том числе не только переводов каретки и строки, но и табуляции. Да и любых других
Смысл в том, что если pos использовать для текста из рича, то индекс возвращаемый pos не соответствует индексу текста рича.
Replicant вне форума Ответить с цитированием
Старый 23.11.2016, 18:30   #8
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Цитата:
Сообщение от Replicant Посмотреть сообщение
поиск визуально привязан к TRichEdit...
если pos использовать для текста из рича, то индекс возвращаемый pos не соответствует индексу текста рича...
Использование Pos и PosEx в TRichEdit - некорректное действие.
Попробуйте открыть файл .rtf в простом текстовом редакторе и вам станет все понятно...
kropotkina-alice вне форума Ответить с цитированием
Старый 23.11.2016, 20:03   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Попробуйте открыть файл .rtf в простом текстовом редакторе и вам станет все понятно...
И что? Форматирование на RichEdit1.Text не сказывается и ни чем не отличается от Memo.Text, rtf при выгрузке возникает. Атрибуты форматирования в других свойствах
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.11.2016, 20:29   #10
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
И что? Форматирование на RichEdit1.Text не сказывается и ни чем не отличается от Memo.Text, rtf при выгрузке возникает. Атрибуты форматирования в других свойствах
Да ну??? Мемо тоже понимает форматированный текст???
Вот вам текст .rtf и его копия в .txt. Как видите, размер одинаков с точностью до байта.
Не будете ли вы столь любезны найти в файле Readme_rus.rtf.txt слова "Авторы перевода", которая там явно присутствует, поскольку читается в файле Readme_rus.rtf...
Вложения
Тип файла: rar Readme_rus.rar (7.0 Кб, 9 просмотров)
kropotkina-alice вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция PosEx Rey Работа с сетью в Delphi 4 09.03.2015 18:18
заглючил function Posex bulldog5293 Работа с сетью в Delphi 3 18.02.2011 13:09
Pos, PosEX с отступом траблы bulldog5293 Работа с сетью в Delphi 1 19.12.2010 17:49
Выбор однозначного индекса Vladymyr Microsoft Office Access 2 08.11.2010 18:31
Уникальность индекса в БД spiteful41 Помощь студентам 7 27.05.2008 01:26