【问题标题】:IronPython convert from Python String to SByte arrayIronPython 从 Python 字符串转换为 SByte 数组
【发布时间】:2013-06-19 15:39:32
【问题描述】:

为了在 IronPython 中使用外部 dll,我必须将字符串传递给 char 数组(char var[len]; 在 C++.NET 中)。似乎应该传递一个 SByte 数组。

如果我尝试

myVarFromCLibrary = myPyString

我明白了

TypeError: expected Array[SByte], got str

网络上的信息很少。到目前为止,我发现我可以应用这样的东西:

from System import Array
...
myCString = Array[System.SByte](myPyString)

myVarFromCLibrary = myCString

如果这样做,我会收到如下错误:

TypeError: expected SByte, got str

如何获得正确的转化。

【问题讨论】:

    标签: string ironpython arrays


    【解决方案1】:

    同时我找到了解决方法,但没有解决方案:

    def strToCharArray(theCharArray,theString):
      asBytes = bytes(theString,'ascii')  
      for i in xrange(len(theString)):
        theCharArray[i] = ord(asBytes[i])
      theCharArray[len(asBytes)] = 0
    
    def charArrayToStr(theCharArray):  
      chars = []
      i     = 0
      while theCharArray[i]>0: 
        chars.append(chr(theCharArray[i]))
        i += 1
      return "".join(chars)
    

    这让我的程序继续运行,但不是真正的解决方案

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 2011-08-05
      • 2015-03-09
      • 2018-09-10
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      • 2018-10-06
      • 2011-03-12
      相关资源
      最近更新 更多