请教:Delphi转C#问题

yong427 2005-01-02 09:09:38
那位大哥能帮我把下面的Delphi转化为C#的,谢谢了
Function Encode(strCode : String) : String ;
var
i : Integer;
P, AscP : String;
begin
i := 1;
While i <= Length(strCode) do
begin
P := copy(strCode, i, 1);
If i Mod 3 = 1 Then
AscP := AscP + Chr(Ord(P[1])+3)
Else If i Mod 3 = 2 Then
AscP := AscP + Chr(ord(P[1]) + 5)
Else
AscP := AscP + Chr(ord(P[1]) + 1);
i := i + 1;
end;
result := AscP;
End ;

Function Decode(strPass : String) : String;
var
i : Integer ;
P, AscP : String ;
begin
i := 1;
While i <= Length(strPass) do
begin
P := copy(strPass, i, 1);
If i Mod 3 = 1 Then
AscP := AscP + Chr((ord(P[1]) - 3))
Else If i Mod 3 = 2 Then
AscP := AscP + Chr((ord(P[1]) - 5))
Else
AscP := AscP + Chr((ord(P[1]) - 1));

i := i + 1 ;
end;
result := AscP;

End ;
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
winxieddd 2005-01-03
  • 打赏
  • 举报
回复
string vv;
Class1 st = new Class1();
vv = st.Encode("ABC");
MessageBox.Show(vv);//显示BEH
vv= st.Decode(vv);
MessageBox.Show(vv);//显示ABC

winxieddd 2005-01-03
  • 打赏
  • 举报
回复
哪里不对了?
yong427 2005-01-03
  • 打赏
  • 举报
回复
没有人吗?
很急啊
分不够可以在给
yong427 2005-01-03
  • 打赏
  • 举报
回复
哎呀,不对啊,测试过了不对啊,谁能教教我,很急啊,在线等
winxieddd 2005-01-03
  • 打赏
  • 举报
回复
呵呵~~~是的,我的那个错了,下面这个应该对了吧:

using System;

namespace WindowsApplication4
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Class1
{
public string Encode(string strCode)
{
char p;
string AscP="";

for(int i=0; i<strCode.Length; i++)
{
p = strCode[i];
if (i%3 ==0)
AscP = AscP + (char)(p+3);
else if(i%3 ==1)
AscP = AscP+(char)(p+5);
else
AscP = AscP+(char)(p+1);
}

return AscP;
}

public string Decode(string strPass)
{
char p;
string AscP="";

for(int i=0; i<strPass.Length; i++)
{
p = strPass[i];
if (i%3 ==0)
AscP = AscP + (char)(p-3);
else if(i%3 ==1)
AscP = AscP+(char)(p-5);
else
AscP = AscP+(char)(p-1);

}
return AscP;
}


}
}
yong427 2005-01-03
  • 打赏
  • 举报
回复
不行啊,我在Delphi里执行Function Encode(strCode : String) : String ;
和在C#里执行Encode(string strCode)
产生的结果不一样的
yiyi0518 2005-01-03
  • 打赏
  • 举报
回复
都是强人
dazhu2 2005-01-03
  • 打赏
  • 举报
回复
public class Class1
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public string [] Encode(string [] strCode)
{
char p;
string [] AscP=new string[strCode.Length];
string a;

for(int i=0; i<strCode.Length; i++)
{
a=strCode[i];
p = Convert.ToChar(a);
if (i%3 ==1)
AscP[i] = AscP[i] + (char)(p+3);
else if(i%3 ==2)
AscP[i] = AscP[i]+(char)(p+5);
else
AscP[i] = AscP[i]+(char)(p+1);
}

return AscP;
}

public string [] Decode(string [] strPass)
{
char p;
string a;
string []AscP=new string[strPass.Length];

for(int i=0; i<strPass.Length; i++)
{a=strPass[i];
p = Convert.ToChar(a);
if (i%3 ==1)
AscP[i] = AscP[i] + (char)(p-3);
else if(i%3 ==2)
AscP[i] = AscP[i]+(char)(p-5);
else
AscP[i]= AscP[i]+(char)(p-1);

}
return AscP;
}


}

你在函数调用前把字符窜转化成数组
winxieddd 2005-01-02
  • 打赏
  • 举报
回复
public class Class1
{
public string Encode(string strCode)
{
char p;
string AscP="";

for(int i=0; i<strCode.Length; i++)
{
p = strCode[i];
if (i%3 ==1)
AscP = AscP + (char)(p+3);
else if(i%3 ==2)
AscP = AscP+(char)(p+5);
else
AscP = AscP+(char)(p+1);
}

return AscP;
}

public string Decode(string strPass)
{
char p;
string AscP="";

for(int i=0; i<strPass.Length; i++)
{
p = strPass[i];
if (i%3 ==1)
AscP = AscP + (char)(p-3);
else if(i%3 ==2)
AscP = AscP+(char)(p-5);
else
AscP = AscP+(char)(p-1);

}
return AscP;
}

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧