- 博客(107)
- 资源 (12)
- 收藏
- 关注
原创 计算汉字的笔画数
利用free pascal计算汉字的笔画数写了一个简单的单元pascnchar.unit pascnchar;{$mode objfpc}{$H+}interfaceuses fpjson,jsonparser;//获取汉字笔画数function GetCountByStroke(cnchar:utf8string):Byte;implementationconst s:utf8string='{"一":"j","乙":"o","丁":"jg","七":"ju","乃"
2021-03-23 13:45:31
6771
原创 vfb查询excel
visual free basic 通过ado连接excel文件。注意程序的位数和驱动程序的位数要保持一致。#include once "Afx/CADODB/CADODB.inc"DIM pRecordset AS CAdoRecordsetDim r As CVAR = ""Dim f As CAdoFieldDim arr() As CVARDIM Connstr AS CVAR = "Provider=Microsoft.ace.OLEDB.12.0;Extended proper
2020-06-19 19:15:04
741
原创 vfb运行js
利用mshtml在visual free basic里执行js.#include once "Afx/CDispInvoke.inc"DIM pdom AS CDispInvoke = "HTMLFILE"IF pdom.DispPtr = NULL THEN END Else Print "成功运行"DIM oWin AS CDispInvoke = pdom.Invoke("parentWindow")IF oWin.DispPtr THEN oWin.Invoke("exec
2020-06-14 17:16:00
492
原创 VBA如何获取电脑操作系统的时区
#If Win64 Then Private Declare PtrSafe Sub GetTimeZoneInformation Lib "kernel32" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) Private Declare PtrSafe Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)#Else Private Declare Sub G.
2020-06-12 12:30:55
560
1
原创 VBA使用webdriver
整理了下vbexcelhome之前分享的一个vb的webdriver类。看了一下webdriver 是怎么运行的一文。添加了一些东西。先放出来。以后有空或问题再整.附件是用微软的edge chrome作为例子。你可以去类模块里面修改引用谷歌的webdriver.1.下载和浏览器版本号一直一致的webdriver.网站:https://msedgewebdriverstorage.z22.web....
2020-04-18 17:52:14
2750
原创 C#调用chrome edge
1.安装selenium支持包和webdriver.2.最后一个webdriver不知道是不是老版本的edge里用的。安了也不能正常使用。去https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/下载和自己浏览器大版本号一致的webdriver.,可以只用32位的来适应32/64位。也可以到时候在x64程序...
2020-04-15 16:11:00
3978
原创 lazarus中的try except
读取下txt文件试了下用try except来容错file not found错误。发现运行的时候总是报错。program Project1; uses sysutils; const file_name='C:\Users\FanXiaoLei\Desktop\15.txt'; var stextF:textfile; s :string;begin try begin...
2020-04-06 11:45:13
446
原创 LAZARUS遍历文件夹/文件
1.遍历所有文件夹。program getfiles;uses Classes,sysutils;var sPath:string; L:TStringList;procedure getdir(path:string; var List:TStringList);//函数的具体描述var SR:TSearchRec; i:smallint;begin List.A...
2020-04-04 17:17:05
991
原创 Lazarus汉字与16进制互转
我没有修改代码编辑器为本地的代码。默认使用utf-8.所以转换总是要涉及解码。program Project1;uses SysUtils;var i: string; j:integer; k:shortstring; m:smallint;begin //汉字转16进制编码。 i:='一龥'; m:=1; for m:=1 to length(...
2020-04-02 19:00:11
393
原创 lazarus使用com组件
写下lazarus里调用com组件。这个大致和vb6里面的写法差不多。上手挺快。也是只适用于win平台。下面我就写下读取excel相关数据来举个例子。program excel; uses comobj,sysutils,Variants;var xlapp :olevariant; wb:variant; sht:Variant; cell:variant; ...
2020-03-31 17:30:09
1362
原创 Lazarus网抓。
获取网页数据可以使用fpHttpClient。处理html字符串可以使用正则或sax_html。下面简单写下抓页面的代码:program webscarpping;uses fpHttpClient,classes,sax_html,dom_html,dom;var HTMLString,url:string; doc:THTMLDocument; els: TDomNode...
2020-03-31 08:20:39
704
原创 处理API中文乱码的问题
在Lazarus使用API函数MessageBox中,直接使用中文标题和提示会出现乱码。利用PChar+Utf8ToAnsi来转下可以消除乱码。program Project1;uses Windows;begin MessageBox(0,PChar(Utf8ToAnsi('你好')),PChar(Utf8ToAnsi('温馨提示')),MB_OK);end....
2020-03-30 21:10:52
1782
原创 创建后期绑定的comserver
有自动提示的参考https://blog.youkuaiyun.com/qq_24499417/article/details/105079648。后期绑定简单不少。主要设置com的classinterface位autodispatch.也就是接口的后期绑定。另外需要加上progid,基本步骤与上一篇一样的。后期绑定没有自动提示,就不需要用到dll文件和导出类型库。需要在配置文件里添加ComServer=...
2020-03-25 09:53:05
279
原创 excel-dna创建comserver
本文利用excel-dna实现comserver.在excel vba里面调用。我的office是64位的,我只生成64位的comserver.1.建立类库。按照exceldna包。3编写代码。代码比较好理解。前半部分建立一个com互操作的类COMLibrary.后面的部分就是在excel启动和关闭时候的插件自注册自销部分代码。using System;using E...
2020-03-24 20:34:00
972
原创 接口的使用
由于C#类不能多重继承。但现实有许多多重继承的情况。为了避免传统多重继承带来的复杂性问题和满足多重继承的需要,就提出了接口的概念。接口提出了一种规范,让使用接口的程序设计人员要遵守其提出的约定。C#中申明接口时,使用关键字interface。using System;using System.Collections.Generic;using System.Linq;...
2020-03-22 08:14:11
174
原创 抽象类与抽象方法。
抽象类主要用来给派生类共享基类的公共定义。抽象类不能被实例化。他可以包含抽象成员且不能被密封。类中只要有一个方法申明为抽象方法,那么这个类也必须申明为抽象类。从抽象类派生出一个非抽象类时,需要在非抽象类中重写抽象方法。重写抽象方法需要使用override关键字。using System;using System.Collections.Generic;using System.L...
2020-03-21 22:20:11
148
原创 多态
类的多态性是通过在派生类中重写虚方法实现的。在C#中,类的方法默认不是虚拟的。但除了构造函数外,都可以显式申明为虚方法。虚方法的关键字是virtual。注意类中的成员字段和静态方法是不能申明为virtual的,只对类的实例方法和属性有意义。下面从交通工具基类到派生类火车和汽车,衍生出多种不同的形态。即类的多态性。using System;namespace test{ c...
2020-03-21 20:42:28
215
原创 继承
1.C#中只支持单继承而不支持多重继承。即在C#里面一次只允许继承一个类,不能同时继承多个类。如下图:2.子类的可访问性一定要低于或等于父类的可访问性。父类的访问性默认为private,子类的public访问性就高于了父类而出现错误。3.子类重写父类中的方法时候,还要调用父类中原方法的时候,可以使用关键字Base.Base关键字代表父类对象。子类中重写父类中的方法时候,要在方法...
2020-03-21 18:12:17
243
原创 C#执行js
看到一个比较小巧的jint库。dll才244Kb的样子。在c#里面执行js脚本还蛮方便的。1。执行js里的函数。using Jint;using System;namespace RunJs{ class Program { static void Main(string[] args) { Engine e...
2020-03-19 21:13:58
1302
原创 C#获取文件和文件名称
使用System.IO里的Directory类.这是一个静态类,所以不需要new就能直接使用。1.Directory.GetFiles 方法Directory.GetFiles是一个重载的方法。可以直接提供文件夹的路径获取所在目录中文件,返回一个文件全名的字符串数组。2个参数的里面,第二参数可以使用*和?通配符实现模糊匹配查找文件。注意这个参数是不支持正则表达式匹配的方式。三参...
2020-03-19 14:31:31
4555
原创 字符串相关的两点说明
1.null和“”的区别。string s1 = null;string s2 = ""; 虽然都说明是字符串类型,但是前者是空对象,没有指向任何引用地址。调用字符串的方法会出现空引用异常。而后者是一个字长度为0的字符串,分配了内存空间。可以调用字符串的方法。2.StringBuilder和string类的区别。如下图:我们可以看到字符串每次内容发生改变,都会产生...
2020-03-18 11:25:37
180
原创 网抓并将数据写入excel里
看到别人的提问,用C#爬了一页青塔的数据并保存到excel里。获取网页数据用了自带的webclient.处理json数据用了newtonsoft.json.将爬取的数据写入新excel表里用了npio.using Newtonsoft.Json.Linq;using System;using System.Net;using System.Text;using System.Text...
2020-03-16 10:37:55
463
1
原创 freebasic获取目录中所有文件
使用函数GetDIR.其语法如下。Function GetDIR(nPath As CWSTR, lName() As WIN32_FIND_DATAW) As Long获取文件夹下所有文件,包括文件夹 (不包含 . 和 .. 文件夹)nPath 要获取的路径,要带通配符,如: c:\*.*lName() 返回文件名列表,包括文件夹名,从 0 开始 到文件数-1返回文件数,返回0表...
2020-03-13 17:36:40
292
原创 浅谈64位excel里面怎么调用32位的dll/OCX
大家应该遇到过64位office在vba里无法调用32位dll的问题。最近看到别人碰到了类似的问题。我就来啰嗦几句。软公司的官方网站针对这个问题描述如下:在64位的windows系统中,一个64位进程不能加载一个32位dll,同理一个32位进程也不能加载一个64位dll。但是,64位windows支持64位和32位进程(包括本机或跨机)间进程间通信(RPC)。在64位windows中,一个...
2020-03-10 12:27:40
5123
2
原创 power query简单的错误处理
最简单上手的容错可以采用try error otherwise语句。以内容的形式展示错误而不出现黄色的横框错误提示。如下图的例子
2020-03-09 21:27:09
4670
原创 static成员
在C语言中,static关键字具有两层含义。(1)如果是在函数外部使用,则表示的是文件的作用域。只能在本文件中使用。(2)若在函数内部使用static修饰局部变量,则表明该变量永久存在。即使在超出变量作用域后也不会被永久释放。变量第一次被赋值后初始化,其后值保持不变,直到重新赋值。在C++类中,类被赋予了新的意义。用static修饰类成员变量。表示该变量不属于某个具体对象,所有对象共享同一份数...
2020-03-08 08:04:50
141
原创 析构函数
析构函数用于完成类释放前的清理工作,由C++自动调用。同构造函数,析构函数名为类名称前面加上~符号。析构函数没有返回值也没有参数列表。每个类只有一个析构函数。若没有添加析构函数,C++提供默认的析构函数,但什么也不做。例:定义一个字符串,在构造函数里创建动态字符数组,在析构函数里释放字符数组,并根据索引获得某个索引的字符。#include <iostream>using...
2020-03-07 15:54:19
220
原创 构造函数
类不像基本的数据类型,可能包含大量的成员和函数。仅分配一块足够大小的内存是不够的,还需要对类中的成员变量进行集中初始化。构造函数的作用就是完成对类对象的初始化操作。include <iostream>using namespace std;class Rect{public: Rect(int lefttop[], int rightbottom[])...
2020-03-07 11:42:14
113
原创 变量初始化三种语法形式
1.等号赋值int a=10;int b=100;int c=5;2.函数表示法.这时候无需使用等号赋值。只需要将数值写入变量名后面的小括号里即可。int d(1);int e(11);int f(24);3.初始化列表.初始值放在变量名后面的大括号里。如括号里为空,如h的数据类型定义,默认值为0.这种记号由C++11标准引入的。int g{7};i...
2020-03-05 08:34:06
1662
原创 函数模板的应用
利用函数重载可以实现多态性。例如在计算两个数相加时,无论两个整数相加还是实数相加,只需要调用一个函数即可以实现。但是,它需要用户定义两个同名函数。利用函数模板,用户可以涉及一个通用的函数,实现两个整数或者两个实数的相加。例:定义一个模板函数add,实现两个数的相加。#include <iostream>template<class T>T add(T one,T...
2020-03-05 06:46:25
583
原创 freebasic中字典的使用
对国家个数进行计数。#include once "Afx/CDicObj.inc" Dim s As String = "中国/捷恩斯/日本/中国/日本/中国/韩国/中国/韩国/中国/日本/韩国/中国/日本/中国/日本"Dim arr() As String dim U as Integer = Split(s, "/", arr()) 'U为split分割成的数组的成员的个数,ar...
2020-02-26 21:53:18
253
原创 freebasic获取MP3的播放时长
#include once "Afx/CDSAudio.inc" #include once "Afx/CTime64.inc" Dim Audio_class As CDSAudioDim Return_code As HRESULT = Audio_class.Load("E:\KuGou\Beyond - 海阔天空.mp3")if Return_code = S_OK Then ...
2020-02-24 08:22:31
231
原创 freebasic里的Split函数
今天讲一下FB里面的split函数。其语法:Function Split(TEXT as String, DELIMIT as String, RET() as String) as Integer。TEXT为要分割的字符串,DELIMIT为分隔符。第三参数为存放分割后的元素的数组。Split返回的值是ret这个数组的元素数量。下面我们来试试。Dim s As String = "中国/...
2020-02-23 17:15:44
354
原创 freebasic 制作dll并导出函数
记录一下自己使用freebasic来制作标准的dll导出函数来给vb6调用。当然了在vba里也是可以使用的。今天就用fb写一个调用管道的导出函数。我用的ide是 VisualFreebasic.使勇芳大佬在老外的基础上进行打造的。体验效果还不错。自己可以百度去下载,是绿色免费的。言归正传,创建dll操作如下文件--新建,如下图,选择标准dll工程:在建立的dll模板里面deFF_WIN...
2020-02-21 12:33:17
612
原创 字典的简单使用。
对国家个数进行计数。写vba字典写多了,熟悉下c#里面的写法。using System;using System.Collections.Generic;namespace ConsoleApp1{ class Program { static void Main(string[] args) { string ...
2020-02-21 11:45:22
168
原创 VBA判断win操作系统是32位还是64位
利用API函数GetSystemWow64Directory看系统中是否存在SysWow64目录从而得到系统位数。在64位系统中,该函数返回SysWow64目录的路径字符串长度值。在32位系统中返回值为0.代码:#If VBA7 Then Private Declare PtrSafe Function GetSystemWow64Directory Lib "Kernel32....
2019-08-17 18:18:30
2462
原创 c#从嵌入的资源dll文件加载程序集并导出函数
通过AssemblyResolve event实现。然后就可以using直接调用了。GetManifestResourceStream里面加载的资源名称字符串由"项目名.路径文件夹名.dll文件名带扩展名"构成。看资源文件路径就可以得到。static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventA...
2019-07-05 06:23:12
2198
原创 powershell生成二维码
今天说一下powershell利用nuget里面的c#包Qrcoder来生成二维码。下载地址:https://www.nuget.org/packages/QRCoder/。只需要弄出来里面的一个.net dll就行了。其他的垃圾扔了。net core等其他版本的dll.自带的powershell目前应该还没支持这些框架。不过官方好像出了跨平台的powershell 。net core,操作系统比...
2019-04-24 12:23:46
773
原创 powershell批量修改文件名称。
下面的代码能够给桌面“都彭”文件夹下的所有目录文件名称增加都“都彭”两个字。Get-ChildItem -Path F:\Desktop\都彭\ 获取这个目录下的所有文件。增加recurse参数后能够对这个目录进行递归获包含子目录的所有文件名。利用管道传递然后foreach-object进行遍历。为了避免修改文件夹名称,就检验遍历的对象是文件。$_ -is [System.IO.FileIn...
2019-04-20 16:20:48
2517
原创 powershell识别图片验证码
通过powershell+tesseract分别来完成图片预处理和识别验证。如图验证码:add-type -AssemblyName System.DrawingFunction 识别([string]$path){$img = [System.Drawing.Bitmap]::FromFile($path)for($x = 0; $x -lt $img.Width; $x++)...
2019-03-26 21:49:05
866
msedge.zip
2020-04-18
调用c#dll生成二维码.zip
2019-10-25
RegexBuddy4单文件免安装版本
2018-08-17
免注册方式使用vbrichclient5
2018-07-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人