[XSLT] выравнивание текста (output=text)
Думаю, что дешевле будет сделать это на обычном языке программирования.
ок, всё равно там ещё кучка работы для sed/awk апосля 

А парсер случаем не MSXML?
Вместо
<xsl:text>Заголовок=</xsl:text> <xsl:value-of select="title"/> <xsl:text> </xsl:text>не прокатит ли что-нибудь вроде
<xsl:text>Заголовок=</xsl:text> <xsl:value-of select="title"/> <xsl:text> </xsl:text>?
msxsl
2penartur: разницы не усмотрел
2penartur: разницы не усмотрел
не прокатит ли что-нибудь вродетогда уж нужно код символа табуляции вставить
и потом результат будет зависеть от просмотрщика полученного файла
тогда уж нужно код символа табуляции вставитьА табуляция - это разве не 7?
Блядский форум, он всё распарсил 
В общем, вставляешь, куда тебе надо, 

В общем, вставляешь, куда тебе надо, 
табы это атавизм.
табы идут лесом.
в одном редакторе они так, в другом - сяк. в третьем вообще неравномерно.
только пробелами.
табы идут лесом.
в одном редакторе они так, в другом - сяк. в третьем вообще неравномерно.
только пробелами.
табы это атавизм.В хтмле таблицы (и прочие слои) - атавизм, они идут лесом, в одном браузере они так, в другом - сяк, в третьем вообще неравномерно.
табы идут лесом.
в одном редакторе они так, в другом - сяк. в третьем вообще неравномерно.
только пробелами.
Дизайн должен быть только пробелами!

А вообще, табы именно для таких вещей и предназначены.
И, если уж ты заговорил насчёт редакторов - что произойдёт, если я в _любом_ редакторе слово "автор" заменю на "аффтар" (или наоборот)? Если пользоваться пробелами - то вся такая "таблица" у тебя как раз и поедет.
Так что, имхо, тут надо поставить табы.
В msxml у нас делалось что-то типа
<msxsl:script language="VBScript" implements-prefix="fun"><![CDATA[
Dim strm
function formFixedString(val,length,filler,align)
al = align
l = Len(val)
if l<length then
if al="r" then
formFixedString=string(length-l,filler)+val
else
formFixedString=val+string(length-l,filler)
end if
else
formFixedString=Left(val,length)
end if
end function
function fixed(node,fld,length,filler,align)
set nd = node.nextNode
val = nd.selectSingleNode(fld).text
fixed = formFixedString(val,length,filler,align)
end function
]]></msxsl:script>
...
<xsl:template match='file'>
<xsl:value-of select="fun:fixed(.,'file_name',8,' ','l')"/>
<xsl:value-of select="fun:fixed(.,'file_type',3,' ','l')"/>
</xsl:template>
дизайн в текстовом файле должен быть пробелами.
дружочек, если ты не заметил,
<xsl:output method="text"/>
дружочек, если ты не заметил,
<xsl:output method="text"/>
дизайн в текстовом файле должен быть пробеламиДизайн в текстовом файле должен быть именно табами.
Пробелы в текстовом файле - то же самое, что и пробелы в каком-нибудь ворде, когда люди хотят поместить содержимое ячейки по её центру.
тогда рядом с каждым текстовым файлом нужно таскать табовую разметку, а то и не одну. и переключать её внутри файла. и будет тогда не текстовый файл, а файл текстового процессора. это бред
тогда рядом с каждым текстовым файлом нужно таскать табовую разметкуЧто-что?
Наверное, мы не совсем понимаем друг друга

табы могут быть и не на 8х позициях расставлены
[ mode]
Narrowness of experience leads to
narrowness of imagination
[/ mode]
[ mode]
Narrowness of experience leads to
narrowness of imagination
[/ mode]
что такое табовая разметка?
таб это 8 пробелов в нормальном просмотрщике/редакторе текста
просто я вот встречал не нормальные просмотрщики, которые таб понимали и даже выравнивали, но итог получался кривой
поэтому и говорю: все зависит от того, где ты потом полученный файл будешь использовать
таб это 8 пробелов в нормальном просмотрщике/редакторе текста
просто я вот встречал не нормальные просмотрщики, которые таб понимали и даже выравнивали, но итог получался кривой
поэтому и говорю: все зависит от того, где ты потом полученный файл будешь использовать
жаль стёр пост. всё правильно сказал.
более того скажу.
есть среды, где первый табулятор сдвигает позицию на 8, воторой - на 16, а третий - на 40.
более того скажу.
есть среды, где первый табулятор сдвигает позицию на 8, воторой - на 16, а третий - на 40.
таб это 8 пробелов в нормальном просмотрщике/редакторе текстаТаб - это 8 пробелов в каком-то редакторе.
А по идее, он используется именно для такого выравнивания.
http://en.wikipedia.org/wiki/Tab_key
ЗЫ: Вообще, таб - это примерно то же, что и запятая в csv.
правильнее и удобнее делать в два прохода
первый проход занимается перестроением данных - формированием данных для таблицы
второй проход занимается форматированием, причем т.к. данные уже подготовлены, то без проблемы можно расчитать ширину каждого столбца, сколько пробелов надо вставить и т.д.
первый проход занимается перестроением данных - формированием данных для таблицы
второй проход занимается форматированием, причем т.к. данные уже подготовлены, то без проблемы можно расчитать ширину каждого столбца, сколько пробелов надо вставить и т.д.
> таб это 8 пробелов
"Narrowness of experience leads to narrowness of imagination."
> в нормальном просмотрщике/редакторе текста
---
"Рот фронт, группенфюрер..."
"Narrowness of experience leads to narrowness of imagination."
> в нормальном просмотрщике/редакторе текста
tab-stop-list is a variable defined in `indent.el'.
...
Documentation:
*List of tab stop positions used by `tab-to-tab-stop'.
This should be a list of integers, ordered from smallest to largest.
You can customize this variable.
---
"Рот фронт, группенфюрер..."
> только пробелами.
Как быть с немоноширинными шрифтами?
---
...Я работаю антинаучным аферистом...
Как быть с немоноширинными шрифтами?
---
...Я работаю антинаучным аферистом...
не использовать.
если немоноширинные - нужно таскать информацию о шрифтах. питч и кернинг например для каждого значка. а если шрифт проприетарный?
это метаинформация, которую нужно хранить _рядом_ с текстовым файлом.
опять, это будет файл не текстового редактора, но текстового процессора
если немоноширинные - нужно таскать информацию о шрифтах. питч и кернинг например для каждого значка. а если шрифт проприетарный?
это метаинформация, которую нужно хранить _рядом_ с текстовым файлом.
опять, это будет файл не текстового редактора, но текстового процессора
> не использовать.
Вот.
А если использовать HT, то tab-stop-list надо всего лишь
выставлять в em-ах или других единицах длины.
---
...Я работаю антинаучным аферистом...
Вот.
А если использовать HT, то tab-stop-list надо всего лишь
выставлять в em-ах или других единицах длины.
---
...Я работаю антинаучным аферистом...
аб это 8 пробелов в нормальном просмотрщике/редакторе текстая все текстовые редакторы, которые использую, настраиваю на табы в 4 пробела
в общем поддерживаю точку зрения, что форматирование в текстовом файле нужно делать пробелами
> в общем поддерживаю точку зрения, что форматирование
> в текстовом файле нужно делать пробелами
Тогда и к тебе относится вопрос про немоноширинные шрифты.
---
...Я работаю антинаучным аферистом...
> в текстовом файле нужно делать пробелами
Тогда и к тебе относится вопрос про немоноширинные шрифты.
---
...Я работаю антинаучным аферистом...
что такое шрифты для текстового файла?
что такое шрифты для текстового файла?Тебе зачем текстовый файл нужен? Читать его, или плоожить на полку пылиться?
Если файл нужно читать, то это уже проблема программы для просмотра, а не самого файла.
Таким образом, ответ на вопрос, что делать для немоноширинных шрифтов - поставить в программе просмотра моноширинный шрифт.
Таким образом, ответ на вопрос, что делать для немоноширинных шрифтов - поставить в программе просмотра моноширинный шрифт.
Таким образом, ответ на вопрос, что делать для немоноширинных шрифтов - поставить в программе просмотра моноширинный шрифт.То есть, когда тебе пользователь говорит "у меня в компьютере вообще нет моноширинных шрифтов", ты скажешь ему "иди на хуй, моя супер-прога работает только с моноширинными"?
В таком случае, надо генерить уже не текст, а картинку.
Если у кого-то нет моноширинных шрифтов, он не сможет насладиться выравниванием с помощью пробелов.
А если у него есть только Блокнот, который символ табуляции приравнивает к 8 пробелам, то этот же пользователь не сможет насладиться замечательным выравниванием, нарисованным в редакторе, где табуляция приравнивается к 4 пробелам.
Ибо у него все съедет хз куда.
Причем этот вариант куда вероятнее.
Вся фишка в том, что текстовый формат разрабатывался еще тогда, когда у видеокарт не было графического режима. И немоноширинных шрифтов не было.
Кто хочет наслаждаться красивыми шрифтами, воспользуется возможностями rtf, doc, html или любого другого украшателя текста.
Вот тут пожалуйста, рисуй табуляции как душе угодно.
А в старом добром тексте пробел куда удобнее.
А если у него есть только Блокнот, который символ табуляции приравнивает к 8 пробелам, то этот же пользователь не сможет насладиться замечательным выравниванием, нарисованным в редакторе, где табуляция приравнивается к 4 пробелам.
Ибо у него все съедет хз куда.
Причем этот вариант куда вероятнее.
Вся фишка в том, что текстовый формат разрабатывался еще тогда, когда у видеокарт не было графического режима. И немоноширинных шрифтов не было.
Кто хочет наслаждаться красивыми шрифтами, воспользуется возможностями rtf, doc, html или любого другого украшателя текста.
Вот тут пожалуйста, рисуй табуляции как душе угодно.
А в старом добром тексте пробел куда удобнее.
нарисованным в редакторе, где табуляция приравнивается к 4 пробелам.Что за фигня?
В конце каждой ячейки надопоставить ровно один таб. Причём тут количество пробелов?
А то, что 1 таб можно ставить только в том случае, если ты можешь как-то задать позиции табуляции.
Иначе непонятно, по какой именно линии выравнивать.
Текстовый формат этого не позволяет, поэтому позиции расставляются то на каждом 4-м, то на каждом 8-м символе.
Иначе непонятно, по какой именно линии выравнивать.
Текстовый формат этого не позволяет, поэтому позиции расставляются то на каждом 4-м, то на каждом 8-м символе.
Тогда и к тебе относится вопрос про немоноширинные шрифты.Для plain text немоноширинные шрифты не использую.
То есть, документ делается для личного использования? И другие люди читать его не должны?
если уж выбирать между пробелами и табами, то пробелы лучше, т.к. почти любой вьювер/редактор позволяет выбрать моноширинный шрифт, но очень редкий вьювер/редактор позволяет настроить табы (особенно в режиме выравнивания на линию)
кстати проблема с табами в том, что придется еще рядом прикладывать инструкцию - какие именно табы надо настраивать, то что надо поставить моноширинный шрифт - в целом - понятно и без инструкции.
кстати проблема с табами в том, что придется еще рядом прикладывать инструкцию - какие именно табы надо настраивать, то что надо поставить моноширинный шрифт - в целом - понятно и без инструкции.
Кто другие? По умолчанию текстовые редакторы, которые мне попадались на глаза, используют "правильные" шрифты, и IE, кстати тоже. Если тебе захотелось настроить другие шрифты, это был твой выбор, не вижу проблемы.
> А то, что 1 таб можно ставить только в том случае,
> если ты можешь как-то задать позиции табуляции.
В случае plain text для этого предназначено такое старое
испытанное средство, как expand(1):
Тебе не кажется, что двадцать семь лет, прошедших с 1980-го года,
для тебя прошли впустую?
> Текстовый формат этого не позволяет
Для тех, кто отстал на двадцать лет, напоминаю,
что разделитель полей по умолчанию --- HT.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
> если ты можешь как-то задать позиции табуляции.
В случае plain text для этого предназначено такое старое
испытанное средство, как expand(1):
/* $NetBSD: expand.c,v 1.10 2005/03/09 02:02:07 christos Exp $ */
/*
* Copyright (c) 1980, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
Тебе не кажется, что двадцать семь лет, прошедших с 1980-го года,
для тебя прошли впустую?
> Текстовый формат этого не позволяет
Для тех, кто отстал на двадцать лет, напоминаю,
что разделитель полей по умолчанию --- HT.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
параметр -t для expand-а для каждого файла где-то хранить надо.
повторюсь, это метаинформация, которая к тексту имеет опосредованное отношение.
повторюсь, это метаинформация, которая к тексту имеет опосредованное отношение.
> тут вспонимлось про Ганса
Я прекрасно всё помню.
> параметр -t для expand-а для каждого файла где-то хранить надо.
Это относится ко времени просмотра файла, когда и следует его
задавать или даже вычислять.
---
...Я работаю антинаучным аферистом...
Я прекрасно всё помню.
> параметр -t для expand-а для каждого файла где-то хранить надо.
Это относится ко времени просмотра файла, когда и следует его
задавать или даже вычислять.
---
...Я работаю антинаучным аферистом...
Оставить комментарий
yolki
Есть такой XSL:
результат:
хочется:
Тут наверное надо курить в сторону http://www.w3.org/1999/XSL/Format, но чё-то там не очень понятно..