精华内容
下载资源
问答
  • 内容索引:VB源码,字符措置惩罚,ASCII,字符转换任意字符的ASCII码转换工具,鉴于VB6的源代码,能够把任意字符(数字、字母、汉字)转化成ascii码,也能够把ascii码还原成最初的字符。转化后的的结果(注:每一个字符之间...

    内容索引:VB源码,字符措置惩罚,ASCII,字符转换

    任意字符的ASCII码转换工具,鉴于VB6的源代码,能够把任意字符(数字、字母、汉字)转化成ascii码,也能够把ascii码还原成最初的字符。转化后的的结果(注:每一个字符之间用“/”间离隔)。

    运用说明:一共三个大文本框,你也能够在第二个文本框输入ASCII码,点击还原后会还原回原来的内容,注意填写格式:/1/2/3/4

    原理:举个例子,用asc("你")把“你”转化成ASCII码的值为:-15133 , 用chr("-15133")把ASCII码值还原成“你”

    Mid("hello", 5, 1),这个意思是:取hello中的值,5代表从第五个起头取,1代表取的值的长度。

    任意字符的ASCII码转换工具,鉴于VB6的源代码 (1 folders, 0 files, 0 bytes, 11.94 KB in total.)

     hur.cn (1 folders, 0 files, 0 bytes, 11.94 KB in total.)

     ASCII转换 (0 folders, 6 files, 11.94 KB, 11.94 KB in total.)

    ASCIIICO.ico 3.19 KB

    Form1.frm 4.64 KB

    Form1.frx 3.20 KB

    MSSCCPRJ.SCC 190 bytes

    工程1.vbp 703 bytes

    工程1.vbw 49 bytes

    展开全文
  • VB6处理UTF8字符串问题

    2014-11-27 21:45:55
    我想把一个字符串写入XML文件,默认编码是UTF-8格式的,当字符串中有斜杠"/"与中文字符紧挨出现的时候,存储的文件这个地方就是乱码。比如写入“测/试/行",就显示乱码,写入“/测试行/”则显示"/测试衿",写入纯...
  • '定义一个函数,把业务状况表的数据加载到字典里 Public Function AddDictionary(OriginalDictionary)  Dim Path, CurrentWorkBook, ... Dim str1, str2, str3, str4, str5, str6  Dim n  n = 10  ...

    '定义一个函数,把业务状况表的数据加载到字典里
    Public Function AddDictionary(OriginalDictionary)
        Dim Path, CurrentWorkBook, CurrentWorkSheet, CurrentName
        Dim str1, str2, str3, str4, str5, str6
        Dim n
        n = 10
        '打开名称里含有业务状况表的表格
        Path = ThisWorkbook.Path & "\*业务状况表*"
        'Dir函数返回路径下的文件名称,再次调用自动查找下一个符合条件的文件
        CurrentName = Dir(Path)
        Set CurrentWorkBook = Workbooks.Open(ThisWorkbook.Path & "\" & CurrentName)
        Set CurrentWorkSheet = CurrentWorkBook.Worksheets(1)
        'VB字典的定义和应用!
        Set OriginalDictionary = CreateObject("Scripting.Dictionary")
        While CurrentWorkSheet.Cells(n, 1) <> ""
            str1 = "BD" & CurrentWorkSheet.Cells(n, 1)
            str2 = "BC" & CurrentWorkSheet.Cells(n, 1)
            str3 = "MD" & CurrentWorkSheet.Cells(n, 1)
            str4 = "MC" & CurrentWorkSheet.Cells(n, 1)
            str5 = "ED" & CurrentWorkSheet.Cells(n, 1)
            str6 = "EC" & CurrentWorkSheet.Cells(n, 1)
            OriginalDictionary.Add str1, CurrentWorkSheet.Cells(n, 3).Value
            OriginalDictionary.Add str2, CurrentWorkSheet.Cells(n, 4).Value
            OriginalDictionary.Add str3, CurrentWorkSheet.Cells(n, 5).Value
            OriginalDictionary.Add str4, CurrentWorkSheet.Cells(n, 6).Value
            OriginalDictionary.Add str5, CurrentWorkSheet.Cells(n, 7).Value
            OriginalDictionary.Add str6, CurrentWorkSheet.Cells(n, 8).Value
            n = n + 1
        Wend
        '关闭业务状况表
        CurrentWorkBook.Close
    End Function
    '定义一个函数,将基础项目定义的公式依逗号拆分
    Public Function SplitString(m, l, CurrentWorkBook, ModelWorkSheet, CurrentWorkSheet, Dictionary, ThisWorkbook)
        Dim a, b, c, d, SumNumber, SubNumber
        Dim Crr, x, y, h, k 'h表示行次所在的列,k表示基础定义所在的列
        a = 1
        x = 1
        y = m
        SumNumber = 0
        SubNumber = 0
        '找出行次和基础定义所在的列
        Do While x < 12
        If Trim(ModelWorkSheet.Cells(l, x)) = "行次" Then
        h = x
        End If
        '基础项目定义的列开始!!!!!!!!!!!!!!!!!!
        If Trim(ModelWorkSheet.Cells(l, x)) = "基础项目定义" Then
        k = x
        Do While ModelWorkSheet.Cells(m, h) <> ""
        'k的值小于6和大于6从报表取值的列是不同的,因为加了基础项目定义的列
        If k < 6 Then
        ModelWorkSheet.Cells(m, k + 1) = CurrentWorkSheet.Cells(m, k + 1)
        Else
        ModelWorkSheet.Cells(m, k + 1) = CurrentWorkSheet.Cells(m, k)
        End If
        '基础定义的项拆分开始!
        If Left(ModelWorkSheet.Cells(m, k), 2) = "ED" Or Left(ModelWorkSheet.Cells(m, k), 2) = "EC" Then
        '把基础项目定义公式依据逗号拆分成一个一个的数组
        Crr = Split(ModelWorkSheet.Cells(m, k), ",")
        '对于每一个数组进行分析:+的部分放在SumNumber里,-的部分放在SubNumber里
        For i = 0 To UBound(Crr)
        '首先分析+的部分,a表示一个科目号码开始的位置(默认1),b表示结束的位置
        Do
        'INstr函数找出字符出现的第一个位置
        b = InStr(a, Crr(i), "+")
        If b = 0 Then
            If 0 = InStr(Crr(i), "-") Then
                b = Len(Crr(i)) + 1
                Else
                b = InStr(Crr(i), "-")
            End If
            SumNumber = Dictionary.Item(Mid(Crr(i), a, b - a)) + SumNumber
            Exit Do
            Else
            SumNumber = Dictionary.Item(Mid(Crr(i), a, b - a)) + SumNumber
            a = b + 1
         End If
         Loop While b <> 0
         '然后分析-的部分,a表示一个科目号码开始的位置,d表示结束的位置
        If InStr(Crr(i), "-") <> 0 Then
         c = InStr(Crr(i), "-") + 1
        Do
         d = InStr(c, Crr(i), "-")
         If d = 0 Then
            d = Len(Crr(i)) + 1
            SubNumber = SubNumber + Dictionary.Item(Mid(Crr(i), c, d - c))
            Exit Do
            Else
            SubNumber = SubNumber + Dictionary.Item(Mid(Crr(i), c, d - c))
            c = d + 1
         End If
        Loop While d <> 0
        End If
        '判断是否是第一个数组,第一个数组直接SumNumber - SubNumber,后面的数组需要判断扎差
        If i = 0 Then
        If Trim(ModelWorkSheet.Cells(m, 1)) = "存放同业款项" Or Trim(ModelWorkSheet.Cells(m, 6)) = "同业及其他金融机构存放款项" Then
        ModelWorkSheet.Cells(m, k + 2) = ModelWorkSheet.Cells(m, k + 2) + SumNumber - SubNumber
        ModelWorkSheet.Cells(m, k + 2) = ModelWorkSheet.Cells(m, k + 2) - ThisWorkbook.Worksheets("报表检核页").Cells(11, 13)
        Else
        ModelWorkSheet.Cells(m, k + 2) = ModelWorkSheet.Cells(m, k + 2) + SumNumber - SubNumber
        End If
        Else
        If SumNumber > SubNumber Then
        ModelWorkSheet.Cells(m, k + 2) = ModelWorkSheet.Cells(m, k + 2) + SumNumber - SubNumber
        End If
        End If
        '每一个数组分析完毕后都需要把a 、SumNumber、SubNumber重新赋值
        a = 1
        SumNumber = 0
        SubNumber = 0
        Next
        '基础定义的项拆分完毕!
        '计算公式的项赋值开始!
        Else
        If ModelWorkSheet.Cells(m, k) <> "" Then
        ModelWorkSheet.Cells(m, k + 2).Formula = "=" & ModelWorkSheet.Cells(m, k)
        End If
        '计算公式的项赋值完毕!
        End If
        '判断报表值和计算的结果是否相等,不相等则标记颜色区分
        If Round(Val(ModelWorkSheet.Cells(m, k + 1)), 2) <> Round(Val(ModelWorkSheet.Cells(m, k + 2)), 2) Then
        ModelWorkSheet.Cells(m, k + 1).Interior.ColorIndex = 3
        ModelWorkSheet.Cells(m, k + 2).Interior.ColorIndex = 3
        End If
        m = m + 1
        Loop
        'm的循环结束后需要把m重新赋值!
        m = y
        End If
        '基础项目定义的列结束!!!!!!!!!!!!!!!!!!
        x = x + 1
        Loop
        CurrentWorkBook.Close
    End Function

    展开全文
  • 将这个字符串1,0.378,"BV ",0.0054,37.075,106.891,0.755中的数字和字符串提取出来。 直接代码 Private Sub Form_Click() Dim s() As String Dim t() As String a = Text1.Text Print a b = Left(a, 7) c = Mid(a, 9...

    将这个字符串1,0.378,"BV ",0.0054,37.075,106.891,0.755中的数字和字符串提取出来。

    直接代码

    Private Sub Form_Click()
    Dim s() As String
    Dim t() As String
    a = Text1.Text
    Print a
    b = Left(a, 7)
    c = Mid(a, 9, 6)
    d = Right(a, 27)
    Print b
    Print c
    Print d
    s = Split(b, ",")
    t = Split(d, ",")
    For i = 0 To 1
        Print s(i)
    Next i
    For i = 0 To 3
        Print t(i)
    Next i
    End Sub
    
    展开全文
  • 由来 InnoSetup有一个重要功能就是调用外部DLL,它本身是...思路是这样的:VB6用Byref传送字符串,Delphi用Var p1: Pchar,接收字符串,在DLL中处理字符串,然后通过 Var p2: Pchar,返回给VB6; 要注意一是DLL接收了

    由来

    InnoSetup有一个重要功能就是调用外部DLL,它本身是用Delphi写的,带的Script也基本上类同Delphi,因此,挂Delphi DLL比较好,只是自带的Sample太过简单。传值返值一般的计算功能调用还是比较简单,但传递字符串还是很不同。网上转了转,五花八门说啥的都有,我的解题可能不太一样。思路是这样的:VB6用Byref传送字符串,Delphi用Var p1: Pchar,接收字符串,在DLL中处理字符串,然后通过 Var p2: Pchar,返回给VB6; 要注意一是DLL接收了不要改变原来的内存地址或指针,即便在DLL做了很多处理,最后返时也只能是将处理过的内容考贝到原来的地址。二是本地处理后要有一块连续的内存将处理过的字符串放进去,再考贝给p2,于是呢,程序就写成下面的样子:

    处理

    Delphi程序DLL

    Function BackString(var p1: PAnsichar; var p2: PAnsichar): Integer; stdcall;
      var
        s: string;
        p: Pchar;
    begin
      s := 'abcdefg' + strPas(p1);
      p := StrAlloc(255);
      StrPcopy(p, s);
      strPCopy(p2, p);
      StrDispose(p);
      BackString :=0;
    end;

     

    VB6程序调用DLL

    Declare Function BackString Lib "G:\MyDelphi2010\InstaDll\InstaDll.Dll" (ByRef a1 As String, ByRef a2 As String) As Long

    ......

    Private Sub Command1_Click()
        S1$ = "123456789012345678901234567890"
        S2$ = String$(255, "a")
        List1.Clear
        r = BackString(S1$, S2$)
        List1.AddItem (CStr(1) + " " + Trim(S2$))
    End Sub

    注:VB6 做个FORM,上面放一个Command Button,再放一个ListBOx

     

    结尾

    在编程环境下运行,会在ListBox1上看到返回字符串 abcdefg1234567........,其中abcdefg是DLL加上去的、1234567......是VB6送给它的。字符串操作是借助于内存完成的,不管它怎么变,最后把整块内存的东西返回去就是了,否则很容易引发怪毛病,毕竟是在不同的开发环境约定下交互操作。

     

    补充

    如果VB6送整数和字符串,Delphi DLL可写为:

    Function BackString1(intParam1: Integer; var p2: PAnsichar): Integer; stdcall;
      var
        s: string;
        p: Pchar;
    begin
      s := 'abcdefg ' + IntToStr(intParam1) + ' abcdefg';
      p := StrAlloc(255);
      StrPcopy(p, s);
      strPCopy(p2, p);
      StrDispose(p);
      BackString1 :=0;
    end;

     

    VB6相应的写为

    Declare Function BackString1 Lib "G:\MyDelphi2010\InstaDll\InstaDll.Dll" (ByVal a1 As Long, ByRef a2 As String) As Long

    Delphi的Integer型在VB6里用Long型,用错了返回值由于溢出而成负数、返非所欲的。

     

    CSDN用的不熟,加了粗体H3标记,嗯,挺好。还有图像、图表、公式挺多功能的,以后慢慢的努力丰富博文内容和表现形式。

    展开全文
  • 1,strs.zip 实现字节数组, 同c中的字符数组一样好用(6KB) 2,modules.zip 字符串处理的12个例子(13KB) 3,strings.zip 字符串处理函数(4KB) 4,stringfuncs.zip 字符串处理函数(9KB) 5,search&...
  • 1,strs.zip 实现字节数组, 同c中的字符数组一样好用(6KB)<END><br>2,modules.zip 字符串处理的12个例子(13KB)<END><br>3,strings.zip 字符串处理函数(4KB)<END><br>4,stringfuncs.zip 字符串处理函数(9...
  • 本示例为云消费机的源码示例,消费机使用UDP通讯协议,刷卡后设备将卡号、消费金额即时发送到服务器,服务器处理完后返发...此示例使用VB6开发,涉及winsock控件的使用、UDP协议的使用、微信支付、支付宝支付的使用。
  • VB串口通信源码210个

    千次下载 热门讨论 2013-10-15 11:32:27
    006、VB6的串口通信程序,还有crc校验 007、VB Modbus RTU源码,其中协议部分已生成DLL,可直接调用 008、VB.net开发的串口调试程序 009、VB.net实现串口编程,希望大家有用 010、VB版串口调试程序,包含VB源码及安装...
  • 在DOS时代,拥有一个华丽的汉字... 但是在许多工程控制和字符串处理的环境中,汉字字符的处理仍然有别于西文字符的处理,需要加以专门的考虑。 一、VB6对汉字处理的支持 对汉字处理,VB6主要是提供了一些输入法设...
  • 一个完全利用VB函数、Timer控件和Image控件而不利用任何其它控件实现的Gif动态图形显示的程序。由于这个程序对Gif文件数据是使用字符串方式来处理的,所以可能会有错误。哪位如果干兴趣的可以把它改一下。(6KB)
  • 字符串变量赋值时存储地址的变化

    千次阅读 2018-05-28 22:57:18
    VB6中,我们并不关心字符串的存储问题,因为系统已经为我们处理好了这个问题。先看看下面的代码:Option Explicit Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ...
  • VB6:用instr,母在前,子串在后,返回值以1开始 javascript:用indexOf,母在前(做为对象),子串在后(做为参数),返回值以0开始 MSSQL:用charindex,子串在前,母在后,返回值以1开始 ORACLE:用...
  •  VB6 编写程序时,经常遇到文件名中含有Unicode字符的文件名,常规的Name语句,Open语句,甚至Windows 中API函数都无法处理这里的文件名,因为这些文件在VB String字符串中变成了?,而问句是无法处理的,找了很多...
  • 发送的是json格式字符串,接收到服务器返回的json字符串处理VB6太老了,怎样处理json,是否有现成的第三方库呢?经过一番探索,找到了VBJSON这个库。 使用过程如下: 1. 下载VBJSON:...
  • 对一般VBA开发群体来说,处理json、xml结构的数据源,在VB6的世界里,是一件非常不容易的事情,隐约记得当年自己从哪里找到了一个使用字典实现的json解释的函数,实在非常稀有。 在.Net的世界里,这些却变得如此简单...
  • VB的Split()函数返回空格“ ”的处理方式 例如,字符串mArray 中分布着不均匀的空格“ ”,调用Split()函数返回的array<string>中,存在非期望的 ""元素。 mArray = "1,2, ,4, ,6,7, 8., 9 , 10, " 处理思路...
  • VB6宏插件 1.3 Rev 63

    2010-09-18 18:42:09
    其实如果不用这个插件,而是直接使用VB自带的插件向导也可以实现这个功能,只是比较麻烦: 比如您在开发过程中,需要对工程中的所有窗体进行某种统计(比如名称包含特定字符串的按钮的个数,位置,所在组件等信息) ...
  • 对一般VBA开发群体来说,处理json、xml结构的数据源,在VB6的世界里,是一件非常不容易的事情,隐约记得当年自己从哪里找到了一个使用字典实现的json解释的函数,实在非常稀有。在.Net的世界里,这些却变得如此简单...
  • 前言:下面记录整理了VB中经常使用用于数据转换的工具函数。 1. 数值处理 1.1 取不大于n的最大整数...  将数值或者数值类型字符串强制转换为长整型数据用CLng,其中: 在处理小数部分时候,采用四舍五入法。但若小
  • 正则表达式测试工具 for vb6

    万次阅读 2011-01-15 13:41:00
    正则表达式测试工具,当然也可以做为一般数据处理工具。 ...接着就在下面输入正则表达式,点击下面按钮处理检索结果。...完全匹配:测试字符串是否和内容匹配,返回True或者False 检索结果:对表达式开始处理,输
  • 为了避免安装路径的差异问题,修改了make.bat,从注册表中提取VB6的路径 将热键设定及响应的功能提取到一个单独的HotkeyControl?项目中 引用新HotkeyControl?控件,并在本地添加一个代理类HotkeyProxy? 补充了类注释...
  • VB_JSON.zip

    2020-05-08 20:02:33
    JSON是一种有用且紧凑的格式,用于在基于浏览器的JavaScript客户端程序与基于VB6的数据服务器之间进行数据交换,以及用于在文本字段中存储结构化的元数据。它也可以用作有效的RPC传输协议,并且可以使用GZip很好地...
  • 基于VB6自主研发的轻量级数据库查询客户端工具,启动速度较快,所占资源较小。 附源码,对初学数据库编程的童鞋有所裨益! 1、支持SQLServer、Oracle、Sybase、DB2数据库平台 2、单句执行:可以提交单一的SQL语句...
  • vb/vb.net开发精粹(3)

    2011-10-07 14:12:23
    请教VB6.0+数据库的问题!...这两个字符串 为什么无法链接到一起???? 去掉一位数组中包含的另一个数组的值 串口接受的数据如何处理?????????????? VB6 CELL控件的问题,CELL的
  • VB常用代码

    千次阅读 2008-01-11 08:23:00
    用Mid$命令超速字符串添加操作大家都知道,&操作符的执行速度是相当慢的,特别是处理字符串时。当必须重复地在同一变量上附加字符时,有一个基于Mid$命令的技巧可以使用。基本思路就是:预留一个足够长的空间存放...
  • VB.NET初学者用例

    2008-05-28 18:20:17
    2. 字符串处理 4. 注册表访问 5. 程序调用技术 6. 文件访问 编程语句的规范编写,模块,类,过程,函数的创建与使用. 原文件有详细注释 确实是入门VB.NET语言的一个好东实例. 程序很小,但包含了很多东西,虽然都只是了解...
  • VB 超强的API浏览器,带源码。  在VB.net、C#中, 使用 DllImport 属性调用 ...请自行计算出数组大小或用代码处理定长字符串的方式进行改写。  VB.net与C#中的类型(结构体)如果有数组那么这个类型不能声明为类。
  • VB案例:编码解码

    2018-02-28 17:21:51
    6字符串处理 7、循环结构 三、工程结构 四、编码解码窗体 1、界面设计 2、事件处理代码 一、运行效果 可以打开文本文件,也可以直接粘贴文本: 单击5次【编码】按钮: 此时,单击5次【解码】按钮...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 173
精华内容 69
关键字:

vb6字符串处理