【发布时间】:2017-08-29 21:15:34
【问题描述】:
如何将此 vfp 代码转换为 c#
Function PlainToHex(inputString)
Local myString
myString = ""
Do While Len(inputString) > 0
myString = myString + Right(Transform(Asc(inputString), "@0"), 2)
inputString = SubStr(inputString, 2)
EndDo
Return myString
EndFunc
我已尝试查找 msdn,但这些 vfp 函数的示例不足。
【问题讨论】:
-
Asc : msdn.microsoft.com/en-us/library/aa977280(v=vs.71).aspx Transform : msdn.microsoft.com/en-us/library/aa978614(v=vs.71).aspx Right : msdn.microsoft.com/en-us/library/aa978263(v=vs.71).aspx SubStr : msdn.microsoft.com/en-us/library/aa978501(v=vs.71).aspx Len : msdn.microsoft.com/en-us/library/aa977928(v=vs.71).aspx
-
是 Asc() 单个字符还是一串字符?
-
如果您阅读链接,您会发现它可以是 - 如果它是字符串,则仅转换第一个字符。因此,代码将字符串的第一个字符转换为 ASCII 值,将其转换为十六进制并将最右边的 2 个字符附加到最终字符串(这应该不是必需的,因为值应该是 2 个字符)。子字符串只取第二个字符的整个字符串(在 VFP 中,字符串是从 1 开始的,而不是 C# 中的 0)
-
@PaulF, right 2 是必需的,因为 transform(, "@0") 的结果是 10 个字符,即:0x7FFFFFFF。
标签: c# visual-foxpro