特殊文字を読み取らないことを除いて、すべて正常に機能します。私のファイル「a.text」には次のものが含まれています。
"ANBOCPDQERFSGTHUIVJWKXLYMZNAOBPCQDRESFTGUHVIWJXKYLZManbocpdqerfsgthuivjwkxlymznaobpcqdresftguhviwjxkylzm05162738495061728394 <:>;(、)。[?] {'}"/~\!|@_#+$-%*^=&:<;>,(.)?[
]'{"} _ / = "%|
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication12
{
class Tester
{
static void Main(string[] args)
{
FileStream fs = new FileStream(@"d:\a.txt", FileMode.Open, FileAccess.Read);
string s = "aDFn3&5(09@Df0!/";
string c1 = "";
string c2 = "";
string c3 = "";
byte[] text2 = new byte[1];
byte[] text1;
int i,j,k=0;
while (k<16)
{
c1 = s.Substring(k, 1);
if (Regex.IsMatch(c1, @"^[A-Z]+$"))
{
i = 26;
j = 6;
fs.Seek(0, SeekOrigin.Begin);
}
else if (Regex.IsMatch(c1, @"^[a-z]+$"))
{
i = 26;
j = 6;
fs.Seek(182, SeekOrigin.Begin);
}
else if (Regex.IsMatch(c1, @"^[0-9]+$"))
{
i = 10;
j = 10;
fs.Seek(364, SeekOrigin.Begin);
}
else
{
i = 32;
j = 10;
fs.Seek(-352, SeekOrigin.End);
}
while(i>0)
{
fs.Read(text2, 0, 1);
c2 = System.Text.Encoding.Default.GetString(text2);
if (c1 == c2)
{
Console.Write(c2);
break;
}
fs.Seek(j, SeekOrigin.Current);
i--;
}
text1 = new byte[j];
fs.Read(text1, 0, j);
c3 = System.Text.Encoding.Default.GetString(text1);
Console.Write(c3);
Console.WriteLine();
k++;
}
}
}
}
特殊文字を読み取って比較しようとしている出力の間に空白があります。入力c2文字列のエンコードが問題だと思いますが、すべてのエンコードタイプ、UTF8、UNICODE、UTF7、UTF32を試してみました。
これで私を助けてください、すべての返事はありがたいです。