xl_kid 20.02.2020 11:05
Predmet:čitanje podataka sa internet strane

Pokušavam da dobijem određene podatke sa neta. Provera računa kupaca da li su u blokadi ili ne (broj računa i opis). Našao sam kod koji mi dostavi potrebne podatke ali ga stavlja u listview i to u jedan red. Ako ima 5 zapisa biće 10 kolona (2 zapisa po id) ako ima 2 zapisa biće 4 kolona. Pokušao sam sa 2 datagrida i ako ih spojim dobiću ono što želim.

Moje pitanje je da li postoji lakši način da podatke dobijem u formatu koji želim?
primer:
111-1111111111111-11 račun u blokadi
222-2222222222222-22 nije u blokadi

evo koda i print screen

**************************************************
***
Imports System.Net
Imports System.IO
Imports System.Windows.Forms
Imports System.Text.RegularExpressions
Imports System.Xml

Public Class Form1

Dim ITEM As New ListViewItem
Dim RacunBR As String = "Račun:"
Dim Status As String
Dim Banka As String

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load

'http://www.nbs.rs/...=101811670

Dim Source As String = New Net.WebClient().DownloadString("http://www.nbs.rs/...01479056")

Dim recentSource As String = GetTagContents(Source, "<table class=""main"" width=""100%"">", "</table>")(0)

For Each title As String In GetTagContents(recentSource, "<strong>", "</strong>")

Dim value As String = title
Dim length As Integer = value.Length
            
            If Not title.Contains("http:") Then
Dim lvi As New ListViewItem

lvi.Text = title
ListView1.Items.Add(lvi)

End If

DataGridView1.ColumnCount = 2
DataGridView1.Columns(0).Name = "RB"
DataGridView1.Columns(0).Width = 40
DataGridView1.Columns(1).Name = "Opis"
DataGridView1.Columns(1).Width = 400

DataGridView2.ColumnCount = 2
DataGridView2.Columns(0).Name = "RB"
DataGridView2.Columns(0).Width = 40
DataGridView2.Columns(1).Name = "Opis"
DataGridView2.Columns(1).Width = 400

If Not title.Contains("http:") And length = 97 Then

Dim j As Integer = 0

DataGridView1.Rows.Add(j + DataGridView1.RowCount, title)

End If

If Not title.Contains("http:") And length > 35 And length < 51 And Not length = 46 Then

Dim j As Integer = 0

DataGridView2.Rows.Add(j + DataGridView2.RowCount, title)

End If

Next

End Sub

Private Function GetTagContents(ByVal Source As String, ByVal startTag As String, ByVal endTag As String) As List(Of String)
Dim StringsFound As New List(Of String)
Dim Index As Integer = Source.IndexOf(startTag) + startTag.Length
While Index <> startTag.Length - 1
StringsFound.Add(Source.Substring(Index, Source.IndexOf(endTag, Index) - Index))

Index = Source.IndexOf(startTag, Index) + startTag.Length
End While
Return StringsFound

End Function

End Class
Prilozi:
provera.png (Velicina datoteke:14.32 KB)