问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB把一个超大文本(20M)左右,拆分为指定大小的文本,按行或者按文本大小

发布网友 发布时间:2022-05-20 06:12

我来回答

3个回答

热心网友 时间:2023-10-03 11:42

我也提供一个代码(已测试,起始编码数字和格式可通过修改变量值进行设定,实现1~4项功能):需要1个窗体,1个TextBox,1个Label,2个OptionButton,1个CommandButton,用所提供代码覆盖窗体代码页内所有内容,运行后各控件布局将自动重新调整,代码如下:
===================================
按行分割缺行已BUG也修正
-----------------------------------

Option Explicit

Dim bByLines As Boolean

Private Sub Command1_Click()
Dim strTmp As String
Dim iFilesrc As Integer
Dim iFileDes As Integer
Dim lCount As Long
Dim lLimit As Long
Dim lFileCT As Long

strTmp = Trim(Text1.Text)
If Not IsNumeric(strTmp) Then
MsgBox "错误:行数或文件大小必须是正整数"
Exit Sub
End If
If Abs(CLng(strTmp)) <> CDbl(strTmp) Or CLng(strTmp) <= 0 Then
MsgBox "错误:行数或文本大小必须为正整数!" '通过修改上边CLng(strTmp)的比较数值,可以设置允许输入的最小值
Exit Sub
End If
lLimit = CLng(strTmp)
iFilesrc = FreeFile
Open "D:\DATA.TXT" For Input As #iFilesrc

lCount = 0
lFileCT = 0
iFileDes = FreeFile
Open "D:\DataSep_" & Format$(lFileCT, "0000") & ".txt" For Output As #iFileDes

Line Input #iFilesrc, strTmp
While Not EOF(iFilesrc)
If bByLines Then
If lCount + 1 > lLimit Then
Close #iFileDes
lFileCT = lFileCT + 1
Open "D:\DataSep_" & Format$(lFileCT, "0000") & ".txt" For Output As #iFileDes
lCount = 1
Else
lCount = lCount + 1
End If
Else
If lCount + 2 + Len(strTmp) > lLimit Then
Close #iFileDes
lFileCT = lFileCT + 1
Open "D:\DataSep_" & Format$(lFileCT, "0000") & ".txt" For Output As #iFileDes
lCount = Len(strTmp) + 2
Else
lCount = lCount + Len(strTmp) + 2
End If
End If
Print #iFileDes, strTmp
If Not EOF(iFilesrc) Then Line Input #iFilesrc, strTmp
Wend
If strTmp <> "" Then

If bByLines Then
If lCount + 1 > lLimit Then
Close #iFileDes
lFileCT = lFileCT + 1
Open "D:\DataSep_" & Format$(lFileCT, "0000") & ".txt" For Output As #iFileDes
lCount = 1
Else
lCount = lCount + 1
End If
Else
If lCount + 2 + Len(strTmp) > lLimit Then
Close #iFileDes
lFileCT = lFileCT + 1
Open "D:\DataSep_" & Format$(lFileCT, "0000") & ".txt" For Output As #iFileDes
lCount = Len(strTmp) + 2
Else
lCount = lCount + Len(strTmp) + 2
End If
End If
Print #iFileDes, strTmp

End If
On Error Resume Next
Close iFilesrc
Close iFileDes
Err.Clear

End Sub

Private Sub Form_Load()
Form1.Width = 6000
Form1.Height = 2400
Option1.Height = 495
Option1.Width = 2100
Option2.Height = 495
Option2.Width = 3735
Option1.Left = 45
Option1.Top = 45
Option2.Left = 90 + Option1.Width
Option2.Top = 45
Label1.Left = 45
Label1.Top = 90 + Option1.Height
Label1.Width = 2535
Label1.Height = 495
Text1.Top = Label1.Top
Text1.Left = 90 + Label1.Width
Text1.Width = 2655
Text1.Height = 330
Text1.Text = ""
Command1.Height = 375
Command1.Width = 1200
Command1.Top = Text1.Top + Text1.Height + 120
Command1.Left = Text1.Left + Text1.Width - Command1.Width - 45
Command1.Caption = "开始分割"

Option1.Caption = "按行数进行文件分割"
Option2.Caption = "按分割文件的最大尺寸进行文件分割"
End Sub

Private Sub Option1_Click()
bByLines = Option1.Value
Label1.Caption = "请输入每个分割文件的行数"
End Sub

Private Sub Option2_Click()
bByLines = Option1.Value
Label1.Caption = "请输入每个分割文件的最大尺寸"
End Sub

热心网友 时间:2023-10-03 11:43

'2个Option1,1个Text1,1个Command1
Private Sub Command1_Click()
Dim i As Long, str1 As String, str2 As String
Dim lngB As Long, k As Long
If IsNumeric(Text1.Text) Then
lngB = Val(Text1.Text)
If (Option1.Value And lngB < 10) Or lngB <= 0 Then
Text1.Text = ""
Exit Sub
End If
Else
MsgBox "分隔长度数据错误"
Exit Sub
End If
Open "c:\shuju.txt" For Input As #1
While Not EOF(1)
i = i + 1
Open "c:\shuju" & i & ".txt" For Output As #2
If Option1.Value Then
str2 = str1
Do While Not EOF(1)
Line Input #1, str1
If Len(str2 & vbCrLf & str1) >= lngB Then Exit Do
str2 = str2 & str1 & vbCrLf
Loop
Else
str2 = ""
k = 0
Do While Not EOF(1)
Line Input #1, str1
k = k + 1
If k >= lngB Then Exit Do
str2 = str2 & str1 & vbCrLf
Loop
End If
Close #2
Wend
Close #1
End Sub

Private Sub Form_Load()
Option1.Caption = "按字节数分隔"
Option1.Value = True
Option1.Caption = "按行数分隔"
End Sub

Private Sub Option1_Click()
Text1.Text = 1024
End Sub

Private Sub Option2_Click()
Text1.Text = 10
End Sub

热心网友 时间:2023-10-03 11:43

我能够实现234
如果1楼的代码高不定的话
email to happyq6@163.com
我来做吧
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 养宠物的人遵守规则,是不是就能和别人平安相处呢? 如何把大于500M的文本文件分割成n个小些的文件 怎么把一个超大的文本文档分成几个文本文档 ...制杖语音助手的上拉唤起手势给关了?本人华为p10,没事就上拉误触... iphone4显示已停用,连接iTunes,进恢复模式和更新都显示磁盘已满,爱思助手显示无法解除停 求助!ipad刷机内存不足怎么办,在线等! 笔记本安装爱思助手,自行下载安装完iTunes驱动,安装目录设置在D盘,但C盘确莫名少了7个G,如何清除? 爱思助手刷机的注意事项有哪些 为什么用爱思助手刷机老显示C盘空间不足5GB就刷了不了 爱思助手刷机的时候怎么增加系统区总容量 爱思助手刷完恢复数据显示设备空间不足 用爱思助手安装固件时老是说C盘内存不足怎么解决?我内存还有4个g没用呢 爱思助手c盘不足5g 爱思助手c盘剩余空间不足5g哪些可以删 爱思助手磁盘空间不足怎么办 爱思助手刷机时说c盘空间不足怎么办? 酷派m2怎么截图??? M2怎么截屏 乐锐m2手机如何截屏 如何开发移动app,有什么公司适合做外包开发的吗 选择app开发公司,app外包公司应该注意什么 TXT文件太大,90mb,如何分割或修改 我的电脑根本打不开,更别说修改里面的东西了 求一个脚本,如何利用python(python 2.7)分割超大的文本文件?可以指定按大小或按行数 怎么编写脚本程序分割大文本文件? 如何在电脑上分割较大的TXT文件 如何把超文本文件分割成几个小文本文件~~~ 质量管理系统里面,对供应商管理里面AVL代表什么意思? 为什么要做合格供应商名录 如何按照ISO管理体系建立“合格供方名录” 如何建立按照ISO管理体系“合格供方名录”? ISO9001,合格供方名录、QC工程图属于几阶文件? 什么叫合格供方名录这个合格供方名录要怎么做 合格供应商名单需不需要质量部批准? 如何被纳入上海市政府采购合格供应商名录? 按照什么和什么原则建立合格供应商名录并进行动态维护和评价管理_百度问一问 什么是优质供应商库啊 通过贸易商购的物料做合格供方名录怎么填,是填贸易商的名称还是填生产商的名称呢 合格供应商申请书 质量管理体系需要的相关办公室文件都有哪些?请详细的列举。如:采购控制程序文件;合格供方名录;等等。 什么是酷睿(扣肉)? 酷睿指的是谁?core还是Conroe还是别的?