读书人

按每行开头不同的符号读取内容解决方法

发布时间: 2012-04-26 14:01:31 作者: rapoo

按每行开头不同的符号读取内容
假设一个 a.txt
里面有N行(每行文字不等,有可能还分段分行了),作为区分,每行前面一个不同的符号

!张三
@李四
#王五多大了
30岁
$赵钱

如何在VB的窗体中放几个文本框,按不同的符号加载该符号所在的行里的所有文字(剔除作为分段的符号,但不影响内容中可能存在的相同符号)

能实现吗?谢谢!!!

[解决办法]
还是弄完整了吧...

VB code
'Form1内植入1个TextBox'Form1内植入1个CommandButton'变更Form1.ScaleMode = vbPixels'变更TextBox.Name 更名为 "txt"'变更txt.Index = 0 '物件Array(0)Private Type iDataType        ID() As StringEnd TypePrivate iData() As iDataTypePrivate Sub Form_Resize() '物件排序  Dim i As Integer  For i = 0 To txt.Count - 1      txt(i).Move 0, txt(0).Top + (txt(0).Height * i), Me.ScaleWidth, 100  Next 'i  Command1.ZOrder 0  Command1.Move Me.ScaleWidth - Command1.Width, 0End SubPrivate Sub Command1_Click()  Dim iStr As Variant, fStr As String  Dim i As Long, j As Long    i = FreeFile  Open App.Path & "\a.txt" For Input As #i '读入"a.txt"       iStr = StrConv(InputB(LOF(i), #i), vbUnicode) '一次读入整笔资料  Close #i    iStr = Split(iStr, vbCrLf)           '以vbCrLf分解iStr为Array  ReDim iData(0): ReDim iData(0).ID(0) '初始化Array    For i = 0 To UBound(iStr)      If iStr(i) <> "" Then                '对所有元素搜寻         fStr = Left(iStr(i), 1)           '取得首字元         For j = 0 To UBound(iData)        '对所有元素(0)搜寻             If iData(j).ID(0) = fStr Then '比对(0)元素,相同则加入                ReDim Preserve iData(j).ID(UBound(iData(j).ID) + 1)                iData(j).ID(UBound(iData(j).ID)) = iStr(i)                Exit For 'j             End If         Next 'j         If j > UBound(iData) Then '如j>元素总值则一定为未寻获            ReDim Preserve iData(UBound(iData) + 1) '新增元素            ReDim Preserve iData(UBound(iData)).ID(1)            iData(UBound(iData)).ID(0) = fStr       '加入比对字元            iData(UBound(iData)).ID(1) = iStr(i)    '加入字串         End If            End If  Next 'i    For i = 1 To txt.Count - 1 '清除原载入元件      Unload txt(i)  Next 'i    For i = 1 To UBound(iData) '由txt(0)起依序填入字串      iStr = ""      For j = 1 To UBound(iData(i).ID) '组合字串          iStr = iStr & Right(iData(i).ID(j), Len(iData(i).ID(j)) - 1) & vbCrLf '去除首字元      Next 'j      If i = 1 Then         txt(i - 1).Text = iStr '填入txt(0)内字串      Else         Load txt(i - 1) '加入元件         txt(i - 1).Text = iStr '填入字串         txt(i - 1).Visible = True      End If  Next 'i    Form_Resize '物件排序End Sub 

读书人网 >VB

热点推荐