将delphi代码迁移到c#,char代码编号

时间:2013-10-24 15:35:07

标签: c# delphi delphi-7

我需要将一些delphi代码迁移到c#(。net)以用于我的mv4 apliccation。这将取代现有delphi应用程序的一些功能,但我需要使用一些特定的功能。

主要问题是当我尝试从字符串中获取字符时:

FText = "123456";
i = 1;

的Delphi:

a := Integer(FText[i]);

C#:

a = (int)FText[i];

但是c#返回50和delphi 49

2 个答案:

答案 0 :(得分:2)

Delphi历来使用“长度前缀”字符串,长度指示符为string[0]。将字符串的第一个字符放在索引1处。由于在Delphi中引入了“long strings”,字节数不再是索引0,而是字符串继续使用从1开始的索引。

C#对字符串使用从零开始的索引。当您将任何字符串代码从Delphi转换为C#时,您将需要处理不同的索引方案。

答案 1 :(得分:0)

C#代码工作正常。 FText[1] == '2'所以它是ASCII格式的50。

对Delphi的了解不多,但也许没有0索引的表,所以FText[1] == '1'所以它的49?