Cypher

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 8fa6c9e044b49858905bed321ddbff0844090c25
parent 44759fa9ce0794020641897c464faa4fc270f59f
Author: Minerva_juppiter <94231606+minerva-jupiter@users.noreply.github.com>
Date:   Mon, 27 Jun 2022 00:04:30 +0900


Diffstat:
MSortProgram.cs | 67+++++++++++++++++++++++++++----------------------------------------
1 file changed, 27 insertions(+), 40 deletions(-)

diff --git a/SortProgram.cs b/SortProgram.cs @@ -41,8 +41,7 @@ namespace Cypher //byteのデータを長さの数だけ用意 byte[] dates = new byte[howLongDateInt]; - string[] encrypted = new string[howLongDateInt]; - string[] sorded = new string[howLongDateInt]; + byte[] sorded = new byte[howLongDateInt]; int quotient; int amari; @@ -68,15 +67,10 @@ namespace Cypher //順番にデータを移行 inNumber = 0; //encrypted の読み込み - StreamReader streamReader = new StreamReader(whereEncrypted); - inNumber = 0; - while (inNumber < howLongDateInt) - { - encrypted[inNumber] = streamReader.ReadLine(); - Console.WriteLine(inNumber); - inNumber++; - } - streamReader.Close(); + FileStream fs = new FileStream(whereEncrypted, FileMode.Open); + byte[] encrypted = new byte[fs.Length]; + fs.Read(encrypted, 0, encrypted.Length); + fs.Close(); Console.WriteLine("Encrypted date was readed"); inNumber = 0; @@ -84,6 +78,7 @@ namespace Cypher int indexNumber = 0; int indexStartNumber = 0; int indexEndNumber = 0; + int outNumber = 0; if (multipleJudgment) { //100で割り切れないとき @@ -113,34 +108,32 @@ namespace Cypher //100で割り切れない数の場合 //余りの位置を特定 int whereAmari = Array.IndexOf(order, 99); + while (arreyNumber < 100) { indexNumber = Array.IndexOf(order, arreyNumber); - if (indexNumber > whereAmari) + //indexNumberとamariの関係で場合分け + if (indexNumber < whereAmari) { - //indexNumberとamariの関係で場合分け - if (indexNumber < whereAmari) - { - //indexNumberがamariの方が小さいとき。 - indexStartNumber = indexNumber * quotient; - indexEndNumber = (indexNumber + 1) * quotient; - } - else if (indexNumber == whereAmari) - { - indexStartNumber = indexNumber * quotient; - indexEndNumber = indexNumber * quotient + amari; - } - else if (indexNumber < whereAmari) - { - indexStartNumber = (indexNumber - 1) * quotient + amari; - indexEndNumber = indexNumber * quotient + amari; - } + //indexNumberがamariの方が小さいとき。 + indexStartNumber = indexNumber * quotient; + indexEndNumber = (indexNumber + 1) * quotient; } - indexNumber = indexStartNumber; - while (indexNumber < indexEndNumber) + else if (indexNumber == whereAmari) { - sorded[inNumber] = encrypted[indexNumber]; - indexNumber++; + indexStartNumber = indexNumber * quotient; + indexEndNumber = indexNumber * quotient + amari; + } + else if (indexNumber < whereAmari) + { + indexStartNumber = (indexNumber - 1) * quotient + amari; + indexEndNumber = indexNumber * quotient + amari; + } + outNumber = indexStartNumber; + while (outNumber < indexEndNumber) + { + sorded[inNumber] = encrypted[outNumber]; + outNumber++; inNumber++; } Console.WriteLine(arreyNumber); @@ -149,18 +142,12 @@ namespace Cypher } Console.WriteLine("The date was sorted."); - //sortedを一つに統合 - writtens = string.Concat(sorded); //データを元の長さに整理 //ファイルサイズが100以下の場合 if (howLongDateInt < 100) { - dates = Encoding.GetEncoding("UTF-8").GetBytes(string.Concat(new ArraySegment<string>(written, 0, howLongDateInt))); - } - else - { - dates = Encoding.GetEncoding("UTF-8").GetBytes(writtens); + Array.Copy(sorded, 0, dates, 0, 100 - howLongDateInt); } //書きこ