- 博客(10)
- 收藏
- 关注
原创 文本比对程序设计(按行)中的同步滚动问题--“瞬间限高”方法
因为2个文本框是左右并排的,这样一来,左右2行就被迫“对齐”了。这2行就“滚动”到了“顶部”,而且2个文本“整个对齐”了。把左边的文本的每行的首字的“位置”放入GL(),把右边的……先把操作方法说明一下:不管当前的窗口是否已经对齐,只要用鼠标选中某一行中的几个字,就可以让两个文本的内容“对齐并同步滚动”。1.如果在“顶行”中选择几个字,则产生类似【PageUp】的效果,“顶行”会“下移”到窗口底部(滚动条的滑块上移,内容后退)。注意:(两边)窗口中的“行”,都分为2类:“顶行(仅1行)”和“其他行”。
2025-04-06 16:08:27
300
原创 文本比对程序设计--按“求同存异”来梳理文本;用“反转的文本”为“状态数组”充值
总应该约定一个规则吧?这过程中,又有2种情况,一种是:直至文本A结束(nr>L1)(L1是A文本最末尾的行号),都没遇到A(nr)=B(n2),这时,B(n2)肯定是“NO”,而A(n1)不能肯定(下一次比对用 n2+1,n1不动)。为了描述起来简洁一点,如果是的话,则该行的“性质”简称是“YES”(相同的行),如果属于“前一类”,就是“NO”。dp[i][j]中的“i”就是图中文本“fanA”的行号“anr(红色)和an1(蓝色)”,dp[i][j]中的“j”就是图中文本“fanB”的行号的“an2”。
2025-03-01 11:47:07
667
原创 保存“文本比对”的结果,不用“比对程序”也可以浏览。
所以,求“最长公共子序列的长度”也好,“文本比对”也好。当比对程序在比对过程中发现对“A副本”做过“删除行”和“修改行”的操作时,比对程序会在“文本A”的对应行的行首标注记号“!“文本A”中“没有标注记号的行”与“文本B”中“没有标注记号的行”形成“一 一对应、顺序一致”的关系。“起始行号”QS()和编辑的“行数”CD(),是通过2个“过程”来获取的:CmdMain_Click() 和 LCS()先把“文本A”复制一份,名为“A副本”,然后把“A副本”进行编辑,最后把编辑完的“A副本”改名为“文本B”。
2024-10-18 15:54:07
843
原创 在“标点”处略停顿---按“句”滚动字幕的提词器改进
文章中的标点符号,在空间上只占1个字的位置,但在时间上却往往不止1个字。虽然不同的标点,停顿的时间不同,但总比1个字要略长。为了比1个字略长,又不使程序过于复杂,我这里定为 3 个字。(读者可以修改源代码)请注意原来的代码行 Tmin=0 我全部改为 Tmin = -3。另外,其他地方有些改进,读者可以自行比较。这次上传的资源名称:提词器程序与VB源代码.rar。
2024-09-16 17:12:16
205
原创 由VB代码谈谈“文本比对程序”的设计思路
从比对结果的界面可以看出,“没有变动”的行,即两边黑色的的行,有这样的特点:一一对应、上下顺序不换。(第3个特点,也是最重要的一点:保持不动的行数最多,这里不明显)从比对结果的界面可以看出,如果我们获得了“从左边文本变到右边文本的全部的编辑数据”:QS、CD,(看代码文件中的 MarkLine() 过程)。如果我们在右边的“编辑后”文本、从上到下、逐行鉴别“是否是黑色”的行,就可以得到这些数据。不过,鉴别的原则,必须是遵循上面提到的3点:一一对应、上下顺序不换、保持不动的行数最多。
2024-09-16 15:33:28
285
原创 文本比对--比对结果“两边灵活对齐”
后面的算法是一样的。3.由于使用的是普通的文本框,无法加颜色,所以“行与行之间”只判断“同或不同”,不计算“不同行的差异细节”。许多“文本比对程序”为了使比对完成后,两边“对应的行”能够对齐,采取了“插入空行”或“添加连线”等方法。我的设计方案是:“灵活对齐”(两边都有滚动条),就是把“想要关注的语句行区域的两边对应首行”----自动选中并对齐,以方便对这部分的语句段进行分析。3.文本比对算法绕不开“最短编辑距离”或者“最长公共子序列”的算法,我用的是“最长公共子序列”的“递归”算法,所以时间复杂度较大。
2024-07-28 17:00:33
990
原创 “文本比对程序”应该建立文本之间的★关联,不能“一涂(颜色)了之”------“最长公共子序列”的实际应用案例。
介绍这个程序的设计思路,关键变量,与常见程序的不同等等
2023-07-11 15:35:54
153
1
原创 从“公共子串”的角度来分析求解“最长公共子序列”(LCS)
公共子序列是由一个个公共子串顺序连接而成的。在求解LCS的过程中,我们可以说,★所有的问题都是由公共子串结束引起的;所有的问题也只有1个:“谁是下一个公共子串的最优首字”。
2022-12-18 16:50:23
197
原创 按“句”滚动字幕的提词器程序设计--按“句”提示和“语速”调节
从2个插图可以看出,文本中红色的句子(按标点分割文本)指示了“当前的句子”。这使得你的眼光搜索起来非常迅捷;红字下面逐字延伸的下划线,使得你的“语速”可以把握得相当精准。而在“下划线”延伸到标点符号之前,整个文本是“静止”的。就是说,滚动的时机,是由你调节好的“语速”来决定的。下面是2个关键问题:1.“按句提示(红色)”和★文本自动向上滚动。用什么方法来把文本按“指定的标点”分割为“句”呢? 核心的语句是: RT1.Span ",。?!;", True, True ...
2021-11-13 20:24:05
1451
原创 文本比对在中文打字评分中的运用--正确、错、漏、多的发现与应用
第一部分 发现错、漏、多 批改就是把“打字文本”和“样张文本”进行比对。 批改的最起码的要求,就是在2个文本中,每个字都须定性为“正确”或“不正确”(样张中的“不正确”,意思是指“没有被正确地打出来,”,就是“被漏打”和“被打错”)。(例3中的绿色“带儿子”),(例4中的红色“莫斯科去”);在录入中,不正确的字也可以分为2类:,一类叫做“多打”(例2中的蓝色“的”),另一类叫做“打错”(例4中的红色“墨西哥”)“正确”的3个原则是:1.两个文本中的正确字一一对应。 2.不能颠...
2021-06-17 21:26:45
1532
两个文本比对程序 (多行形式的文本)
2024-09-16
文本(多行形式)比对程序 -比对结果“灵活对齐”
2024-07-28
“最长公共子序列”应用程序
2023-09-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人