使一个字符在VB6上只出现一次

发布于 2024-12-29 08:29:12 字数 470 浏览 0 评论 0原文

我正在 VB6 上创建一个简单的计算器。

这是我正在处理的代码:

    textScreen.Text = textScreen.Text & "+"

这是我按下一些数字按钮,然后单击 多次加号按钮

    75+++++++

我希望加号仅出现一次,即使我点击 它的按钮很多次:

    92+

...当我再次单击一些数字按钮,然后单击 在加号按钮上,我希望加号再次显示:

    58+4+

这在某种程度上类似于 Windows 7 上的默认计算器。

I'm creating a simple calculator on VB6.

Here's my code I'm working on:

    textScreen.Text = textScreen.Text & "+"

Here's the result when I press some number buttons, followed by clicking on
the plus sign button several times:

    75+++++++

I would like the plus sign to appear only once, even if I click on
its button many times:

    92+

...and when I click on some number buttons again, followed by clicking
on the plus sign button, I would like the plus sign to show up again:

    58+4+

This is somehow similar to the default Calculator on Windows 7.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半葬歌 2025-01-05 08:29:12

嗯,对此有不同的方法。但一般来说,我不会只是连接一些字符串。这样,您稍后必须解析该字符串,而不仅仅是解决所请求的术语。相反,尝试创建一些堆栈,其中包含您的操作/数字;只需在网上查找计算器示例即可。


无论如何,为此,您必须以某种方式存储最后一次操作(例如,我输入了数字还是运算符?)

如果您想将计算器限制为不带括号等的简单操作,您可以使用布尔值这样:

Dim lastOp As Boolean

然后,在添加 + (或任何其他运算符)之前:

If Not lastOp Then
    textScreen.Text = textScreen.Text & "+"
    lastOp = true
End If

添加任何数字时(例如):(

lastOp = false
textScreen.Text = textScreen.Text & "0"

不要指望 100% 无错误代码,我想我还没有接触过 VB6大约8年了。)

Well, there are different approaches for this. But in general, I wouldn't just concatenate some string. This way you'll have to parse the string later on, instead of just solving the requested term. Instead try to create some stack with your operations/numbers on it; just look on the web for calculator examples.


Anyway, for this, you'll have to somehow store the last operation (e.g. did I input a digit or an operator?)

If you'd like to limit the calculator to simple operations without brackets etc. you can use a boolean value for this:

Dim lastOp As Boolean

Then, before adding the + (or any other operator):

If Not lastOp Then
    textScreen.Text = textScreen.Text & "+"
    lastOp = true
End If

When adding any digit (e.g.):

lastOp = false
textScreen.Text = textScreen.Text & "0"

(Don't count on 100% error free code, I think I haven't touched VB6 for like 8 years.)

地狱即天堂 2025-01-05 08:29:12

您可能只需检查文本中的最后一个字符是否为“+”:

    If Mid(textScreen.Text, Len(textScreen.Text), 1) <> "+" Then
    textScreen.Text = textScreen.Text & "+"
    End If

You mighty just check if the last character in the text was "+" :

    If Mid(textScreen.Text, Len(textScreen.Text), 1) <> "+" Then
    textScreen.Text = textScreen.Text & "+"
    End If
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文