dzz: Dizzy の春 (Default)
[personal profile] dzz
Наваял на даче со скуки питоновский модуль для преобразования "европейской" записи японского (слева направо, сверху вниз) в традиционную (сверху вниз, справа налево) и обратно.

Получилось простенько, но занятно, работает в консоли.
Спасибо юникоду за любезно предоставленные monospace-символы ;)

Date: 2008-09-11 08:02 am (UTC)
From: [identity profile] mckuroske.livejournal.com
А можно подробности узнать?

Date: 2008-09-13 09:24 am (UTC)
From: [identity profile] dzz.livejournal.com
Могу процитировать исходник ;)

Date: 2008-09-13 09:27 am (UTC)
From: [identity profile] dzz.livejournal.com

#!/usr/bin/python
# -*- coding: utf-8 -*-

# Sample for japanese printout 

in_lines=u"""ドミトリ
ポバロ
は
プログラマ
2008年08月05日"""

# Convert european order to traditional one

# Todo: convert ASCII to unicode-monospace-ASCII (0x3000, 0xFF** etc)

def e2jap_print(in_array):

  liness=in_array.split()
  
  t=[]
  jap=[]
  
  for i in liness: t.append(len(i))
  
  xl=len(liness)
  yl=max(t)
  
  for i in range(yl):
    jap.append([])
    for j in range(xl):
      jap[i].append([])
      try:
        jap[i][j]=liness[xl-j-1][i]
      except Exception, message:
        jap[i][j]=u" "

  for i in range(len(jap)):
    jap[i]="".join(jap[i])
  
  return jap

import sys

print in_lines
print "-"*80
for i in e2jap_print(in_lines):
  print i

sys.exit(0)

# -[ The End ]-
Edited Date: 2008-09-13 09:33 am (UTC)

Date: 2008-09-13 09:42 am (UTC)
From: [identity profile] dzz.livejournal.com

Было:

ドミトリ
ポバロ

プログラマ
2008年08月05日

--------------------------------------------------------------------------------
Стало:

2プはポド
0ロ バミ
0グ ロト
8ラ  リ
年マ   
0    
8    
月    
0    
5    
日   

Edited Date: 2008-09-14 09:10 am (UTC)

Date: 2008-09-14 01:45 am (UTC)
From: [identity profile] mckuroske.livejournal.com
Э... ы...

Нет, физический смысл данного явления я понимаю. А где это можно применить?

Date: 2008-09-14 08:53 am (UTC)
From: [identity profile] dzz.livejournal.com
Ну, в общем, везде :)

Это же инструментальное средство. Для работы требует установки интерпретатора языка python.

Используя данную функцию можно, например, написать программу, которая на входе будет получать текстовый файл с горизонтальной записью, а на выходе - формировать файл с традиционной. Полученный файл можно втащить в любимый текстовый редактор (тот же MS Word или OpenOffice Writer) и уже в документе выровнять по правому краю.

Date: 2008-09-14 09:10 am (UTC)
From: [identity profile] mckuroske.livejournal.com
*грустно* Не-а. Я ведь ничего не понимаю в том, что вы говорите...

Date: 2008-09-14 10:12 am (UTC)
From: [identity profile] dzz.livejournal.com
Увы. А чего хочется-то?

Date: 2008-09-14 10:15 am (UTC)
From: [identity profile] mckuroske.livejournal.com
Да не знаю даже. :-)
Дали ссылку на этот пост - вот и думала, может, как-то к себе приспособить? Что-нибудь куда-нибудь переформатировать... Но, видать, не судьба. :-)))

Date: 2008-09-14 10:23 am (UTC)
From: [identity profile] northern-cat.livejournal.com
Я тоже не понимала, поэтому зря Вас обнадёжила, как выяснилось. После пристрастного допроса обнаружилось следующее: использовать программу, не будучи программером, всё-таки можно, но надо сначала установить на своём компьютере язык программирования python -- тогда есть несложный алгоритм действий, приводящий к желаемому результату без понимания сути процесса, но этот язык по умолчанию не стоИт... Не уверена, что я написала понятнее, но очень надеюсь. :)

Date: 2008-09-14 10:26 am (UTC)
From: [identity profile] mckuroske.livejournal.com
Да, я уже тоже поняла, что овчинка выделки, к сожалению, не стОит. :-( А жаль. Все так красиво выглядело. :-)))

Date: 2008-09-14 12:19 pm (UTC)
From: [identity profile] dzz.livejournal.com
Попробую объяснить. То, о чём этот пост - базовый алгоритм, рассчитанный на программистов. Делать из него виндовое приложение, расчитанное на конечных пользователей я пока не собираюсь.

Date: 2008-09-15 08:02 am (UTC)
From: [identity profile] mckuroske.livejournal.com
Ясно. Спасибо.

Date: 2008-09-15 10:09 am (UTC)
From: [identity profile] dzz.livejournal.com
Извините, если не оправдал надежд :(

Date: 2008-09-15 10:10 am (UTC)
From: [identity profile] mckuroske.livejournal.com
Да ни боже мой! Просто увидела - заинтересовалась. А потом поняла, что это не для меня. :-)

April 2026

S M T W T F S
   1 2 34
56 7 891011
1213141516 1718
19202122232425
2627282930  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 21st, 2026 04:28 pm
Powered by Dreamwidth Studios