From 65ea39fcfab5106b8d16a95c43e4e7028a5d33ce Mon Sep 17 00:00:00 2001 From: mhiretskiy Date: Wed, 27 Aug 2008 13:16:41 +0000 Subject: [PATCH] git-svn-id: http://svn.calculate.ru/calculate2/calculate-lib/trunk@145 c91db197-33c1-4113-bf15-f8a5c547ca64 --- pym/cl_utils.py | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/pym/cl_utils.py b/pym/cl_utils.py index 54e5f72..996628c 100644 --- a/pym/cl_utils.py +++ b/pym/cl_utils.py @@ -54,8 +54,10 @@ def prettyColumnStr(*cols): cols = list(cols) # перевести текст в юникод, заодно перевести числа в строку noconvert = False + space = u' ' for i in xrange(0,len(cols),2): if type(cols[i]) == types.UnicodeType: + space = " " noconvert = True cols[i] = _toUNICODE(cols[i]) # флаг "есть еще текст для вывода" @@ -76,6 +78,14 @@ def prettyColumnStr(*cols): partstr = cols[q][:cols[q+1]] # искать перевод строки с полученной части brfind = wherenr.search(partstr) + # если это не последняя колонка + if q + 2 < len(cols): + # добавить разделитель между колонками + cellspacing = space + else: + # разделитель не нужен + cellspacing = "" + # если перевод строки найден, то if brfind != None: # для текущего вывода в колонку @@ -83,13 +93,13 @@ def prettyColumnStr(*cols): partstr = partstr[:brfind.start()] # остальная часть идет в остаток (без перевода) cols[q] = cols[q][brfind.start()+1:] - # если используется перевод каретки - if brfind.group() == '\r': - # то выравниваем по ширине колонки - partstr = justify(partstr, cols[q+1]) - else: - # добавить отступы чтобы закончить колонку - partstr = partstr.ljust(cols[q+1], ' ') +# # если используется перевод каретки +# if brfind.group() == '\r': +# # то выравниваем по ширине колонки +# partstr = partstr.ljust(cols[q+1], ' ') +# else: +# # добавить отступы чтобы закончить колонку + partstr = partstr.ljust(cols[q+1], ' ') # если взята часть строки elif len(partstr) == cols[q+1] and partstr != cols[q]: # если взята часть строки (разрыв в слове) @@ -110,7 +120,8 @@ def prettyColumnStr(*cols): # ислючить переносной пробел cols[q] = cols[q][cols[q+1]+1:] # выровнить текст по ширине колонки - partstr = justify(partstr, cols[q+1]) + partstr = partstr.ljust(cols[q+1], ' ') + #partstr = justify(partstr, cols[q+1]) # остатки строки else: # добавить отступы чтобы закончить колонку @@ -119,9 +130,10 @@ def prettyColumnStr(*cols): # добавить к возвращаемой строки полученную + пробел if noconvert: - retstr+= partstr + u' ' + retstr+= partstr + cellspacing else: - retstr+= partstr.encode('utf8') + " " + retstr+= partstr.encode('utf8') + cellspacing + # остальную часть строки оставить на следующую итерацию # если от строки что то осаталось if len(cols[q]) > 0: @@ -226,8 +238,6 @@ def columnWrite(*cols): print def justify(s,width): - # добавить отступы чтобы закончить колонку - return s.ljust(width, ' ') '''Выровнить текст по ширине Параметры: