星期二, 6月 03, 2008

如何把文字變直式

今天在小舖看到看到一個問題..問題是..如何讀取文字把橫式呈現的文字變成直式的..
就是下面這張圖要要轉變的事..

ghj

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
using System.Collections.Generic;
using System.Text;

public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
List<tagWord> li = new List<tagWord>();

//讀取文字檔
string[] strArr = File.ReadAllLines(Server.MapPath("~/txt/cc.txt"),
Encoding.GetEncoding("big5"));

//用迴圈的方式去把每個char標記,然後塞入tagWord
for (int i = 0; i < strArr.Length; i++)
{
var charA = (from a in strArr[i]
select a).ToArray();

for (int j = 0; j < charA.Length; j++)
{
li.Add(new tagWord() { r = i, c = j, str = charA[j] });
}
}

//先把原始的檔案文字印出來
foreach (string str in strArr)
{
Response.Write(str + "<br />");
}

//分隔線
Response.Write("<br />----------------轉變-----------------<br /><br />");

//把最大邊界抓出來
int cM = li.Max(a => a.r);
int rM = li.Max(a => a.c);

//然後把原本row變成column,把column變成row
for (int c = 0; c <= rM; c++)
{
for (int r = 0; r <= cM; r++)
{
var tWord = from w in li
where w.r == r && w.c == c
select w;

foreach (tagWord w in tWord)
{
Response.Write(w.str);
}
}
Response.Write("<br />");
}
}
}

public class tagWord
{
public int r { get; set; }
public int c { get; set; }
public char str { get; set; }
}

想法很簡單..就是把每個字都用編號給他記住..然後最後結果就是要把直的變成橫的橫的變成直的..就行了..Open-mouthed
成功..Praying..

7 則留言:

提到...

你好~我是小舖發問的那位,不好意思!!
冒昧請問一下~因為是新手^^
我在使用時提示缺少Linq組件,該如何加入
能否寄給我整個專案網站~我想知道aspx是怎樣寫的
之前沒有接觸過CODE寫再另一檔案
方便的話!!!再次謝謝

提到...

忘記留下MAIL
yuhuanglan@gmail.com

Bibby 提到...

vs2008就有內建linq的組件了..所以你去下在免費的vs2008用好了..^^..
還有那專案..寄給你了..^^

活靶子 提到...

使用样式表就可以搞定了。
[code]
.xx{
writing-mode:tb-rl;
}
.yy { width:15px; float:left;
}[/code]

Bibby 提到...

活靶子
這好像只有ie可以跑ㄟ..^^||..不過也算絕招..乾溫ㄟ

beck790610 提到...

你好~我目前在整合專題的專案
需要將注音的對齊方式改為直式
例如: ㄏ
ㄏㄠˇ→ ㄠˇ

使用C#2010提示缺少UI組件,該如何加入呢?如果可以也是否能把專案寄給我參考,麻煩你了~謝謝!

e-mail:beck790610@hotmail.com

由衷感謝您的相助!

Bibby 提到...

注音做不到,會有問題,變成"ㄏㄠˇ"由上到下,應該不是你想要的