训民正音

距今570年前的15世纪朝鲜人民创制了独有的民族文字——训民正音。

朝鲜民族从三国时期使用吏读文字,1444年1月(阴历1443年12月)创制了最发达的文字训民正音。

顾名思义,训民正音这个名称意味着教育老百姓的正话,即把教老百姓正话的优秀文字,改称为“正音”或“谚文”。

所谓“正音”意味着它反映朝鲜文字的优秀特点,“谚文”意味着它是广大的平民所用的文字。

《世宗实录》(1454年编撰)25年12月条中写道:“本月国王亲自制造谚文28个字……这叫训民正音。”《训民正音解例》(1446年)中郑麟趾(1396-1478)的文章里也有记录:“癸亥冬我们国王制造正音28个字。”其中,癸亥冬是阴历1443年12月。

在当时的国王世宗(1419-1450在位)的亲自主持下,郑麟趾、崔沆、朴彭年、申叔舟、成三问、姜希颜等人一起集中智慧创制了训民正音。

训民正音是继承古代的朝鲜文字神志文字而作的。起初有28个基本字和把基本字合用或在基本字上加符号来用的合用字。

训民正音是最发达的文字,具有多种特点。

一是它属于文字中最发达的类型即出气文字(字母文字)。从文字发展的角度看,出气文字是一种发达的文字,尤其最适合于记录音节丰富,子音和母音丰富而协调的朝鲜话。因而这种文字能够很好地记录朝鲜话丰富的语音不消说,还能记录几乎所有国家的语音。

二是基本上把音韵体系和文字体系相对应,能够记录曾存在过的一切语音。因为这个文字是深入研究朝鲜话的音韵和音韵体系而作的,就能够用基本字表达几乎所有单独音韵,还能够用基本字记录正在消失或形成的语音。

三是它的制造原理很独特,即模仿发音器官的模样而作的。先模仿着舌、唇、齿、喉等发音器官制造基础文字,再以此为基础根据语音的特点加上笔画或把两三个字合并,来系统地制造其余所有的文字。

四是它既易学又方便。因为基本字有28个,数量小,笔画简单,而且有系统地互相联系着。根据语音的特点,能够从原理上容易理解每个文字。

训民正音为朝鲜民族的语言生活和历史发展做出了巨大贡献。

设置窗体透明

‘如下两个窗体均为透明,即,可以看到其后的屏幕。

Option Explicit

‘Example
‘Call Translucent(Me.hwnd)’设置当前窗体半透明
‘Translucent oAutoCAD.hwnd’设置已绑定的 AutoCAD 半透明

Private Declare Function GetWindowLong Lib “user32.dll” Alias “GetWindowLongA” (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib “user32” Alias “SetWindowLongA” (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib “user32” (ByVal hwnd As Long, ByVal CrKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE As Long = -20
Private Const LWA_ALPHA = &H2
Private Const LWA_COLORKEY = &H1

‘hWnd是透明窗体的句柄
‘crKey为掩码的颜色,可以用RGB(r,g,b)来指定
‘bAlpha是不透明度,取值范围是(0,255),其中0代表全透明,255代表不透明
‘dwFlags是透明方式,三种取值方式:
‘LWA_ALPHA时,crKey参数无效,bAlpha参数有效
‘LWA_COLORKEY时,颜色为crKey的地方变为透明,bAlpha参数无效
‘LWA_ALPHA Or LWA_COLORKEY时,crKey的地方将变为全透明,其它地方根据bAlpha参数确定透明度
Public Sub Translucent(ByVal hwnd As Long)
On Error Resume Next
SetWindowLong hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
SetLayeredWindowAttributes hwnd, RGB(255, 255, 255), 128, LWA_ALPHA
On Error GoTo 0
End Sub

Public Sub NoTranslucent(ByVal hwnd As Long)
On Error Resume Next
SetWindowLong hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
SetLayeredWindowAttributes hwnd, RGB(255, 255, 255), 255, LWA_ALPHA
On Error GoTo 0
End Sub

信用卡识别

以“4”开头的16位信用卡为VISA卡;

以“5”开头的16位信用卡为万事达卡;

以“34”或“37”开头的15位信用卡为美国运通卡;

以“30”、“36”、“38”或“39”开头的14位信用卡为大莱卡;

以“35”开头约16位信用卡为JCB卡;

以“6”开头的几乎都是银联卡;

以“62”、“60”开头是可以在国外使用的银联卡。

为菜单设置图片

Option Explicit
Private Declare Function GetMenu Lib “user32” (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib “user32” (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function GetMenuItemID Lib “user32” (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function ModifyMenu Lib “user32” Alias “ModifyMenuA” (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As String) As Long
Private Declare Function SetMenuItemBitmaps Lib “user32” (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long
Private Declare Function GetMenuCheckMarkDimensions Lib “user32” () As Long

‘Example:
‘为当前窗体的第 2 组菜单的第 2 项菜单设置 imgMenu(0) 中的图片
‘Call SetMenuPicture(Me, 2, 3, imgMenu(0))

Public Sub SetMenuPicture(ByVal oForm As Form, ByVal iMenu As Integer, ByVal iSubMenu As Integer, ByVal oImage As Image)
On Error Resume Next
Dim lMenu As Long, lSubMenu As Long, lMenuID As Long
lMenu = GetMenu(oForm.hwnd)
lSubMenu = GetSubMenu(lMenu, iMenu)
lMenuID = GetMenuItemID(lSubMenu, iSubMenu)
lRet = SetMenuItemBitmaps(lMenu, lMenuID, 0, oImage.Picture, 0&)
On Error GoTo 0
End Sub

批量文档整理器(TrimText)

一、功能:
对同一文件夹内的大批量文本文件的内容进行规律性整理。
二、整理方式:
1.如果一个或多个文本文件内某一行或几行的内容均是同一文字串,可以将这样的行进行同一替换(整行替换);
2.如果一个或多个文本文件内某一行或几行的开头均是同一文字串,可以将这样的行进行同一替换(整行替换);
3.如果一个或多个文本文件内某一行或几行的结尾均是同一文字串,可以将这样的行进行同一替换(整行替换);
4.可以将本是一段但被强制分段的相邻几段恢复为一段(断行续接);
5.”断行续接”时可以指定以某些文字开头的段为完整段(即不与其他段合并,保持独立),这些文字输入支持统配符”?”;也可以选择是否”以序数词开头视为整段”;
6.可以将一段文字根据给定长度分为几段(等长分段);
7.维持原段落设置(不调段落);
8.可以在每一段的开始增加文字(段首增加文字);
9.可以在每一段的结尾增加文字(段尾增加文字);
10.可以在每一段的开始取消文字(段首取消文字);
11.可以在每一段的结尾取消文字(段尾取消文字);
12.可以将文本文件内的空行删除(删除空行);
13.可以在每两段之间设一空行(段间设行);
14.维持原空行设置(不调空行);
15.可以在所有文件内进行统一的文字替换(文字替换)。
三、操作步骤:
1.选择需要整理文件的文件夹;
2.检查文件列表;
3.输入替换内容;
4.选择是否设置段间空行;
5.选择是否删除空行;
6.选择是否进行首尾处理;
7.选择是否等长分段,并输入每段的自数;
8.选择是否断行续接,这时可以给出以某些文字开头的段为完整段的标识文字,也可以选择是否以序数词开头的段为完整段;
9.确认整理。
四、注意事项:
1.文件夹内符合条件的文件全部被整理;
2.子文件夹内文件不会改动;
3.三种替换方式的每一种内都提供了多个替换机会,左为空时对应行替换不会执行;
4.”断行续接”中”以??????开头视为整段”提供了多个标识文字,有几个执行几个,其余不符合标识文字的段落照常执行”断行续接”;
5.”断行续接”中的标识文字执行效果举例如下:如键入”第???回”为完整段标识文字,如文件内有”第一二零回 甄士隐详说太虚情 贾雨村归结红楼梦”作为独立段存在,不与上下段作接续合并;
6.”断行续接”中”以序数词开头视为整段”,即是以”1234567890一二三四五六七八九十零”中之一开头的段作为完整段对待;
7.”断行续接”可以将大多数的符合条件段合并;
8.段落首尾增加或取消文字是对原行的操作,比如,”abc 东方之星”同时执行段首增加文字”abc “和段首取消文字”abc “,最终效果为”abc 东方之星”,只是现在的”abc “是新增加的,原来的”abc “已被取消掉;
9.硬回车即视为一段;
10.替换时区分大小写;
11.整理不可恢复。

下载见软件下载