Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.12.2013, 01:39
Lord_Vlad Lord_Vlad вне форума
Прохожий
 
Регистрация: 28.11.2013
Адрес: Москва
Сообщения: 19
Версия Delphi: Delphi 10
Репутация: 10
Восклицание Поиск спецсимволов в строке

Доброго времени суток, коллеги по цеху!

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

Как ни странно, но стандартные методы не помогают.

Пробовал такие вариации:

Код:
pos(#13#10, temp)

AnsiPos(#13#10, temp)

Попробовал даже так:
Код:
if StringReplace(temp, #13#10, #13#10, [rfReplaceAll, rfIgnoreCase]) <> temp then

И все возвращает нули... А перенос в этой строке точно есть, и точно #13#10, проверял.
Да что там, пробовал искать и #13 и #10 отдельно... Толку - ноль!

Может подскажете что пользительное?

Заранее спасибо!
Ответить с цитированием
  #2  
Старый 11.12.2013, 01:56
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Lord_Vlad
Встала задача, о которую я себе уже несколько часов разбиваю голову, а именно - надо найти спецсимволы в строке, точнее - символы переноса.

Как ни странно, но стандартные методы не помогают.

Пробовал такие вариации:

Код:
pos(#13#10, temp)

AnsiPos(#13#10, temp)
Наверное проблема связана с тем, что "Delphi XE4". Переменная temp как объявлена?

В Delphi 7 такой код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  temp: String;
  p: Integer;
begin
  temp := 'Проверка'#13#10'переноса';
  p := Pos(#13#10, temp);
  ShowMessageFmt('Перенос найден в позиции %d', [p]);
end;
выдаёт: "Перенос найден в позиции 9"
Ответить с цитированием
  #3  
Старый 11.12.2013, 07:52
Lord_Vlad Lord_Vlad вне форума
Прохожий
 
Регистрация: 28.11.2013
Адрес: Москва
Сообщения: 19
Версия Delphi: Delphi 10
Репутация: 10
По умолчанию

poli-smen, привет

temp, конечно же, string.

Однако, Ваш пример заработал у меня на XE4. Сейчас до работы доберусь, буду разбираться, что к чему и почему

Как чего разгребу - отпишусь

Спасибо
Ответить с цитированием
  #4  
Старый 11.12.2013, 15:11
Lord_Vlad Lord_Vlad вне форума
Прохожий
 
Регистрация: 28.11.2013
Адрес: Москва
Сообщения: 19
Версия Delphi: Delphi 10
Репутация: 10
По умолчанию

Мне удалось найти источник моей проблемы.
Я тащу данные из TRichEdit построчно и ищу в них символы переноса строки. Однако, в TRichEdit они не проставляются.

Суть моей задачи простая, мне надо найти начало и конец абзаца TRichEdit. Этот метод не подошел

Не подскажете что-нибудь более-менее действенное?
Ответить с цитированием
  #5  
Старый 11.12.2013, 15:30
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Lord_Vlad
Мне удалось найти источник моей проблемы.
Я тащу данные из TRichEdit построчно и ищу в них символы переноса строки. Однако, в TRichEdit они не проставляются.

Суть моей задачи простая, мне надо найти начало и конец абзаца TRichEdit. Этот метод не подошел

Не подскажете что-нибудь более-менее действенное?
Построчно это как? Каждая строка это же и есть новый абзац - посреди строки (т.е. абзаца) не может быть переноса строки, так как это будет новый абзац и соответственно новая строка.

Т.е. здесь не найдёт переноса строки:
Код:
p := Pos(#13#10, RichEdit1.Lines[0]);

А вот здесь найдёт (если текст многострочный):
Код:
p := Pos(#13#10, RichEdit1.Lines.Text);
(только какой смысл?)
Ответить с цитированием
  #6  
Старый 11.12.2013, 15:34
Lord_Vlad Lord_Vlad вне форума
Прохожий
 
Регистрация: 28.11.2013
Адрес: Москва
Сообщения: 19
Версия Delphi: Delphi 10
Репутация: 10
По умолчанию

Да, я опять недосказал историю
В TRichEdit включен WordWrap А вот текст надо вытаскивать поабзацно
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:27.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025