日期:2014-05-18  浏览次数:20906 次

C#中能不能将txt文件的内容进行行和列进行倒置
C#中能不能将txt文件的内容进行行和列进行倒置,就是行变成列,列变成行的那种?
比如说txt中存放的是这样的
00001
00001
10000
11111
10010
11011
....
类似这样的二进制数,应该咋么处理,文本应该是有768行,列有5列,咋么处理?

------解决方案--------------------
我说方法
你先split出一个数组
string[]; 我们假设有10个
分别是

stringArray[0]="00001";
stringArray[1]="10000";
stringArray[2]="11111";
stringArray[3]="01111";
stringArray[4]="01100";
stringArray[5]="00001";
stringArray[6]="00001";
stringArray[7]="00001";

然后循环这些数组

int index=0;

List<string> stringList;

while(index<5)
{
for(int i=0;i<stringArray.Count;i++)
{
if(index==0)
{
stringList.Add(stringArray[i][index]);
}
else
{
stringList[i]+= stringArray[i][index];
}
}
index++;
}

最后得出来的就是一个stringList,然后你循环输出到txt即可,我没有上IDE写,就直接在这写了,你自己根据这种思想来写,多思考

------解决方案--------------------
C# code
int column = 5;
string[] lines = File.ReadAllLines(@"E:\a.txt");
char[][] result = new char[column][];

for (int i = 0; i < result.Length; i++)
{
    result[i] = new char[lines.Length];
}
for (int i = 0; i < lines.Length; i++)
{
    char[] arr = lines[i].ToCharArray();
    for (int j = 0; j < column; j++)
    {
        result[j][i] = arr[j];
    }
}

using (StreamWriter sw = new StreamWriter(@"E:\c.txt", false, Encoding.ASCII))
{
    for (int i = 0; i < result.Length; i++)
    {
        sw.WriteLine(new string(result[i]));
    }
}