【发布时间】:2012-01-05 04:17:44
【问题描述】:
我在 .net 中读取了文件。这个文件是编码格式的。现在我必须解码文件。你能帮我在 C# 中如何做到这一点吗?
我的编码文件格式是
DARHnAyyakAALdDALdDALWGALY.AAAEQWAAAHQO
DARJMAyyakAALshALshALjEALoTAAAEA4AAAKcI
DARKwAyyakAAL2wAL2wALvkAL0VAAABJIAAAD$O
DARHnAyyvqAALXCALbkALUYALYXAAAD3MAAAHA6
DARJMAyyvqAALnXALrRALiwALmgAAAEmsAAAKUK
DARKwAyyvqAALzeAL3EALtdALxIAAABFYAAAEBC
DARHnAyzEwAALXlALXlALP7ALU7AAAEpMAAAG5Q
DARJMAyzEwAALlkALlkALeEALjYAAAGysAAAKTs
我必须在 c# 中解码这个文件。请帮帮我..我在 java 中有逻辑。但我不知道在 c# 中做什么。
private void update(String s){
int exp = decode(s.substring(1,5));
exp += 20000000;
int dt = decode(s.substring(5,11));
int op = decode(s.substring(11,15));
int hi = decode(s.substring(15,19));
int lo = decode(s.substring(19,23));
int cl = decode(s.substring(23,27));
int v = decode(s.substring(27,33));
int ni = decode(s.substring(33,39));
append(""+exp,dt, op/100.0f, hi/100.0f, lo/100.0f, cl/100.0f, v, ni);
}
private int decode(String s)
{
int n = 0;
for (int i = 0; i < s.length(); i++)
{
int c = (int)s.charAt(i);
if (c >= (int)'A' && c <= (int)'Z')
c = c - (int)'A';
else if (c >= (int)'a' && c <= (int)'z')
c = c - (int)'a' + 26;
else if (c >= (int)'0' && c <= (int)'9')
c = c - (int)'0' + 52;
else if (c == (int)'$')
c = 62;
else if (c == (int)'.')
c = 63;
else
c = 0;
n <<= 6;
n += c;
}
return n;
}
【问题讨论】:
-
所以你有一个文件'编码'(看起来像),允许你的猫在大写锁定的情况下四处走动,你想'解码'它来让猫出来?如果这不是您想要做的,那么请更具体。我的精神力量并不完美。
-
@Robert Allan 该文件已被编码,因为它不应该是可读格式。并且还可以减小文件大小。
-
@Dan 是的,我的文件已编码。现在我必须解码文件。现在该文件不可读。现在我希望读取该文件。为此我应该解码该文件。跨度>
-
“该文件被编码,因为它不应该是可读格式” - 加密是用来防止读取格式的。编码可能实现相同的结果,但它用于不同的目的。你确定你说的不是加密吗?
-
@Dan,很久以来我看到的最好的评论。 :)