Wyciągnięcie hosta z znaczników code, przed znacznik code

0

Witam.
Jak można wyciągnąc "nazwę hosta" z znaczników code - przed znacznik code?

Tak aby to wyglądało tak:
okokoko.png

0

Wyrażeniem regularnym https://(.+?)/.*

0

te linki są za każdym razem inne, bywają też sytuacje że np jest kilka linków tego samego hosta a mi potrzeba tylko 1 napis by byl przed znacznikiem code
sads.png

0

A w czym jest problem?
Nie znasz tej: http://msdn.microsoft.com/pl-pl/library/6wh7x3fs%28v=vs.110%29.aspx metody?

0

@kosmita90he no i co za problem? Regexp i wrzucanie linków do mapy/słownika.

1

Widzę że nadal to męczysz trochę poprawiony (dodane to o co Ci chodziło) kod który już jakiś czas temu Ci dawałem:

    Function GetHost(Link As String) As String
        Dim StartPos As Integer
        Dim EndPos As Integer

        StartPos = Link.IndexOf("://")
        If StartPos > -1 Then
            EndPos = Link.IndexOf("/", StartPos + 3)
            If EndPos > -1 Then
                GetHost = Link.Substring(0, EndPos)
            Else
                GetHost = Link
            End If

        Else
            GetHost = Link
        End If
    End Function

    Function GeHostDisplayName(Link As String) As String 'nowa funkcja
        Dim HOSTS_DATA = {{"filesherk.pl", "FileShark", "45A7A7"}, _
                         {"rapidgator.net", "Rapidgator", "8E2FB6"}, _
                         {"rapidu.net", "Rapidu", "999900"}} 'host, nazwa wyswietlana, kolor

        Dim HOST_DISPLAY_NAME_FRMT As String = "[color=#{1}]{0}[/color]" & Environment.NewLine

        GeHostDisplayName = ""

        Dim hostName As String = GetHost(Link)
        If hostName.Length > 0 Then
            hostName = hostName.Substring(hostName.IndexOf("://") + 3)
            For i As Integer = 0 To HOSTS_DATA.GetUpperBound(0)
                If String.Compare(hostName, HOSTS_DATA(i, 0)) = 0 Then
                    Return String.Format(HOST_DISPLAY_NAME_FRMT, HOSTS_DATA(i, 1), HOSTS_DATA(i, 2))
                End If
            Next
            'nie znany host jako nazwe wyswielana podstawiamy nazwe hosta np. rapidshare.com i kolor czarny
            Return String.Format(HOST_DISPLAY_NAME_FRMT, hostName, "0000000")
        End If

    End Function


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Const CODE_START As String = "[code]"
        Const CODE_END As String = "[/code]"

        Dim LinksList = New List(Of String)
        LinksList.AddRange(RichTextBox1.Lines)

        LinksList.Sort(Function(X As String, Y As String)
                           Dim sX, sY As String
                           sX = GetHost(X)
                           sY = GetHost(Y)
                           If sX.Equals(sY) Then
                               sX = System.IO.Path.GetFileName(X)
                               sY = System.IO.Path.GetFileName(Y)
                               Return sX.CompareTo(sY)
                           Else
                               Return X.CompareTo(Y)
                           End If
                       End Function)

        Dim LinksGrop = "" 'tu zaczynaja sie zmiany
        Dim LastHost = ""
        Dim NewLinePos As Integer
        For Each Link As String In LinksList
            If (LastHost.Length = 0) Then
                LinksGrop = GeHostDisplayName(Link) & CODE_START
            End If

            If (LastHost.Length = 0) Or Link.Contains(LastHost) Then
                LinksGrop = LinksGrop + Link + Environment.NewLine
            Else
                NewLinePos = LinksGrop.LastIndexOf(Environment.NewLine)
                LinksGrop = LinksGrop.Substring(0, NewLinePos)
                LinksGrop &= CODE_END & Environment.NewLine & Environment.NewLine
                LinksGrop &= GeHostDisplayName(Link) & CODE_START & Link & Environment.NewLine
            End If
            LastHost = GetHost(Link)
        Next
        NewLinePos = LinksGrop.LastIndexOf(Environment.NewLine)
        LinksGrop = LinksGrop.Substring(0, NewLinePos)
        LinksGrop = LinksGrop & CODE_END 'koniec zmian

        RichTextBox1.Clear()
        RichTextBox1.AppendText(LinksGrop)
    End Sub
0

@kAzek
Twój kod co teraz podałeś - działa Super...pod warunkiem że sie wkleja linki z tego samego Hostingu...np tylko CatShare...natomiast jak dam tam mix linków, np kilka z catshare i kilka z fileshark i kilka z rapidu....to Twoj kod szaleje i robi zdublowane linki + nagłówki :(

no kurcze dla mnie problem...
zrobilem funkcje , niby dziala ale bardzo chaotycznie to napisane ;/

jakby ktos mogl podpowiedziec jak to poprawić by kod był bardziej czytelny i "normalny"

    Function GetHost(Link As String) As String
        Dim StartPos As Integer
        Dim EndPos As Integer

        StartPos = Link.IndexOf("://")
        If StartPos - 1 Then
            EndPos = Link.IndexOf("/", StartPos + 3)
            If EndPos > -1 Then
                GetHost = Link.Substring(0, EndPos)
            Else
                GetHost = Link
            End If

        Else
            GetHost = Link
        End If
    End Function
   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        Dim LinksList = New List(Of String)
        LinksList.AddRange(TextBox1.Lines)
        Dim naglowek As String
        For Each Link As String In TextBox1.Text
            naglowek = (GetHost(TextBox1.Text))

            naglowek = Replace(naglowek, "[code]https://", "")
            naglowek = Replace(naglowek, "[code]http://", "")
            naglowek = Replace(naglowek, ".net", ":")
            naglowek = Replace(naglowek, ".pl", ":")
            If Not TextBox2.Text.Contains(naglowek) And TextBox1.Text.Contains("[code]https://") Then
                TextBox2.Text = TextBox2.Text + Replace(TextBox1.Text, "[code]https://", naglowek + "[code]https://")
            End If
            If Not TextBox2.Text.Contains(naglowek) And TextBox1.Text.Contains("[code]http://") Then
                TextBox2.Text = TextBox2.Text + Replace(TextBox1.Text, "[code]http://", naglowek + "[code]http://")
            End If
        Next

    End Sub

1 użytkowników online, w tym zalogowanych: 0, gości: 1