vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2020
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
m3u Datei ändern 
Autor: Wicky00
Datum: 31.07.20 10:47

Hallo Forum,

ich habe folgendes Problem. Ich lade mir aus dem Internet des öfteren m3u Dateien.

Aufbau:
#EXTM3U
#EXTINF:0,1. Das Erste HD
rtsp://192.168.178.57/?src=1&freq=11494&pol=h&ro=0.35&msys=dvbs2&mtype=8psk&plts=on&sr=22000&fec=23&pids=0,17,18,5100,5101,5102,5104
#EXTINF:0,2. ZDF HD
rtsp://192.168.178.57/?src=1&freq=11362&pol=h&ro=0.35&msys=dvbs2&mtype=8psk&plts=on&sr=22000&fec=23&pids=0,17,18,6100,6110,6120,6130

Problem ist das dort immer die IP Adresse des Erstellers eingetragen ist. Die Datei hat meistens mehrere hunderte mal diese IP Adresse eigetragen. Gibt es eine Möglichkeit das ganze automatisch umändern zu lassen ?
Von 192.168.178.57 auf 192.168.1.2

Bin leider noch ziemlicher Anfänger und wäre über ein kleines Beispiel dankbar.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: m3u Datei ändern 
Autor: effeff
Datum: 31.07.20 13:36

Lies den Text komplett oder zeilenweise ein (denn eine M3U ist ja nur eine Textdatei) und mache ein Replace der alten Textdaten auf die neuen.

Beispiel:

Dim Datei As String = "d:\beispiel.m3u"
        Dim TextToReplace = "192.168.178.57"
        Dim TextNeu = "192.168.1.2"
 
        Dim Textinhalt As String = Nothing
 
        Dim sr As New System.IO.StreamReader(Datei)
 
        Textinhalt = sr.ReadToEnd
        sr.Close()
 
        Textinhalt = Textinhalt.Replace(TextToReplace, TextNeu)
 
        Dim sw As New System.IO.StreamWriter(Datei)
        sw.Write(Textinhalt)
        sw.Close()

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: m3u Datei ändern 
Autor: Wicky00
Datum: 31.07.20 17:26

Dankeschön,
hat mir viel arbeit erspart.

Ich habe mir das ganze jetzt noch in einer Textbox anzeigen lassen.
TextBox3.Text = Textinhalt

Warum liest er mir die Datei nicht wie beim Notepade Zeilenweise in die Textbox ein ?
Bzw. wie kann ich die m3u wie im Notepad anzeigen lassen ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: m3u Datei ändern 
Autor: effeff
Datum: 01.08.20 16:38

Ich verstehe Deine Frage nicht. Es ist egal, ob Du die Datei zeilenweise einliest oder auf einen Rutsch. Und angezeigt wird sie in der Textbox ja auch komplett inklusive Zeilenumbrüchen. Du musst Die Textbox nur auf "Multiline=True" einstellen. Und dazu stellst Du "Scrollbars=Both" ein.

Ich habe hier ein anderes Beispiel für Dich. Im ersten Takt wird dabei nur der Inhalt einer mittels OpenFileDialog zu bestimmenden Datei in eine Textbox (Multiline ist wieder True, Die Scrollbars sind auch wider Both) eingelesen - wieder komplett.

Im zweiten Takt kann man den Text manuell ändern und speichern.

Public Class Form1
 
Dim sDatei As String = Nothing
 
Private Sub btnDateiLesen_Click(sender As Object, e As EventArgs) Handles _
  btnDateiLesen.Click
 
sDatei = ""
 
Dim ofd As New OpenFileDialog
With ofd
 .InitialDirectory = "d:\"
 .Filter = "m3u files (*.m3u|*.m3u"
 .Multiselect = False
End With
 
Dim dres As DialogResult = ofd.ShowDialog
 
If dres <> DialogResult.OK Or ofd.FileName = "" Then
 Exit Sub
End If
 
sDatei = ofd.FileName
 
TextBox1.Text = System.IO.File.ReadAllText(sDatei)
 
End Sub
 
Private Sub btnDateiSchreiben_Click(sender As Object, e As EventArgs) Handles _
  btnDateiSchreiben.Click
 
System.IO.File.WriteAllText(sDatei, TextBox1.Text)
 
End Sub
 
End Class

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: m3u Datei ändern 
Autor: Wicky00
Datum: 01.08.20 18:58

OK, verstanden.
Ich verwende jetzt eine RichtTextBox, die zeigt alles so an wie ich es möchte.

Gibt es noch eine Möglichkeit beim einlesen IP Adressen farbig darzustellen ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: m3u Datei ändern 
Autor: effeff
Datum: 01.08.20 20:08

Ich habe das Beispiel erweitert; Beachte bitte das Importieren von RegularExpressions!

Imports System.Text.RegularExpressions
 
Public Class Form1
 
    Dim sDatei As String = Nothing
 
    Private Sub btnDateiLesen_Click(sender As Object, e As EventArgs) Handles _
      btnDateiLesen.Click
 
        sDatei = ""
 
        Dim ofd As New OpenFileDialog
        With ofd
            .InitialDirectory = "d:\"
            .Filter = "m3u files (*.m3u|*.m3u"
            .Multiselect = False
        End With
 
        Dim dres As DialogResult = ofd.ShowDialog
 
        If dres <> DialogResult.OK Or ofd.FileName = "" Then
            Exit Sub
        End If
 
        sDatei = ofd.FileName
 
        RichTextBox1.Text = System.IO.File.ReadAllText(sDatei)
 
        TextEinfaerben()
 
    End Sub
 
    Private Sub btnDateiSchreiben_Click(sender As Object, e As EventArgs) _
      Handles btnDateiSchreiben.Click
 
        System.IO.File.WriteAllText(sDatei, RichTextBox1.Text)
 
    End Sub
 
    Private Sub TextEinfaerben()
 
        Dim Textinhalt As String = RichTextBox1.Text
        Dim pattern As String = "^(?:(" & _
          "?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(" & _
          "?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
        Dim Treffer As Boolean
        Dim Textbeginn As Integer = 0
        Dim Textposition As Integer = 0
        Dim Textlaenge As Integer = 0
 
        Dim arr() As String = Textinhalt.Split("/")
 
        For i As Integer = 0 To arr.Length - 1
 
            Treffer = Regex.IsMatch(arr(i), pattern, RegexOptions.IgnoreCase)
 
            If Treffer Then
                Textlaenge = arr(i).Length
                Textposition = Textinhalt.Substring(Textbeginn, _
                  Textinhalt.Length - Textbeginn).IndexOf(arr(i)) + Textbeginn
                With RichTextBox1
                    .SelectionStart = Textposition
                    .SelectionLength = Textlaenge
                    .SelectionColor = Color.Red
                End With
                Textbeginn = Textposition + Textlaenge
            End If
 
        Next
 
    End Sub
 
End Class

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2020 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel