![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неразрывный пробел и замена в тексте!
mufan © (2007-11-02 19:21:00)Братцы! Всем доброго времени суток! Нужна ваша помощь!
1. есть некоторый текст (с переносами, абзацами и пр., т.е. не однострочный)
2. для текста абсолютно не важен стиль (жирный, курсив, размер... - это все не надо)
3. в тексте надо в определенных местах заменить что-то на такой символ как "неразрывный пробел"
вопросы:
какой код у символа неразрывного пробела в делфи??? что такое неразрывный пробел я думаю понятно =)
В MS Word (при вкл. режиме скрытых символов он показывается градусом), в OpenOffice - точкой (как простой пробел) с затемненным фоном!
как вообще это лучше реализовать не посоветуете? RichEdit или просто Memo??? Не напомните как там заменить строку1 на строку2??? =)
а то я уже давно str_replace использую...
спасибо!
Anatoly Podgoretsky (2007-11-04 12:27:00) [1]> Юрий Зотов (04.11.2007 00:21:10) [10]
Я намекаю на то, что данный символ определен именно в качестве неразрывного пробела, но любое приложение может на это плевать. Я даже видел (давно) шрифты или приложения, где этот символ отображался не пробелом.
Но если выбирать кандидата на эту роль, то это самое то.
TStas (2007-11-04 08:49:00) [2]А без ворда нельзя? Есть же TRichEdit. Вот из него и читать коды?
Просто я ведь не совсем уж сдуру вякнул про 32. Я же проверил, но на Tedit'е. А он, гад, взял, и мой неразрывный разрывным заменил :(
Юрий Зотов (2007-11-04 00:21:00) [3]> guav © (03.11.07 23:44) [8]
> касается любого символа.
Я рад, что мы друг друга поняли. И, конечно же, мы оба прекрасно понимаем, что вместо фото можно вставить и #160. А можно вставить этот символ и сразу в текст. Не вопрос.
> Anatoly Podgoretsky © (03.11.07 23:51) [9]
Спасибо за информацию.
========================
:o)
Anatoly Podgoretsky (2007-11-03 23:51:00) [4]> Юрий Зотов (03.11.2007 23:28:07) [7]
HTML страницы, 160 определяется как неразрывный пробел.
guav (2007-11-03 23:44:00) [5]Это (про девушку) понятно, и касается любого символа.
Стандарные контролы TMemo и TRichEdit тоже интерпретируют #160 как неразрывный пробел, как и функция DrawText, так что незачем изобретать велосипед.
Юрий Зотов (2007-11-03 23:28:00) [6]> guav © (03.11.07 23:15) [6]
#160 - это всего лишь символ, и не более. Его интерпретация зависит от программы. Word интерпретирует его, как неразрывный (при показе и печати) пробел. Но Вы и сами легко напишете такую программу, которая читает файл и в местах появления символа #160 вставляет фото любимой девушки. Не вопрос.
guav (2007-11-03 23:15:00) [7]А разве #160 не оно ?
Юрий Зотов (2007-11-03 23:12:00) [8]> mufan (03.11.07 12:18) [4]
Как уже было сказано, символ "неразрывный пробел" существует только во всяких там "оффисах". Да и то не во всех и лишь в силу их собственной интерпретации, не более.
В природе же символ "неразрывный пробел" в диком виде не встречается. Но, как Вы совешенноо правильно подметили, ничто не мешает программе его определить (конечно, в ее собственной интерпретации и не более).
Поэтому Ваше решение, в принципе, верно, но его можно упростить:
1. Берем текст из любого источника.
2. Вставляем его в WORD.
3. Не жмем никакую кнопку, а сразу заставляем Word выполнить "скрипт по замене в опр. местах пробелов некоторой ключевой последовательностью".
Причем даже и скрипт не нужен. Word.Application со всем этим успешно справится, поскольку Word - это COM-сервер.
mufan (2007-11-03 12:18:00) [9]Так...
Ну тогда ситуация такая:
1. берем текст из любого источника
2. вставляем в RICHEDIT
3. жмем кнопку - выполняется скрипт по замене в опр. местах пробелов некоторой ключевой последовательностью...
4. копируем этот текст
5. вставляем в ворд и опенофис и там делаем всего одну глобальную замену, нашей ключевой последовательности на неразрывный пробел...
других вариантов теперь я не вижу =) а вы??? -)))
Anatoly Podgoretsky (2007-11-02 21:14:00) [10]> TStas (02.11.2007 20:47:02) [2]
160
TStas (2007-11-02 20:47:00) [11]Это вообще не символ - это указание браузеру, что пробел в этом месте должен быть обязательно, просто пробелы браузер по вкусу личному игнорирует лишние. А так код у него 32, конечно. Это обычный пробел. То что в ворде он градусом обозначается, при попытке скопировать в Edit, а потом в Ворд становится обычным пробелом.
TUser (2007-11-02 20:07:00) [12]Нет такого символа в Delphi и в стандартных кодировках. Можно Мемо, и отслеживать переносы.