Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 将VB6.Format转换为[variable].ToString()问题_.net_Vb.net - Fatal编程技术网

.net 将VB6.Format转换为[variable].ToString()问题

.net 将VB6.Format转换为[variable].ToString()问题,.net,vb.net,.net,Vb.net,我目前正在将一些遗留软件转换为VB.NET。我已经完成了一切,除了一些格式 当我尝试将以下内容更改为[variable].ToString()时: 这是:VB6.Format(Mid(inputrec3,129+(21*I),1),“0”)和“ 对此:Mid(inputrec3,129+(21*I),1.ToString(“0”)和“ 我收到一个运行时错误,说明:将“字符串”转换为“IFormatProvider”时出错。 变量inputrec3和I都声明为对象。我不确定问题是什么。我已经尝试将

我目前正在将一些遗留软件转换为
VB.NET
。我已经完成了一切,除了一些格式

当我尝试将以下内容更改为[variable].ToString()时:

这是:
VB6.Format(Mid(inputrec3,129+(21*I),1),“0”)和“

对此:
Mid(inputrec3,129+(21*I),1.ToString(“0”)和“

我收到一个运行时错误,说明:
将“字符串”转换为“IFormatProvider”时出错。

变量
inputrec3
I
都声明为对象。我不确定问题是什么。我已经尝试将它们的声明更改为
Int
,并将
Mid
方法放入变量中,并尝试以这种方式格式化,但没有效果

我不确定我还应该做些什么来让这最后一件作品发挥作用。我知道我可以将其保留为VB6.Format,但我更喜欢使用更为更新的格式


任何帮助都将不胜感激。

函数返回字符串<代码>字符串。ToString没有采用格式字符串的重载。调用
Format
函数时,“遗留”代码似乎将从
Mid
返回的字符串隐式转换为数字。在VB.NET中,您可能需要明确执行以下操作:

CInt(Mid(inputrec3, 129 + (21 * I), 1)).ToString("0")

或者查看
Mid
是否为您提供了所需的字符串,而不是将其从字符串转换为整数再转换回来。

函数返回字符串<代码>字符串。ToString没有采用格式字符串的重载。调用
Format
函数时,“遗留”代码似乎将从
Mid
返回的字符串隐式转换为数字。在VB.NET中,您可能需要明确执行以下操作:

CInt(Mid(inputrec3, 129 + (21 * I), 1)).ToString("0")
或者查看
Mid
是否为您提供了所需的字符串,而不是将其从字符串转换为整数再转换回来。

您可能只需要

Mid(inputrec3, 129 + (21 * I), 1) & " "
因为
Mid
已经基于参数返回了一个单字符字符串。如果它已经是一个数字,那么你根本不需要格式化它

但是,请参阅哪个建议,当传递一个单字符字符串时,
Format(string,“0”)
将返回一个带有

  • 如果
    string
    是数字,则返回一位数
  • 如果
    字符串
    为非数字,将返回“0”
因此如果您可以在位置
129+(21*I)
处有一个非数字,那么您的VB6将返回一个零,现在您将得到一个空字符串。你可能想处理这件事

Dim输入=0
整数.TryParse(Mid(inputrec3,129+(21*I),1),输入)
Dim结果=$“{input}”
您可能只需要

Mid(inputrec3, 129 + (21 * I), 1) & " "
因为
Mid
已经基于参数返回了一个单字符字符串。如果它已经是一个数字,那么你根本不需要格式化它

但是,请参阅哪个建议,当传递一个单字符字符串时,
Format(string,“0”)
将返回一个带有

  • 如果
    string
    是数字,则返回一位数
  • 如果
    字符串
    为非数字,将返回“0”
因此如果您可以在位置
129+(21*I)
处有一个非数字,那么您的VB6将返回一个零,现在您将得到一个空字符串。你可能想处理这件事

Dim输入=0
整数.TryParse(Mid(inputrec3,129+(21*I),1),输入)
Dim结果=$“{input}”

String.ToString()
没有意义。您是否试图将数字格式化为具有一个数字?看起来您只需要
Mid(inputrec3,129+(21*I),1)和“
,因为您已经从
Mid
返回了一个字符/数字。您能提供一个例子说明inputrec3,129+(21*I)的数据是什么吗?@djv,是的,我正在尝试将一个数字格式化为一个数字。现在让我试试,@djv。我马上回来。@rad\u.您可能需要添加一个
.PadLeft(1,“0”c)
来解释
Mid
函数返回空字符串的情况(可能是
格式(..“0”)
的函数)。
string.ToString()
没有意义。您是否试图将数字格式化为具有一个数字?看起来您只需要
Mid(inputrec3,129+(21*I),1)和“
,因为您已经从
Mid
返回了一个字符/数字。您能提供一个例子说明inputrec3,129+(21*I)的数据是什么吗?@djv,是的,我正在尝试将一个数字格式化为一个数字。现在让我试试,@djv。我马上回来。@rad\u.您可能需要添加一个
.PadLeft(1,“0”c)
来解释
Mid
函数(可能是
格式(..“0”)
的函数)返回空字符串的情况。这正是发生转换时发生的情况。谢谢你的意见。这也会起作用,但由于
Mid
已经为每个参数返回了一位数字,我只是完全删除了所有格式。完全忽略了这一点。这正是转换发生时发生的事情。谢谢你的意见。这也会起作用,但由于
Mid
已经为每个参数返回了一位数字,我只是完全删除了所有格式。完全忽略了这一点。感谢您进一步澄清!我一定会像你描述的那样处理。看来这将是最好的选择,这样数据就不会被误传。我现在正在做一个数据运行,我会让你知道结果。数据运行已经完成。格式的结构应该是这样的。非常感谢你的帮助!感谢您进一步澄清!我一定会像你描述的那样处理。看来这将是最好的选择,这样数据就不会被误传。我在做da