|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
Добрый день. Подобных тем не нашел, спрошу в этой. Существует ли возможность отображать данные в txt файле также как в rtf? Находил много конвертеров, но сконвертированный текст может поплыть, если есть табы в rtf'ке. Как быть и можно ли это побороть как то? Работу производил в делфи и конвертацию производил посредством компонента TRichEdit и наткнулся на подобную проблему с табами. И действительно если сформировать к примеру небольшую, ровную табличку с помощью отбивок пробелами и табами в WordPad на win7, то если копирнуть и вставить в NotePad то все форматирование уплывет. Как быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 12:01 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
fsmkсконвертированный текст может поплыть, если есть табы в rtf'ке. Как быть и можно ли это побороть как то?Используйте моноширинный шрифт, а не пропорциональный. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 12:06 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
Akina, допустим есть сформированный текст в rtf уже. если я ему выставлю моноширинный шрифт, т оформатирование уже поплывет это во первых. Во вторых даже если я сделаю выравнивание по моноширинному шрифту, то при вставке в NotePad все равно все уезжает. Только что попробовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 13:01 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
пример в студию ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 15:49 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
Shocker.Pro, прикрепил rtf файл. Если открыть его в WordPad - все ок. Копирнешь содержимое в NotePad, Word или еще куда - все уедет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 09:06 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
fsmk, в этом файле часть отступов сделана пробелами, часть Tab'ами. Это хорошо видно в Ворде, если включить отображение непечатных знаков Ctrl+* В каждой программе своя интерпретация табов: в Notepad это каждая 8-я позиция символов, в Ворд и WordPad табы задаются расстояниями, не зависят от размера шрифта и могут устанавливаться для каждого абзаца индивидуально. Если хотите полной совместимости с разными программами - отступы только пробелами и моноширинный шрифт. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 09:51 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
Казанский, да я в курсе. В этом и вопрос, УЖЕ ИМЕЮЩИЙСЯ подобный текст в rtf не перегнать без последствий в txt? Нет способов? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 09:55 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
fsmkКазанский, да я в курсе. В этом и вопрос, УЖЕ ИМЕЮЩИЙСЯ подобный текст в rtf не перегнать без последствий в txt? Нет способов?ну так заменить автозаменой табы на нужное количество пробелов ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 10:10 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
Просто заменить не получится, надо следить за текущей позицией символа и добавлять столько пробелов, сколько осталось до следующей позиции табуляции. Но это несложно, можно сделать VBS скриптом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 10:36 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
fsmkИ действительно если сформировать к примеру небольшую, ровную табличку с помощью отбивок пробелами и табами в WordPad на win7, то если копирнуть и вставить в NotePad то все форматирование уплывет. Как быть?Вот. Я сходу упустил, а это было ключевое. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 11:18 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
КазанскийНо это несложно, можно сделать VBS скриптом.Думаю, такая утилита должна существовать. По крайней мере первой же ссылкой в поиске наткнулся на лабораторную работу http://www.cyberforum.ru/c-beginners/thread1660751.html ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 11:20 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
Казанскийнадо следить за текущей позицией символа и добавлять столько пробелов, сколько осталось до следующей позиции табуляции. Я прошу прощения, но сходу не срастил. Можно подробнее об устройстве плавающей длины таба и его вычисления? Какой нибудь простейший пример алгоритма на словах хотя бы. Пишу на делфи надо как-то вычислять эту штуку и подменять на пробелы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 16:04 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
Нашел формулировку объяснения: сторонний_форумдопустим 10 пробелов это 1 табуляция. То если ты введешь 4 символа и нажмешь табуляцию то ввод текста будет продолжаться с 11 символа(здесь нужно вставить 6 пробелов), если ты введешь 26 символов и нажмешь табуляцию то будешь печатать с 31 символа(здесь нужно вставить 4 пробела) и так далее. Это верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 16:07 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
fsmk, верно. В Ворде замену можно организовать так Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 17:22 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
Казанский, набросал код на делфи. кинул на форму два мемо и кнопку. В один вставляю текст как в выше прикрепленном файле нажимаю кнопку - высчитываю, подменяю и вставляю во второй. Точно алгоритм такой? Или я ошибку допустил? Уплывшее все все равно, но без табов. Длина таба 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; ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 08:17 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
Казанский, Вычисление длины по логике должно быть такое: InsertLength := ((Counter div TabLength) + 1) * TabLength - Counter; Но текст все равно не правильно выравнивается. что - то не учитывается, а что, непонятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 08:59 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
Модератор: Учимся использовать тэги оформления кода - FAQ , вам же нормально оформляют ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 15:24 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
fsmk, подбирайте TabLength. В приведенном примере первая позиция табуляции 16, а вторая не 32, а 30! Либо это небрежно составленный пример, либо программа, которая формирует rtf файлы, определяет табуляцию не по символам, а по расстоянию от края текста. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 09:23 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
Казанский, ghbvth ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 13:52 |
|
конвертация из rtf в txt
|
|||
---|---|---|---|
#18+
Казанский, пример сформирован корректно. В общем вариантов пересобрать текст нет? п.с. Прошу прощения, выше пост случайно отправился. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 13:53 |
|
|
start [/forum/topic.php?fid=61&fpage=14&tid=2172225]: |
0ms |
get settings: |
12ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
others: | 255ms |
total: | 458ms |
0 / 0 |