powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / конвертация из rtf в txt
22 сообщений из 22, страница 1 из 1
конвертация из rtf в txt
    #39713463
fsmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Подобных тем не нашел, спрошу в этой. Существует ли возможность отображать данные в txt файле также как в rtf?
Находил много конвертеров, но сконвертированный текст может поплыть, если есть табы в rtf'ке. Как быть и можно ли это побороть как то?
Работу производил в делфи и конвертацию производил посредством компонента TRichEdit и наткнулся на подобную проблему с табами.

И действительно если сформировать к примеру небольшую, ровную табличку с помощью отбивок пробелами и табами в WordPad на win7, то если копирнуть и вставить в NotePad то все форматирование уплывет. Как быть?
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39713476
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsmkсконвертированный текст может поплыть, если есть табы в rtf'ке. Как быть и можно ли это побороть как то?Используйте моноширинный шрифт, а не пропорциональный.
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39713544
fsmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, допустим есть сформированный текст в rtf уже. если я ему выставлю моноширинный шрифт, т оформатирование уже поплывет это во первых. Во вторых даже если я сделаю выравнивание по моноширинному шрифту, то при вставке в NotePad все равно все уезжает. Только что попробовал.
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39713679
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример в студию
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714207
fsmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

прикрепил rtf файл. Если открыть его в WordPad - все ок. Копирнешь содержимое в NotePad, Word или еще куда - все уедет.
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714227
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fsmk,
в этом файле часть отступов сделана пробелами, часть Tab'ами. Это хорошо видно в Ворде, если включить отображение непечатных знаков Ctrl+*
В каждой программе своя интерпретация табов: в Notepad это каждая 8-я позиция символов, в Ворд и WordPad табы задаются расстояниями, не зависят от размера шрифта и могут устанавливаться для каждого абзаца индивидуально.
Если хотите полной совместимости с разными программами - отступы только пробелами и моноширинный шрифт.
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714230
fsmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Казанский, да я в курсе. В этом и вопрос, УЖЕ ИМЕЮЩИЙСЯ подобный текст в rtf не перегнать без последствий в txt? Нет способов?
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714239
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsmkКазанский, да я в курсе. В этом и вопрос, УЖЕ ИМЕЮЩИЙСЯ подобный текст в rtf не перегнать без последствий в txt? Нет способов?ну так заменить автозаменой табы на нужное количество пробелов
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714264
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто заменить не получится, надо следить за текущей позицией символа и добавлять столько пробелов, сколько осталось до следующей позиции табуляции. Но это несложно, можно сделать VBS скриптом.
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714298
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsmkИ действительно если сформировать к примеру небольшую, ровную табличку с помощью отбивок пробелами и табами в WordPad на win7, то если копирнуть и вставить в NotePad то все форматирование уплывет. Как быть?Вот. Я сходу упустил, а это было ключевое.
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714299
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КазанскийНо это несложно, можно сделать VBS скриптом.Думаю, такая утилита должна существовать. По крайней мере первой же ссылкой в поиске наткнулся на лабораторную работу
http://www.cyberforum.ru/c-beginners/thread1660751.html
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714507
fsmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Казанскийнадо следить за текущей позицией символа и добавлять столько пробелов, сколько осталось до следующей позиции табуляции.

Я прошу прощения, но сходу не срастил. Можно подробнее об устройстве плавающей длины таба и его вычисления? Какой нибудь простейший пример алгоритма на словах хотя бы. Пишу на делфи надо как-то вычислять эту штуку и подменять на пробелы.
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714512
fsmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел формулировку объяснения:

сторонний_форумдопустим 10 пробелов это 1 табуляция. То если ты введешь 4 символа и нажмешь табуляцию то ввод текста будет продолжаться с 11 символа(здесь нужно вставить 6 пробелов), если ты введешь 26 символов и нажмешь табуляцию то будешь печатать с 31 символа(здесь нужно вставить 4 пробела) и так далее.

Это верно?
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714587
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fsmk,
верно. В Ворде замену можно организовать так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub Макрос1()
Const T& = 10 'длина табуляции
Dim r As Range, p&
  Set r = ActiveDocument.Range
  With r.Find
    .ClearFormatting
    .Text = "^t"
    .Forward = True
    .Wrap = wdFindStop
    .MatchWildcards = False
    While .Execute
      p = r.Information(wdFirstCharacterColumnNumber)
      r.Text = Space(T - ((p - 1) Mod T))
      r.Collapse wdCollapseEnd
    Wend
  End With
End Sub
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714744
fsmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Казанский, набросал код на делфи. кинул на форму два мемо и кнопку. В один вставляю текст как в выше прикрепленном файле нажимаю кнопку - высчитываю, подменяю и вставляю во второй. Точно алгоритм такой? Или я ошибку допустил? Уплывшее все все равно, но без табов. Длина таба 8 насколько я понимаю по умолчанию?

авторprocedure TForm1.btn1Click(Sender: TObject);
const
TabLength = 8;
var
i, j, Counter, InsertLength: Integer;
s: TStrings;
InsertStr, str: string;
begin
Counter := 0;
InsertLength:= 0;
InsertStr := '';

for i := 0 to Length(edt1.Lines.Text) - 1 do
begin

if (edt1.Text[i] <> #09) then
begin
Counter := Counter + 1; //посчитаем длину между строк табами
end
else
begin
InsertLength := TabLength - ( Counter - ( (Counter mod TabLength) * TabLength));

for j := 0 to InsertLength - 1 do//формируем строку из пробелов:
InsertStr := InsertStr + ' ';

str := edt1.Lines.Text;
Delete(str, i, 1);
Insert (InsertStr, str, i);

edt1.Lines.Text := str;


InsertStr := '';
Counter := Counter - InsertLength + 1; //компенсируем что вставили
InsertLength:= 0;
end;


end;

edt2.Text := edt1.text;
end;
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714752
fsmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Казанский,

Вычисление длины по логике должно быть такое:

InsertLength := ((Counter div TabLength) + 1) * TabLength - Counter;


Но текст все равно не правильно выравнивается. что - то не учитывается, а что, непонятно.
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39714966
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Учимся использовать тэги оформления кода - FAQ ,
вам же нормально оформляют
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39715346
fsmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АП!
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39715374
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fsmk,
подбирайте TabLength. В приведенном примере первая позиция табуляции 16, а вторая не 32, а 30! Либо это небрежно составленный пример, либо программа, которая формирует rtf файлы, определяет табуляцию не по символам, а по расстоянию от края текста.
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39715560
fsmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Казанский, ghbvth
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39715562
fsmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Казанский, пример сформирован корректно. В общем вариантов пересобрать текст нет?

п.с.
Прошу прощения, выше пост случайно отправился.
...
Рейтинг: 0 / 0
конвертация из rtf в txt
    #39716772
fsmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АП! Прошу натолкнуть хотя бы куда копать, если есть смысл.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / конвертация из rtf в txt
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]