none
Data Not in First row Datagridview RRS feed

  • Question

  • Hi All,

    What I want Data_1 in column1 show from Row 1 to the end and Data_2 in column2 show from Row 1 to the end.

    somebody help me.

    file text =22

    0 ,2 ,
    3 ,8 ,
    4 ,6 ,
    1 ,5 ,
    0 ,5 ,
    0 ,5 ,
    1 ,2 ,
    5 ,9 ,
    2 ,5 ,
    0 ,4 ,
    0 ,9 ,
    3 ,5 ,
    7 ,9 ,
    6 ,7 ,
    0 ,4 ,
    0 ,5 ,

    file Text=33

    30 ,39 ,36 ,09 ,06 ,95 ,97 ,95 ,57 ,55 ,58 ,55 ,57 ,85 ,87 ,75 ,72 ,73 ,52 ,53 ,29 ,23 ,29 ,93 ,99 ,82 ,85 ,87 ,25 ,27 ,10 ,19 ,10 ,09 ,00 ,77 ,78 ,76 ,78 ,76 ,39 ,37 ,38 ,97 ,98 ,24 ,24 ,25 ,44 ,45 ,56 ,57 ,58 ,67 ,68 ,60 ,68 ,62 ,08 ,02 ,50 ,56 ,58 ,06 ,08 ,33 ,34 ,38 ,34 ,38 ,31 ,31 ,36 ,11 ,16 ,05 ,06 ,07 ,56 ,57 ,53 ,53 ,50 ,33 ,30 ,31 ,36 ,33 ,16 ,13 ,80 ,85 ,81 ,05 ,01 ,16 ,19 ,14 ,69 ,64 ,62 ,62 ,68 ,22 ,28 ,09 ,05 ,08 ,95 ,98 ,05 ,02 ,00 ,52 ,50 ,
    12 ,15 ,12 ,25 ,22 ,74 ,75 ,76 ,45 ,46 ,29 ,21 ,28 ,91 ,98 ,71 ,79 ,75 ,19 ,15 ,52 ,56 ,51 ,26 ,21 ,39 ,31 ,35 ,91 ,95 ,95 ,96 ,95 ,56 ,55 ,13 ,14 ,19 ,34 ,39 ,18 ,10 ,19 ,80 ,89 ,78 ,74 ,71 ,84 ,81 ,19 ,15 ,15 ,95 ,95 ,66 ,68 ,65 ,68 ,65 ,94 ,97 ,94 ,47 ,44 ,33 ,38 ,32 ,38 ,32 ,08 ,07 ,08 ,87 ,88 ,02 ,01 ,05 ,21 ,25 ,04 ,07 ,05 ,47 ,45 ,51 ,59 ,58 ,19 ,18 ,63 ,60 ,64 ,30 ,34 ,03 ,04 ,00 ,34 ,30 ,41 ,43 ,42 ,13 ,12 ,79 ,76 ,78 ,96 ,98 ,48 ,45 ,45 ,85 ,85 ,
    59 ,55 ,53 ,95 ,93 ,76 ,73 ,73 ,63 ,63 ,52 ,59 ,50 ,29 ,20 ,36 ,37 ,37 ,67 ,67 ,92 ,98 ,93 ,28 ,23 ,02 ,08 ,06 ,28 ,26 ,43 ,46 ,42 ,36 ,32 ,51 ,53 ,58 ,13 ,18 ,35 ,39 ,35 ,59 ,55 ,16 ,11 ,11 ,61 ,61 ,55 ,59 ,55 ,59 ,55 ,26 ,20 ,26 ,60 ,66 ,08 ,07 ,05 ,87 ,85 ,65 ,60 ,68 ,50 ,58 ,45 ,47 ,47 ,57 ,57 ,15 ,15 ,12 ,55 ,52 ,93 ,94 ,93 ,34 ,33 ,59 ,54 ,53 ,94 ,93 ,02 ,04 ,09 ,24 ,29 ,06 ,06 ,01 ,66 ,61 ,70 ,73 ,75 ,03 ,05 ,79 ,78 ,71 ,98 ,91 ,37 ,39 ,33 ,79 ,73 ,
    25 ,23 ,23 ,53 ,53 ,33 ,30 ,30 ,30 ,30 ,88 ,85 ,89 ,85 ,89 ,64 ,63 ,65 ,43 ,45 ,05 ,08 ,04 ,58 ,54 ,70 ,76 ,76 ,06 ,06 ,30 ,30 ,32 ,00 ,02 ,49 ,45 ,44 ,95 ,94 ,36 ,38 ,34 ,68 ,64 ,99 ,96 ,91 ,96 ,91 ,18 ,10 ,12 ,80 ,82 ,97 ,95 ,94 ,75 ,74 ,09 ,07 ,09 ,97 ,99 ,06 ,04 ,04 ,64 ,64 ,91 ,92 ,90 ,12 ,10 ,81 ,84 ,87 ,14 ,17 ,80 ,82 ,86 ,02 ,06 ,73 ,73 ,76 ,33 ,36 ,84 ,83 ,85 ,43 ,45 ,22 ,22 ,22 ,22 ,22 ,72 ,77 ,72 ,27 ,22 ,65 ,69 ,69 ,59 ,59 ,80 ,84 ,81 ,04 ,01 ,
    70 ,77 ,76 ,07 ,06 ,53 ,50 ,51 ,30 ,31 ,82 ,84 ,84 ,24 ,24 ,26 ,23 ,23 ,63 ,63 ,08 ,03 ,06 ,83 ,86 ,15 ,10 ,18 ,50 ,58 ,74 ,73 ,77 ,43 ,47 ,73 ,70 ,70 ,30 ,30 ,08 ,05 ,04 ,85 ,84 ,09 ,03 ,08 ,93 ,98 ,44 ,43 ,43 ,43 ,43 ,73 ,74 ,78 ,34 ,38 ,02 ,00 ,04 ,20 ,24 ,19 ,10 ,16 ,90 ,96 ,35 ,39 ,35 ,59 ,55 ,26 ,27 ,20 ,67 ,60 ,03 ,09 ,04 ,39 ,34 ,07 ,00 ,05 ,70 ,75 ,71 ,74 ,70 ,14 ,10 ,72 ,71 ,73 ,21 ,23 ,03 ,03 ,00 ,33 ,30 ,69 ,63 ,69 ,93 ,99 ,27 ,29 ,24 ,79 ,74 ,
    83 ,81 ,85 ,31 ,35 ,20 ,29 ,28 ,09 ,08 ,88 ,87 ,84 ,87 ,84 ,53 ,58 ,59 ,38 ,39 ,91 ,99 ,90 ,19 ,10 ,40 ,48 ,45 ,08 ,05 ,86 ,85 ,86 ,65 ,66 ,33 ,36 ,34 ,36 ,34 ,02 ,04 ,01 ,24 ,21 ,05 ,08 ,00 ,58 ,50 ,40 ,48 ,47 ,08 ,07 ,88 ,88 ,88 ,88 ,88 ,89 ,82 ,83 ,92 ,93 ,89 ,81 ,85 ,91 ,95 ,92 ,97 ,95 ,27 ,25 ,43 ,49 ,42 ,39 ,32 ,05 ,09 ,04 ,59 ,54 ,87 ,88 ,85 ,78 ,75 ,68 ,68 ,69 ,88 ,89 ,01 ,03 ,00 ,13 ,10 ,12 ,14 ,14 ,24 ,24 ,12 ,18 ,16 ,28 ,26 ,71 ,78 ,71 ,18 ,11 ,
    50 ,58 ,50 ,08 ,00 ,43 ,41 ,43 ,31 ,33 ,33 ,35 ,35 ,35 ,35 ,09 ,01 ,07 ,91 ,97 ,64 ,67 ,60 ,47 ,40 ,73 ,70 ,79 ,30 ,39 ,33 ,39 ,31 ,39 ,31 ,54 ,56 ,54 ,46 ,44 ,97 ,94 ,93 ,74 ,73 ,22 ,22 ,22 ,22 ,22 ,82 ,80 ,81 ,20 ,21 ,93 ,94 ,93 ,34 ,33 ,51 ,51 ,56 ,11 ,16 ,19 ,14 ,11 ,94 ,91 ,47 ,41 ,47 ,71 ,77 ,92 ,97 ,91 ,27 ,21 ,65 ,69 ,69 ,59 ,59 ,98 ,94 ,97 ,84 ,87 ,74 ,78 ,70 ,48 ,40 ,19 ,18 ,15 ,98 ,95 ,19 ,19 ,13 ,99 ,93 ,35 ,38 ,39 ,58 ,59 ,62 ,63 ,62 ,23 ,22 ,
    08 ,05 ,08 ,85 ,88 ,93 ,98 ,97 ,38 ,37 ,56 ,55 ,59 ,65 ,69 ,07 ,00 ,00 ,70 ,70 ,14 ,12 ,10 ,42 ,40 ,92 ,90 ,94 ,20 ,24 ,01 ,01 ,05 ,11 ,15 ,98 ,97 ,97 ,87 ,87 ,19 ,14 ,12 ,94 ,92 ,28 ,26 ,22 ,86 ,82 ,29 ,28 ,23 ,98 ,93 ,46 ,46 ,45 ,66 ,65 ,33 ,37 ,31 ,37 ,31 ,45 ,47 ,46 ,57 ,56 ,48 ,44 ,43 ,84 ,83 ,83 ,89 ,82 ,39 ,32 ,70 ,75 ,74 ,05 ,04 ,97 ,94 ,99 ,74 ,79 ,50 ,57 ,58 ,07 ,08 ,70 ,71 ,74 ,01 ,04 ,29 ,22 ,22 ,92 ,92 ,97 ,91 ,95 ,71 ,75 ,31 ,35 ,36 ,15 ,16 ,
    37 ,39 ,31 ,79 ,71 ,22 ,22 ,22 ,22 ,22 ,66 ,60 ,66 ,60 ,66 ,06 ,03 ,04 ,63 ,64 ,45 ,41 ,44 ,51 ,54 ,11 ,12 ,13 ,12 ,13 ,07 ,04 ,00 ,74 ,70 ,28 ,29 ,28 ,89 ,88 ,95 ,95 ,93 ,55 ,53 ,00 ,03 ,01 ,03 ,01 ,75 ,73 ,70 ,53 ,50 ,61 ,67 ,62 ,17 ,12 ,16 ,10 ,18 ,60 ,68 ,19 ,11 ,13 ,91 ,93 ,68 ,61 ,65 ,81 ,85 ,34 ,34 ,39 ,44 ,49 ,28 ,27 ,22 ,87 ,82 ,81 ,83 ,86 ,13 ,16 ,59 ,54 ,53 ,94 ,93 ,06 ,06 ,01 ,66 ,61 ,37 ,35 ,32 ,75 ,72 ,40 ,42 ,49 ,02 ,09 ,09 ,00 ,02 ,90 ,92 ,
    25 ,26 ,27 ,56 ,57 ,53 ,53 ,58 ,33 ,38 ,18 ,13 ,14 ,83 ,84 ,73 ,79 ,73 ,39 ,33 ,40 ,40 ,40 ,00 ,00 ,52 ,58 ,56 ,28 ,26 ,22 ,26 ,23 ,26 ,23 ,04 ,07 ,00 ,47 ,40 ,12 ,17 ,11 ,27 ,21 ,21 ,27 ,22 ,17 ,12 ,45 ,44 ,44 ,54 ,54 ,06 ,03 ,04 ,63 ,64 ,59 ,54 ,54 ,94 ,94 ,12 ,17 ,12 ,27 ,22 ,08 ,07 ,03 ,87 ,83 ,29 ,22 ,27 ,92 ,97 ,04 ,08 ,03 ,48 ,43 ,13 ,13 ,17 ,33 ,37 ,86 ,88 ,83 ,68 ,63 ,60 ,66 ,66 ,06 ,06 ,01 ,02 ,04 ,12 ,14 ,56 ,53 ,52 ,63 ,62 ,06 ,00 ,07 ,60 ,67 ,
    33 ,31 ,36 ,31 ,36 ,04 ,02 ,04 ,42 ,44 ,05 ,09 ,01 ,59 ,51 ,41 ,46 ,42 ,16 ,12 ,21 ,24 ,26 ,14 ,16 ,20 ,22 ,20 ,02 ,00 ,07 ,00 ,06 ,70 ,76 ,28 ,28 ,29 ,88 ,89 ,42 ,49 ,47 ,29 ,27 ,88 ,88 ,88 ,88 ,88 ,79 ,73 ,70 ,93 ,90 ,36 ,30 ,31 ,60 ,61 ,66 ,65 ,67 ,65 ,67 ,96 ,90 ,95 ,60 ,65 ,74 ,75 ,78 ,45 ,48 ,84 ,83 ,83 ,43 ,43 ,61 ,60 ,65 ,10 ,15 ,88 ,83 ,86 ,83 ,86 ,40 ,49 ,48 ,09 ,08 ,37 ,33 ,37 ,73 ,77 ,18 ,17 ,15 ,87 ,85 ,33 ,37 ,31 ,37 ,31 ,63 ,69 ,61 ,39 ,31 ,
    94 ,95 ,94 ,45 ,44 ,98 ,98 ,93 ,88 ,83 ,54 ,53 ,53 ,43 ,43 ,07 ,02 ,09 ,72 ,79 ,21 ,20 ,28 ,10 ,18 ,17 ,11 ,19 ,71 ,79 ,14 ,15 ,17 ,45 ,47 ,91 ,97 ,94 ,17 ,14 ,27 ,28 ,21 ,78 ,71 ,78 ,79 ,72 ,89 ,82 ,78 ,73 ,72 ,83 ,82 ,54 ,58 ,56 ,48 ,46 ,42 ,44 ,49 ,24 ,29 ,36 ,32 ,30 ,62 ,60 ,63 ,68 ,61 ,38 ,31 ,61 ,61 ,61 ,11 ,11 ,35 ,39 ,38 ,59 ,58 ,21 ,23 ,28 ,13 ,18 ,21 ,20 ,21 ,10 ,11 ,27 ,29 ,22 ,79 ,72 ,95 ,94 ,95 ,54 ,55 ,20 ,23 ,23 ,03 ,03 ,24 ,20 ,26 ,40 ,46 ,
    30 ,32 ,31 ,02 ,01 ,56 ,59 ,58 ,69 ,68 ,61 ,69 ,67 ,19 ,17 ,73 ,78 ,77 ,38 ,37 ,37 ,36 ,33 ,76 ,73 ,21 ,21 ,22 ,11 ,12 ,84 ,84 ,83 ,44 ,43 ,17 ,17 ,11 ,77 ,71 ,27 ,27 ,28 ,77 ,78 ,42 ,43 ,47 ,23 ,27 ,36 ,39 ,32 ,69 ,62 ,75 ,75 ,75 ,55 ,55 ,03 ,09 ,00 ,39 ,30 ,32 ,32 ,37 ,22 ,27 ,91 ,96 ,99 ,16 ,19 ,97 ,94 ,99 ,74 ,79 ,99 ,96 ,96 ,96 ,96 ,72 ,77 ,78 ,27 ,28 ,75 ,73 ,74 ,53 ,54 ,94 ,97 ,97 ,47 ,47 ,77 ,76 ,74 ,76 ,74 ,65 ,66 ,67 ,56 ,57 ,70 ,70 ,78 ,00 ,08 ,
    99 ,96 ,92 ,96 ,92 ,42 ,48 ,45 ,28 ,25 ,84 ,85 ,84 ,45 ,44 ,59 ,53 ,50 ,93 ,90 ,07 ,03 ,07 ,73 ,77 ,00 ,00 ,05 ,00 ,05 ,16 ,12 ,12 ,62 ,62 ,58 ,51 ,59 ,81 ,89 ,69 ,66 ,60 ,96 ,90 ,45 ,42 ,48 ,52 ,58 ,82 ,80 ,84 ,20 ,24 ,18 ,15 ,16 ,85 ,86 ,40 ,43 ,41 ,03 ,01 ,31 ,37 ,38 ,17 ,18 ,97 ,99 ,94 ,79 ,74 ,78 ,73 ,75 ,83 ,85 ,11 ,19 ,19 ,19 ,19 ,70 ,70 ,72 ,00 ,02 ,24 ,26 ,24 ,46 ,44 ,99 ,98 ,98 ,98 ,98 ,52 ,51 ,57 ,21 ,27 ,34 ,33 ,31 ,43 ,41 ,97 ,91 ,99 ,71 ,79 ,
    57 ,51 ,54 ,71 ,74 ,53 ,50 ,53 ,30 ,33 ,90 ,93 ,96 ,03 ,06 ,17 ,12 ,17 ,72 ,77 ,96 ,96 ,99 ,66 ,69 ,17 ,15 ,15 ,75 ,75 ,87 ,85 ,82 ,75 ,72 ,45 ,40 ,44 ,50 ,54 ,45 ,42 ,42 ,52 ,52 ,90 ,92 ,94 ,02 ,04 ,12 ,14 ,18 ,24 ,28 ,66 ,63 ,60 ,63 ,60 ,01 ,07 ,05 ,17 ,15 ,43 ,41 ,49 ,31 ,39 ,81 ,85 ,83 ,15 ,13 ,13 ,13 ,12 ,33 ,32 ,86 ,84 ,82 ,64 ,62 ,99 ,93 ,93 ,93 ,93 ,61 ,60 ,66 ,10 ,16 ,12 ,12 ,10 ,22 ,20 ,48 ,43 ,42 ,83 ,82 ,50 ,57 ,54 ,07 ,04 ,54 ,53 ,55 ,43 ,45 ,
    91 ,94 ,90 ,14 ,10 ,21 ,25 ,28 ,15 ,18 ,94 ,95 ,91 ,45 ,41 ,43 ,46 ,41 ,36 ,31 ,20 ,28 ,23 ,08 ,03 ,66 ,61 ,60 ,61 ,60 ,38 ,38 ,39 ,88 ,89 ,91 ,97 ,96 ,17 ,16 ,56 ,58 ,51 ,68 ,61 ,82 ,84 ,85 ,24 ,25 ,64 ,62 ,69 ,42 ,49 ,22 ,23 ,21 ,23 ,21 ,14 ,19 ,12 ,49 ,42 ,90 ,98 ,98 ,08 ,08 ,68 ,61 ,68 ,81 ,88 ,63 ,65 ,63 ,35 ,33 ,07 ,00 ,06 ,70 ,76 ,88 ,89 ,87 ,89 ,87 ,15 ,11 ,19 ,51 ,59 ,00 ,09 ,07 ,09 ,07 ,27 ,22 ,29 ,72 ,79 ,37 ,39 ,30 ,79 ,70 ,32 ,39 ,32 ,29 ,22 ,

    Option Strict On
    Option Explicit On
    Public Class Form1
        Dim path As String = "C:\Users\60129\Documents\Test_33.txt"
        Dim AB As New List(Of String)
        Dim Toc As New List(Of String)
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
            AB.AddRange(IO.File.ReadAllLines("C:\Users\60129\Documents\Test_22.txt"))
    
            For J As Integer = 0 To AB.Count - 1
                Dim entry As String = AB(J)
                entry = entry.TrimEnd(CChar(","))
                entry = entry.Replace(vbCrLf, ",")
                entry = entry.Replace(" ", "")
                entry = entry.Replace(",", "")
                Toc.Add(entry)
            Next
    
            With DataGridView1
                .Columns.Add("Column1", "Data_1")
                .Columns.Add("Column2", "Data_2")
                .Columns.Add("Column3", "Result")
                .RowHeadersVisible = False
                .Columns("Column1").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
                .SelectionMode = DataGridViewSelectionMode.FullRowSelect
                .AllowUserToAddRows = False
    
                With .Columns("Column2")
                    .AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
                    .DefaultCellStyle.WrapMode = DataGridViewTriState.True
                    .ReadOnly = True
                End With
                With .Columns("Column3")
                    .AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
                    .DefaultCellStyle.WrapMode = DataGridViewTriState.True
                    .ReadOnly = True
                End With
    
                For Each line As String In Toc
                    .Rows.Add(line)
                Next
    
                For Each line As String In IO.File.ReadAllLines(path)
                    .Rows.Add(Nothing, line)
                Next
                .AutoResizeRows()
            End With
    
        End Sub
    
        Private Sub DataGridView1_Resize(sender As Object, e As EventArgs) Handles DataGridView1.Resize
            DataGridView1.AutoResizeRows()
        End Sub
    
        Function GetMat(ind As Integer, p As String) As Integer
            Dim s As String = DataGridView1("Column2", ind).Value.ToString
            Return System.Text.RegularExpressions.Regex.Matches(s, p).Count
    
        End Function
        Function GetMatches(ind As Integer) As String
            Dim ret As String = Nothing
            Dim p As String = DataGridView1("Column1", ind).Value.ToString
            ret &= "Occurances (" & p & ") = " & GetMat(ind, p) & vbCrLf
            ret &= "Occurances (" & RevString(p) & ") = " & GetMat(ind, RevString(p))
            Return ret
        End Function
        Function RevString(s As String) As String
            Dim pp() As Char = s.ToCharArray
            Array.Reverse(pp)
            Return New String(pp)
        End Function
        Private Sub DataGridView1_CellValidated(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellValidated
    
            If DataGridView1("Column1", DataGridView1.SelectedRows(0).Index).Value Is Nothing Then Exit Sub
    
            DataGridView1("Column3", DataGridView1.SelectedRows(0).Index).Value = GetMatches(DataGridView1.SelectedRows(0).Index)
        End Sub
    End Class
    
    


    Thank.





    • Edited by mipakteh Sunday, November 24, 2019 4:27 AM mistake
    Sunday, November 24, 2019 2:25 AM

Answers

  • Hi

    It is difficult to understand your question, but, based on the last question you asked about, hereis some code that *may* help.

    First off. This example uses a different file structure to hold the data (as I had to come up with it myself). Here, the search string is the first entry with a semi-colon separator, followed by any number of comma separated number strings in a block ending with VbCrLf.

    EXAMPLE FILE CONTENTS

    02;51 ,52 ,56 ,12 ,16 ,26 ,49 ,47 ,47 ,97 ,97 ,77 ,68 ,61 ,61 ,81 ,81 ,11 ,16 ,15 ,12 ,65 ,62 ,52 ,68 ,62 ,63 ,82 ,83 ,23 ,34 ,37 ,36 ,47 ,46 ,76 ,26 ,21 ,23 ,61 ,63 ,13 ,32 ,30 ,36 ,20 ,26 ,06 ,10 ,14 ,10 ,04 ,00 ,40 ,11 ,16 ,13 ,16 ,13 ,63 ,46 ,46 ,44 ,66 ,64 ,64 ,92 ,93 ,90 ,23 ,20 ,30 ,35 ,32 ,31 ,52 ,51 ,21 ,15 ,19 ,12 ,59 ,52 ,92 ,29 ,24 ,24 ,94 ,94 ,44 ,26 ,25 ,26 ,65 ,66 ,56 ,44 ,45 ,46 ,45 ,46 ,56 ,36 ,35 ,34 ,65 ,64 ,54 ,20 ,21 ,25 ,01 ,05 ,15 ,94 ,95 ,96 ,45 ,46 ,56 ,57 ,50 ,51 ,70 ,71 ,01 ,43 ,49 ,41 ,39 ,31 ,91 ,96 ,93 ,92 ,63 ,62 ,32
    35;72 ,72 ,72 ,22 ,22 ,22 ,75 ,74 ,77 ,54 ,57 ,47 ,55 ,58 ,56 ,58 ,56 ,86 ,39 ,38 ,37 ,98 ,97 ,87 ,61 ,65 ,66 ,15 ,16 ,56 ,46 ,41 ,44 ,61 ,64 ,14 ,76 ,74 ,77 ,64 ,67 ,47 ,33 ,31 ,38 ,31 ,38 ,18 ,37 ,39 ,33 ,79 ,73 ,93 ,27 ,23 ,23 ,73 ,73 ,33 ,12 ,18 ,19 ,28 ,29 ,89 ,36 ,33 ,36 ,63 ,66 ,36 ,35 ,32 ,35 ,52 ,55 ,25 ,53 ,52 ,53 ,32 ,33 ,23 ,27 ,23 ,29 ,73 ,79 ,39 ,77 ,75 ,70 ,75 ,70 ,50 ,07 ,00 ,08 ,70 ,78 ,08 ,69 ,60 ,69 ,90 ,99 ,09 ,22 ,22 ,21 ,22 ,21 ,21 ,65 ,68 ,60 ,58 ,50 ,80 ,72 ,75 ,78 ,25 ,28 ,58 ,84 ,85 ,83 ,45 ,43 ,53 ,78 ,73 ,75 ,83 ,85 ,35

    *

    Using that data file, here is the code I have come up with. This example will calculate the results dynamically as the user changes the search term in the first column.

    ' Form1 with blank DataGridView1
    ' DATAGRIDVIEW REGEX MATCHES
    Option Strict On
    Option Explicit On
    Public Class Form1
    	Dim path As String = "C:\Users\lesha\Desktop\MISC TEST FILES\Test1.txt"
    	Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
    		With DataGridView1
    			.Columns.Add("Column1", "Data_1")
    			.Columns.Add("Column2", "Data_2")
    			.Columns.Add("Column3", "Result")
    			.RowHeadersVisible = False
    			.Columns("Column1").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    			.SelectionMode = DataGridViewSelectionMode.FullRowSelect
    			.MultiSelect = False
    			.AllowUserToAddRows = False
    			.Anchor = AnchorStyles.Bottom Or AnchorStyles.Left Or AnchorStyles.Right Or AnchorStyles.Top
    			With .Columns("Column2")
    				.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
    				.DefaultCellStyle.WrapMode = DataGridViewTriState.True
    				.ReadOnly = True
    			End With
    			With .Columns("Column3")
    				.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    				.DefaultCellStyle.WrapMode = DataGridViewTriState.True
    				.ReadOnly = True
    			End With
    
    			Dim ind As Integer = 0
    			For Each line As String In IO.File.ReadAllLines(path)
    				.Rows.Add(Split(line, ";")(0), Split(line, ";")(1))
    				ind += 1
    			Next
    			.AutoResizeRows()
    			.Rows(0).Selected = True
    		End With
    	End Sub
    	Private Sub DataGridView1_Resize(sender As Object, e As EventArgs) Handles DataGridView1.Resize
    		DataGridView1.AutoResizeRows()
    	End Sub
    	Function GetMat(ind As Integer, p As String) As Integer
    		Dim s As String = DataGridView1("Column2", ind).Value.ToString
    		Return System.Text.RegularExpressions.Regex.Matches(s, p).Count
    	End Function
    	Function GetMatches(ind As Integer) As String
    		Dim ret As String = Nothing
    		Dim p As String = DataGridView1("Column1", ind).Value.ToString
    		ret &= "Occurances (" & p & ") = " & GetMat(ind, p) & vbCrLf
    		ret &= "Occurances (" & RevString(p) & ") = " & GetMat(ind, RevString(p))
    		Return ret
    	End Function
    	Function RevString(s As String) As String
    		Dim pp() As Char = s.ToCharArray
    		Array.Reverse(pp)
    		Return New String(pp)
    	End Function
    	Private Sub DataGridView1_CellValidated(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellValidated
    
    		If DataGridView1("Column1", DataGridView1.SelectedRows(0).Index).Value Is Nothing Then Exit Sub
    
    		DataGridView1("Column3", DataGridView1.SelectedRows(0).Index).Value = GetMatches(DataGridView1.SelectedRows(0).Index)
    	End Sub
    
    	Private Sub DataGridView1_RowsAdded(sender As Object, e As DataGridViewRowsAddedEventArgs) Handles DataGridView1.RowsAdded
    
    		If DataGridView1("Column1", e.RowIndex).Value Is Nothing Then Exit Sub
    
    		DataGridView1("Column3", e.RowIndex).Value = GetMatches(e.RowIndex)
    
    	End Sub
    End Class


    Regards Les, Livingston, Scotland


    • Edited by leshay Sunday, November 24, 2019 2:45 PM Added image
    • Marked as answer by mipakteh Thursday, November 28, 2019 8:19 AM
    Sunday, November 24, 2019 2:38 PM

All replies

  • Hi

    It is difficult to understand your question, but, based on the last question you asked about, hereis some code that *may* help.

    First off. This example uses a different file structure to hold the data (as I had to come up with it myself). Here, the search string is the first entry with a semi-colon separator, followed by any number of comma separated number strings in a block ending with VbCrLf.

    EXAMPLE FILE CONTENTS

    02;51 ,52 ,56 ,12 ,16 ,26 ,49 ,47 ,47 ,97 ,97 ,77 ,68 ,61 ,61 ,81 ,81 ,11 ,16 ,15 ,12 ,65 ,62 ,52 ,68 ,62 ,63 ,82 ,83 ,23 ,34 ,37 ,36 ,47 ,46 ,76 ,26 ,21 ,23 ,61 ,63 ,13 ,32 ,30 ,36 ,20 ,26 ,06 ,10 ,14 ,10 ,04 ,00 ,40 ,11 ,16 ,13 ,16 ,13 ,63 ,46 ,46 ,44 ,66 ,64 ,64 ,92 ,93 ,90 ,23 ,20 ,30 ,35 ,32 ,31 ,52 ,51 ,21 ,15 ,19 ,12 ,59 ,52 ,92 ,29 ,24 ,24 ,94 ,94 ,44 ,26 ,25 ,26 ,65 ,66 ,56 ,44 ,45 ,46 ,45 ,46 ,56 ,36 ,35 ,34 ,65 ,64 ,54 ,20 ,21 ,25 ,01 ,05 ,15 ,94 ,95 ,96 ,45 ,46 ,56 ,57 ,50 ,51 ,70 ,71 ,01 ,43 ,49 ,41 ,39 ,31 ,91 ,96 ,93 ,92 ,63 ,62 ,32
    35;72 ,72 ,72 ,22 ,22 ,22 ,75 ,74 ,77 ,54 ,57 ,47 ,55 ,58 ,56 ,58 ,56 ,86 ,39 ,38 ,37 ,98 ,97 ,87 ,61 ,65 ,66 ,15 ,16 ,56 ,46 ,41 ,44 ,61 ,64 ,14 ,76 ,74 ,77 ,64 ,67 ,47 ,33 ,31 ,38 ,31 ,38 ,18 ,37 ,39 ,33 ,79 ,73 ,93 ,27 ,23 ,23 ,73 ,73 ,33 ,12 ,18 ,19 ,28 ,29 ,89 ,36 ,33 ,36 ,63 ,66 ,36 ,35 ,32 ,35 ,52 ,55 ,25 ,53 ,52 ,53 ,32 ,33 ,23 ,27 ,23 ,29 ,73 ,79 ,39 ,77 ,75 ,70 ,75 ,70 ,50 ,07 ,00 ,08 ,70 ,78 ,08 ,69 ,60 ,69 ,90 ,99 ,09 ,22 ,22 ,21 ,22 ,21 ,21 ,65 ,68 ,60 ,58 ,50 ,80 ,72 ,75 ,78 ,25 ,28 ,58 ,84 ,85 ,83 ,45 ,43 ,53 ,78 ,73 ,75 ,83 ,85 ,35

    *

    Using that data file, here is the code I have come up with. This example will calculate the results dynamically as the user changes the search term in the first column.

    ' Form1 with blank DataGridView1
    ' DATAGRIDVIEW REGEX MATCHES
    Option Strict On
    Option Explicit On
    Public Class Form1
    	Dim path As String = "C:\Users\lesha\Desktop\MISC TEST FILES\Test1.txt"
    	Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
    		With DataGridView1
    			.Columns.Add("Column1", "Data_1")
    			.Columns.Add("Column2", "Data_2")
    			.Columns.Add("Column3", "Result")
    			.RowHeadersVisible = False
    			.Columns("Column1").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    			.SelectionMode = DataGridViewSelectionMode.FullRowSelect
    			.MultiSelect = False
    			.AllowUserToAddRows = False
    			.Anchor = AnchorStyles.Bottom Or AnchorStyles.Left Or AnchorStyles.Right Or AnchorStyles.Top
    			With .Columns("Column2")
    				.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
    				.DefaultCellStyle.WrapMode = DataGridViewTriState.True
    				.ReadOnly = True
    			End With
    			With .Columns("Column3")
    				.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    				.DefaultCellStyle.WrapMode = DataGridViewTriState.True
    				.ReadOnly = True
    			End With
    
    			Dim ind As Integer = 0
    			For Each line As String In IO.File.ReadAllLines(path)
    				.Rows.Add(Split(line, ";")(0), Split(line, ";")(1))
    				ind += 1
    			Next
    			.AutoResizeRows()
    			.Rows(0).Selected = True
    		End With
    	End Sub
    	Private Sub DataGridView1_Resize(sender As Object, e As EventArgs) Handles DataGridView1.Resize
    		DataGridView1.AutoResizeRows()
    	End Sub
    	Function GetMat(ind As Integer, p As String) As Integer
    		Dim s As String = DataGridView1("Column2", ind).Value.ToString
    		Return System.Text.RegularExpressions.Regex.Matches(s, p).Count
    	End Function
    	Function GetMatches(ind As Integer) As String
    		Dim ret As String = Nothing
    		Dim p As String = DataGridView1("Column1", ind).Value.ToString
    		ret &= "Occurances (" & p & ") = " & GetMat(ind, p) & vbCrLf
    		ret &= "Occurances (" & RevString(p) & ") = " & GetMat(ind, RevString(p))
    		Return ret
    	End Function
    	Function RevString(s As String) As String
    		Dim pp() As Char = s.ToCharArray
    		Array.Reverse(pp)
    		Return New String(pp)
    	End Function
    	Private Sub DataGridView1_CellValidated(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellValidated
    
    		If DataGridView1("Column1", DataGridView1.SelectedRows(0).Index).Value Is Nothing Then Exit Sub
    
    		DataGridView1("Column3", DataGridView1.SelectedRows(0).Index).Value = GetMatches(DataGridView1.SelectedRows(0).Index)
    	End Sub
    
    	Private Sub DataGridView1_RowsAdded(sender As Object, e As DataGridViewRowsAddedEventArgs) Handles DataGridView1.RowsAdded
    
    		If DataGridView1("Column1", e.RowIndex).Value Is Nothing Then Exit Sub
    
    		DataGridView1("Column3", e.RowIndex).Value = GetMatches(e.RowIndex)
    
    	End Sub
    End Class


    Regards Les, Livingston, Scotland


    • Edited by leshay Sunday, November 24, 2019 2:45 PM Added image
    • Marked as answer by mipakteh Thursday, November 28, 2019 8:19 AM
    Sunday, November 24, 2019 2:38 PM
  • Thank you very much Leshay;


    Thursday, November 28, 2019 8:19 AM