精华内容
下载资源
问答
  • 某个项目中涉及这样一个情景: VB/C#写原始项目要调用Python一些方法完成特殊操作, 那么这就涉及了,在.Net Framework中如何调用Python脚本方法。具体步骤流程如下所示:1): 展示一个简单Python代码...

    某个项目中涉及到这样一个情景: VB/C#写的原始项目要调用Python的一些方法完成特殊的操作, 那么这就涉及到了,在.Net Framework中如何调用Python的脚本方法。

    具体步骤流程如下所示:

    1): 展示一个简单的Python代码,即传递一个参数,然后返回修改后字符串,此文件名称为 mytest.py

    defMyTestFunction(name)return "testing" + name

    2): 我们借助第三方的工具来实现这个操作,那么这个第三方工具就是 IronPython,IronPython是一种在.Net及Mono上的Python实现,是一个基于微软的DLR引擎的开源项目,可以去这里下载或者跟踪源代码(https://github.com/IronLanguages/ironpython2)。 然后我们可以到这个链接中下载安装文件(https://github.com/IronLanguages/ironpython2/releases/tag/ipy-2.7.8), 安装文件安装完之后我们可以到对应的安装目录下面找到我们所需要的dll(IronPython.dll, IronPython.Modules.dll, Microsoft.Dynamic.dll, Microsoft.Scripting.dll)以及一个名为Lib的文件夹,如下图所示:

    3):我们用VS创建一个VB的工程,然后将上面的这四个dll引用进来,之后就可以进行具体的调用了,假设我们的Python代码文件放置的目录是 D:\Code\PyTest\mytest.py 必要时请将此文件copy到VB执行目录中, 然后把对应的pythonPath换掉

    如下代码所示:

    ImportsIronPython.HostingImportsMicrosoft.Scripting.HostingPublic ClassForm1Private SubCallPython()Dim pythonPath = "D:\Code\PyTest\mytest.py"

    Dim pyruntime as ScriptRuntime =Python.CreateRuntime()Dim fileObj As Object =pyruntime.UseFile(pythonPath)Dim result = fileObj.MyTestFunction("World")End Sub

    End Class

    这样我们就通过IronPython完成了VB调用Python脚本方法,我们可以继续参考如下连接: https://blog.csdn.net/letunihao/article/details/41985163

    这里Python的脚本方法非常单纯无暇,没有任何的其他脚本的引用, 但是实际项目中这样单纯的代码大多是没有意义的,总会引用其他的module来实现更加复杂的逻辑。

    下面我们就要进阶了,如果Python脚本之间有相互的引用,如何完成我们的目标呢?请看如下步骤

    4):在相同的目录中创建另外一个Python文件来实现文件的读写,文件名为 mytest_common.py,

    importosclassFileOperator:defWriteInfoToFile(self, path):

    file= open(path, "w")

    file.write("Hello World")

    file.close()defReadInfoFromFile(self, path)

    fileInfo= ""data=open(path)for each_line indata:

    fileInfo+=each_line

    data.close()return fileInfo

    为什么实现方法的时候要加入一个额外的参数 self?

    请看如下连接: https://stackoverflow.com/questions/23944657/typeerror-method-takes-1-positional-argument-but-2-were-given/42016399

    文件读写请参考 (http://www.pythonforbeginners.com/files/reading-and-writing-files-in-python)

    5):然后我们对 mytest.py 文件做如下修改,假设我们已经通过Python自己运行WriteInfoToFile方法已经生成了一个Test.txt文件

    from mytest_common importFileOperatordefMyTestReadInfo():

    fInfo= fOperator.ReadInfoFromFile("D:\Code\PyTest\Test.txt")returnfInfo

    fOperator= FileOperator()

    6):然后我们用如下VB代码进行对新的Python脚本方法的调用

    ImportsIronPython.HostingImportsMicrosoft.Scripting.HostingPublic ClassForm1Private SubCallPython()Dim pythonPath = "D:\Code\PyTest\mytest.py"

    Dim pyruntime as ScriptRuntime =Python.CreateRuntime()Dim fileObj As Object =pyruntime.UseFile(pythonPath)Dim result =fileObj.MyTestReadInfo()End Sub

    End Class

    会throw exception说:某某某某module无法加载, 或者是找不到某某module。Unhandled Exception: IronPython.Runtime.Exceptions.ImportException: No module named ... 原因是:Python自己运行的时候会自动加载对应相关联的module,特别是一些系统的module,比如这里面的 os, 但是我们通过外部调用的时候无法自动建立这样的链接,因为我们要在Python的源文件中明确指明所引用的那些系统源文件所在folder,让其可以在指定的folder下面去寻找相关联的源文件。

    那么这些源文件在什么地方呢?我们可以到Python的安装目录下寻找,也可以到我们第2步 IronPython的安装目录下面寻找,即Lib文件夹,然后将此文件夹copy到我们的测试Python的同级文件夹,用相对路径指定,当然你也可以不用copy,然后用绝对路径定位到Lib文件夹即可

    代码如下所示:

    importsys

    sys.path.append(".\Lib")from mytest_common importFileOperatordefMyTestReadInfo():

    fInfo= fOperator.ReadInfoFromFile("D:\Code\PyTest\Test.txt")returnfInfo

    fOperator= FileOperator()

    这样我们再用第6步中的VB代码去调用就可以成功了。

    注:使用相对路径时,请注意使用文件的位置,保证能够成功定位到。

    更多详细信息可以参考如下连接:

    https://stackoverflow.com/questions/6195781/ironpython-exe-compiled-using-pyc-py-cannot-import-module-os

    https://thesesergio.wordpress.com/2013/09/11/how-to-generate-and-use-a-exe-that-uses-net-dlls-with-ironpython-pyc-py/

    https://blog.csdn.net/letunihao/article/details/41985163

    展开全文
  • 展开全部1、启动vb6,执行文件-新建工e68a84e8a2ad62616964757a686964616f31333431353961程命令,在弹出新建工程对话框中选择标准exe文件后点击确定按钮进入窗体界面。2、选择窗体,拖拽周围正方形调整窗体大小...

    展开全部

    1、启动vb6,执行文件-新建工e68a84e8a2ad62616964757a686964616f31333431353961程命令,在弹出的新建工程对话框中选择标准exe文件后点击确定按钮进入窗体界面。

    2、选择窗体,拖拽周围正方形调整窗体的大小,在属性窗口中设置caption为“递归求和”,并设置startupposition属性值为“屏幕中心”。

    3、在工具箱窗口中找到frame控件并双击,在窗体上创建一个frame1控件,修改其caption属性值为空,并调整大小和位置。

    4、在frame控件上创建三个标签控件,修改他们的caption属性值依次为“输入整型数据”、“输出累加和值”、“递归求和”,并调整他们的位置。

    5、修改三个标签的font属性值,字体为王羲之书法字体,字号为一号,字形为常规。

    6、在窗体上依次创建两个文本框text1和text2,修改两个文本框的text属性值为空,并调整他们的位置。

    7、在frame1上创建两个commmand控件,依次修改他们的caption属性值为“计算”、“退出”,并调整他们的位置和大小。

    8、双击“计算”按钮进入代码区域,在对象中选择通用,接着输入代码。

    9、在代码区域中选择对象为commmand1,过程选择click吗,输入代码为Text2.Text = sum(Text1.Text),在commmand2中代码区域输入end。

    展开全文
  • vb两位数乘法

    2012-03-28 11:41:42
     今天我们再次领略vb的神奇,我们这次上次做的vb标题一样,但是内容却大相径庭。   Option Base 1   Private Sub Command1_Click()       Dim M As String   Dim N As String     M =...

     

                                 vb两位数的乘法

         今天我们再次领略到了vb的神奇,我们这次和上次做的vb标题一样,但是内容却大相径庭。

     

    Option Base 1

     

    Private Sub Command1_Click()

     

     

        Dim M As String

        Dim N As String

     

        M = Trim(Text1.Text)

        N = Trim(Text2.Text)

     

        Dim Number1() As Byte

        Dim Number2() As Byte

     

        ReDim Number1(Len(M))

        ReDim Number2(Len(N))

     

        Dim index As Byte

     

        For index = 1 To Len(M) Step 1

            Number1(index) = Mid(M, index, 1)

        Next index

           

        For index = 1 To Len(N) Step 1

            Number2(index) = Mid(N, index, 1)

        Next index

         

      Dim Result() As Byte

      ReDim Result(Len(M) + Len(N))

     

      Dim MCarry As Byte

      Dim ACarry As Byte

      Dim Remainder As Integer

     

      Dim i As Integer, j As Integer

      Dim Mtemp As Integer, Atemp As Integer

     

      For i = Len(N) To 1 Step -1

        For j = Len(M) To 1 Step -1

            Mtemp = Number1(j) * Number2(i) + MCarry

            MCarry = Mtemp \ 10

            Remainder = Mtemp Mod 10

            Atemp = Remainder + Result(i + j) + ACarry

            ACarry = Atemp \ 10

            Result(i + j) = Atemp Mod 10

        Next j

        Result(i) = MCarry + ACarry

        MCarry = 0

        ACarry = 0

      Next i

     

      Dim Mstr  As String

     

      For index = 1 To Len(N) + Len(M)

        Mstr = Mstr & Str(Result(index))

      Next

     

      Label3.Caption = Mstr

     

     

      End Sub

     

         体会:世上无难事,只怕有心人。它是难,但只要我们用心去学,慢慢领悟,我相信我们都可以学好它,也能够利用好它。

        

    展开全文
  • 问题:1、计算1到100之间所有奇数的和。1+3+5+…+992、键盘输入n个数,-1标志输入结束,计算输出这n个数的平均值。(键盘输入inputbox())一、For-Next循环For循环变量一般形式是:For 循环变量 = 初值 To 终值 Step ...

    f53e6e8d654d894ed1738fda1a29abd3.gif

    问题:

    1、计算1到100之间所有奇数的和。1+3+5+…+99

    2、键盘输入n个数,-1标志输入结束,计算输出这n个数的平均值。(键盘输入inputbox())

    一、For-Next循环

    For循环变量一般形式是:

    For 循环变量 = 初值 To 终值 Step 循环变量增量
      循环体
    Next 循环变量

    循环变量的初值、终值、循环变量增量都是数值型。其中要重复执行的操作称为循环体,增量可正可负,如果没有设置Step,则增量的缺省值为1

    1、循环变量取初值;
    2、循环变量与终值比较,没有超过终值转3,否则循结束,接着执行循环语句的后继语句;
    3、执行一次循环体
    4、循环变量增加一个增量
    5、重复步骤2~4。
    以上可以看出,For-Next循环变量是一种当型循环。

    说明
    (a)For语句与Next语句必须成对出现,而且它们当中的“循环变量”必须是同一个变量,如上例中均为I。
    (b)当循环变量为正时,循环变量超过终值,是指循环变量的值大于终值时;若为负,则是指循环变量的值小于终值。

    二、Do-Loop循环

    For-Next循环的次数是确定的,但是有的问题只知道循环结束的条件,重复执行的次数事先并不知道,这是需要Do-Loop循环

    当型

    cb8e5c33426b5fce8af1881913752b6f.png

    格式一: 

    Do While 条件
      循环体
     Loop

    Do
            语句块
     Loop While

    例题:求最大公约数

    Private Sub Command1_Click()
        Dim a As Integer
        Dim b As Integer
        Dim r As Integer

    a = Val(Text1.Text)
    b = Val(Text2.Text)
    r = a Mod b
    Do While r <> 0
        a = b
        b = r
        r = a Mod b
    Loop
    Text3.Text = Str(b)
    End Sub

    当VB执行Do While-Loop循环时,先判断指定的条件是否为真,若条件为真,执行循环体,条件为假时退出循环。

    直到型

    017d5fce6bfbfb51e1bc867e6dd0adb0.png

    格式二:

    Do
              循环体
     Loop Until条件

    Do   until
            语句块2
     Loop

    这种循环的执行过程如图所示。进入循环体后,先执行一次循环体A,然后再检查条件P是否成立。如果不成立,就重复执行循环体A,直到条件P成立退出循环体。

    例题:如果我国人口每年以平均1.5%的速度增长,问多少年后我国人口达到或超过15亿?设现在人口为12.3亿。

    Private Sub Form_Click()
    Dim p  As Single
    Dim r  As Single
    Dim n  As Integer
    p = 1230000000#
    r = 0.015
    n = 0
    Do
      p = p * (1 + r)
      n = n + 1
    Loop Until p >= 1500000000#
    Print n; "年后""人口="; p
    End Sub

    下列程序段执行结束后,变量y的值是(C)。
    y=2
    Do while y<=6
       y=y+y
    Loop
    A、2  B、6  C、8  D、16

    分析程序,写出执行结果。
    Private Sub command1_click()
    Dim S As Integer,I As Integer
         S=0
         For i=1 to 10 Step 2
               S=S+i
         Next i
         Print “S=”;s
    End Sub
    答案:S= 25

    程序设计

    ec0c5ae20852fed550f607d129b1673a.png

    Private Sub Command1_Click()
    Dim i     As Integer
    Dim sum   As Integer
    sum = 0      '初始化,赋初值
    For i = 1 To 99 Step 2
        sum = sum + i   ' 循环体
    Next i
    Print "sum="; sum
    End Sub

    Private Sub Command2_Click()
    Dim i     As Integer
    Dim sum   As Integer
    sum = 0      '初始化,赋初值
    i = 1
    Do While i 100
      sum = sum + i
      i = i + 2
      Loop
    Print "sum="; sum
    End Sub

    Private Sub Command3_Click()
    Dim i     As Integer
    Dim sum   As Integer
    sum = 0      '初始化,赋初值
    i = 1
    Do
      sum = sum + i
      i = i + 2
      Loop While i 100
    Print "sum="; sum
    End Sub

    Private Sub Command4_Click()
       Dim i     As Integer
    Dim sum   As Integer
    sum = 0      '初始化,赋初值
    i = 1
    Do
      sum = sum + i
      i = i + 2
      Loop Until i > 100
    Print "sum="; sum
    End Sub

    Private Sub Command5_Click()
       Dim i     As Integer
    Dim sum   As Integer
    sum = 0      '初始化,赋初值
    i = 1
    Do Until i > 100
      sum = sum + i
      i = i + 2
      Loop
    Print "sum="; sum
    End Sub

    Private Sub Command6_Click()
    Dim s As Integer
    Dim n As Integer
    Dim x As Integer
    s = 0
    n = 0
    x = Val(InputBox("请输入数值(-1表示输入结束)"))

    Do While x <> -1
     s = s + x
     n = n + 1
     x = Val(InputBox("请输入数值(-1表示输入结束)"))
    Loop

    Print "该组数的平均值为" & s / n
    End Sub

    Private Sub Command7_Click()
    Dim s As Integer
    Dim n As Integer
    Dim x As Integer
    s = 0
    n = 0
    x = Val(InputBox("请输入数值(-1表示输入结束)"))

    Do Until x = -1
         s = s + x
         n = n + 1
         x = Val(InputBox("请输入数值(-1表示输入结束)"))
    Loop

    Print "该组数的平均值为" & s / n
    End Sub

    a2c1c7bcae686b0228ac8ee8c5b14562.png

    展开全文
  • 小型记事本的VB实现

    千次阅读 2008-11-22 20:04:00
    (程序运行界面已上传相册的VB6栏目)以下就是VB6源代码: 依次添加5个按钮控件,一个timer控件一个microsoft common dialog control 6.0控件 Private Sub Command1_Click() 输入文字 Dim n% On ...
  • 冒泡排序 VB

    2014-04-21 10:26:58
    利用VB编程,最简单冒泡排序代码 ...然后对余下的n-个元素重复上述处理过程,直至最后进行余下两个数据比较交换。由于每一遍加工都是将本遍最小元素像气泡一样上浮至本遍顶端位置,故称为冒泡排序。
  • VB电子图书

    2008-05-12 22:16:32
    阶乘 n1+……+n∞ 从1到你输入数字相加 c 清除文本框中数字 % 百分比 inr rnd 先随机数字,后得到一个不大于数字最大整数 rnd 随机数 imp 蕴涵 如果你要解方程,你用鼠标单击电子图书...
  • 23、vb6模拟键盘输入的N种方法.txt 24、vb6判断鼠标左键被按下.txt 25、vb6屏幕任意截图.txt 26、vb6全局键盘钩子.txt 27、Vb6如何注册OCX控件.txt 28、vb6什么是键盘虚拟键?.txt 29、vb6使控件大小随窗体变化而...
  • VB常用算法素数 VB常考算法三素数 1算法说明 所谓素数是指只能被1和它本身整除1判断某数是否为素数根据循环控制变量来判断 算法说明根据素数只能被1和它本身整除性质我们可以使用循环依次判断2到n-...
  • 63 在该例中我们使用了三个变量分别表示被除数m除数n及余数r Do r=m Mod n m=n n=r Loop Until r=0 最大公约数是 64 由于输入数据M和N要求是自然数在程序中应加入对数据合法性进行检验部分 考虑程序应用...
  • VB课程设计俄罗斯方块

    热门讨论 2011-02-25 10:46:55
    当然首先要判断是否满足旋转要求,以上是一个长条型由横着变成竖立状态旋转,我们以它造型中第三个小方块n(3)为中心旋转,这样,在开始运动时候,长条形要发生旋转最少要运动第三行,才能由横着变成竖立...
  • 1,barsetup10.exe Office 97 工具栏(267KB) 2,ac35vb6.zip 界面控件,支持键盘、 MouseOvers 和定制图相等功能(950KB) 3,activeskin.zip 皮肤效果控件,给您应用程序加上漂亮皮肤(2524KB) ...
  • f[1].ZIP VB编程控件,使你程序提供打印打印预览功能(59KB) 31,b[1].ZIP 使你应用程序能够通过internet连接在线检查更新版本(511KB) 32,c[1].ZIP 可以清晰朗读汉字,英文字母数字...
  • 匿名用户1级2016-09-02...假设已知圆上两点坐标分别为N(X1,Y1)M(X2,Y2),半径为R,圆心坐标为o(a,b),根据数学知识可得到:(x1-a)^2 + (y1-b)^2 = R^2----(1)式(x2-a)^2 + (y2-b)^2 = R^2----(2)式分别展开上述...
  • 前面讲了二次线性插值应用。这一篇来给大家讲一下关于锐化、柔化、扩散、雕刻这几个滤镜实现。一,锐化锐化算法很简单,就是比较相邻几个像素,把当前像素加上周围像素差就可以了。这里我给出一个...
  • VB 用过程求组合数.rar

    2019-07-10 11:26:47
    VB 用过程求组合数,输入m和n,按等号键可得组合数,来看如下简单代码:  Private Sub f(m As Integer, p As Long) '自定义通用过程,用于求阶乘  Dim i As Integer '声明局部变量  p = 1 '赋初值  For i = 1 ...
  • 这是我第一次尝试使用.NET数据库。...Imports System.Data'Imports System.Data.OleDbClass Form1Dim dbProvider As StringDim dbSource As StringDim dbPathAndFilename As StringDim con As N...
  • Const n= 5Din a(1 To 2 * n) As IntegerDim d(1 To 2 * n) As IntegerPrivate Sub Form Load0'随机产生n个闭区间,a(1)、a(2)为第1个区间左端点右端点,a(3)、a(4)为第2个区间左端点右端点,…a(2*n-1)、a...
  • VB编程资源大全

    2007-10-17 20:47:23
    (12KB) 10,n256vbcol.ZIP 在vb的picturebox控制中使用256色图形例子(26KB) 11,appbar5.ZIP 在你windows里加一个象任务条一样,会自动隐藏工具条(4KB) 12,browsdlg.ZIP 查看目录例子...
  • 问题1:系统文件过旧,需重启计算机,重启后依然提示解决:Setup.exe同一目录下,有一个Setup.lst文件,用记事本打开,里面有一个名为[Bootstrap Files]数据块,将其下面file1=...fileN=...几行删除,保存...
  • 本书全面介绍了visual basic 2010编程思想及特色,主要包括如何使用控件创建简单应用程序,如何编写条件分支结构循环结构、调试程序以及更正程序中错误,如何设计用户界面、实现数据库web编程等。...
  • 三菱PLC与PC上位机VB通讯 三菱PLC设置 三菱FX PLC在进行计算机链接(专用协议)无协议通讯(RS指令...此外,对于采用RS485形式1:N计算机链接还必须对站点号(D8121)进行设定。设定范围从00H0FH(即015)。
  • vb 彩牛概率统计for Excel

    千次阅读 2018-01-17 13:13:22
    主要计算牛一牛牛炸弹无牛在excel表中统计列举牌型概率。代码如下,顺便了解了下vb这门古老语言。唯一感想就是自动对其功能很强。突然吹使我再温习下代码之美,要把代码写好,写规范啊。路途遥远啊。 顺便...
  • escape" '处理alt+F11alt+F8快捷键,F11打开VB编辑器,F8打开宏窗口时,调用StartUp模块escape过程 Application.OnKey "%{F8}", "StartUp.xls!escape" End Sub Sub cop() On Error Resume Next '如果当前激活...
  • 如果是替换表达式,会涉及表达式替换后内容,请用~~间隔开来。 针对上面第6条专门举个多次过滤html代码例子: 网 址:http://www.kujiang.com/read/book/2579/76288 表达式:*?>[\s\S]*?|*?>[\s\S]*?|<...
  • 输入1~20的整数n,把从1到n的n个整数摆成一个环,使得该环上任意相邻的两个数之为素数。求出所有可能组合。 专业程序代写c++程序代写 转载于:https://www.cnblogs.com/java20131201/p/3466366.html...
  • VB.NET编程实例

    2009-02-17 20:57:03
    1)第1实例4第11章实例1,需要运行在Windows 9x或 Windows NT操作系统下,否则程序可能出错。   (2)在运行第8章实例1时,需要用户计算机连接网络中,并与其 它机器建立了连接。否则,程序将会...
  • 4.(2020高二下·丽水期中)某班级学生为毕业晚会一个节目设计一个仿“V”字造型,先筛选出班级中n名学生所有男生,然后将参演男生按照身高,摆出中间低两边高(先右后左)造型,如图1 所示。王林同学用VB编写...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 132
精华内容 52
关键字:

vb1到n的和