| |
VB.NET - Ein- und Umsteigerm3u 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. | |
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 | |
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 ? | |
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 | |
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 ? | |
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 | |
| 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 |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 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
|
|