Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  EPLAN Electric P8
  Skript: Suche in Textdatei

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN
  
Eplan Network 2024 Ganz in Ihrer Nähe: Hannover, Veranstaltung am 24.10.2024
Autor Thema:  Skript: Suche in Textdatei (280 / mal gelesen)
HvdP
Mitglied
Hardware engineer

Sehen Sie sich das Profil von HvdP an!   Senden Sie eine Private Message an HvdP  Schreiben Sie einen Gästebucheintrag für HvdP

Beiträge: 2
Registriert: 14.06.2024

erstellt am: 14. Jun. 2024 15:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Projectinfo.txt

 
Guten Tag!
Ich erstelle über Export/Beschriftung eine Textdatei mit bestimmten Feldern aus dem Strukturcode. Siehe dazu den Anhang. Dann möchte ich mit einem Skript eine Textlinie in dieser Textdatei finden, die den Text "RK2" enthält und diese Textslinie in eine Variable schreiben. Kann mir jemand ein Beispiel dafür geben, wie ich das in VB.net machen kann? Ich kann es nicht herausfinden.

[Diese Nachricht wurde von HvdP am 14. Jun. 2024 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ubertelmann
Mitglied
E-Konstruktion


Sehen Sie sich das Profil von ubertelmann an!   Senden Sie eine Private Message an ubertelmann  Schreiben Sie einen Gästebucheintrag für ubertelmann

Beiträge: 12
Registriert: 18.03.2021

erstellt am: 17. Jun. 2024 13:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für HvdP 10 Unities + Antwort hilfreich

Ich weiß nicht ob das genau das ist was du möchtest, aber hier wäre ein Vorschlag:

Imports System.IO

Module Module1
    Sub Main()
        ' Pfad zur Textdatei
        Dim filePath As String = "C:\pfad\zur\datei.txt"
        ' Variable zur Speicherung der gewünschten Zeile
        Dim lineFound As String = String.Empty

        ' Datei zeilenweise lesen
        Try
            Using sr As New StreamReader(filePath)
                Dim line As String

                ' Zeile für Zeile lesen
                Do
                    line = sr.ReadLine()
                    If line Is Nothing Then
                        Exit Do
                    End If

                    ' Prüfen, ob die Zeile mit "RK2" beginnt
                    If line.StartsWith("RK2") Then
                        lineFound = line
                        Exit Do ' Schleife abbrechen, sobald die Zeile gefunden wurde
                    End If
                Loop
            End Using
        Catch e As Exception
            ' Fehlerbehandlung für den Fall, dass die Datei nicht gelesen werden kann
            Console.WriteLine("Die Datei konnte nicht gelesen werden:")
            Console.WriteLine(e.Message)
        End Try

        ' Überprüfen, ob die gewünschte Zeile gefunden wurde
        If lineFound <> String.Empty Then
            Console.WriteLine("Gefundene Zeile: " & lineFound)
        Else
            Console.WriteLine("Keine Zeile gefunden, die mit 'RK2' beginnt.")
        End If
    End Sub
End Module

Erklärung des Codes:
Pfad zur Textdatei: Der Pfad zur Textdatei wird in der Variablen filePath gespeichert. Diese sollte auf die tatsächliche Datei auf Ihrem System verweisen. Passen Sie den Pfad entsprechend an.

Lesen der Datei: Mit Using sr As New StreamReader(filePath) wird die Datei zeilenweise gelesen.

Überprüfen und Speichern der Zeile: Jede Zeile wird daraufhin geprüft, ob sie mit "RK2" beginnt (line.StartsWith("RK2")). Wird eine solche Zeile gefunden, wird sie in der Variablen lineFound gespeichert und die Schleife mit Exit Do abgebrochen.

Fehlerbehandlung: Falls ein Fehler auftritt, z.B. wenn die Datei nicht gefunden wird oder ein anderer Lesefehler vorliegt, wird eine Fehlermeldung ausgegeben.

Ausgabe der gefundenen Zeile: Nachdem die Datei durchgegangen wurde, wird geprüft, ob eine Zeile gefunden wurde und diese wird ausgegeben.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Technischer Systemplaner ETS / CAE Systemplaner (m/w/d) ? Schaltanlagen

Arbeitgeber: Wurm Schaltanlagenbau GmbH & Co. KG
Einsatzort: 42853 Remscheid, Rostock, Geldern, Vogtei

Die Wurm-Gruppe gehört als Pionier der Auto­matisierung von Kälte- und Gebäude­technik im Lebens­mittel­handel zu den führenden Anbietern. Unsere Regel- und Über­wachungs­systeme werden von vielen bekannten Groß­unter­nehmen im In- und Ausland eingesetzt....

Anzeige ansehenFeste Anstellung
HvdP
Mitglied
Hardware engineer

Sehen Sie sich das Profil von HvdP an!   Senden Sie eine Private Message an HvdP  Schreiben Sie einen Gästebucheintrag für HvdP

Beiträge: 2
Registriert: 14.06.2024

erstellt am: 18. Jun. 2024 12:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank für das Beispiel!
Zunächst hatte ich mit der StreamReader-Funktion experimentiert. Das hat nicht funktioniert. Aber das stellte sich im Nachhinein heraus, weil es falsch deklariert war.
Mit der Funktion ReadAllLines hatte ich Erfolg:

Code:
Public Class Read_TxtFile
<Start> _
Public Sub ReadTxt()
Dim strFilepath As String = "C:\Temp\Projectinfo.txt"
Dim strSearchttext As String = "RK2"
Dim readText() As String = System.IO.File.ReadAllLines(strFilepath)
Dim strTextLine As String
 
For Each strTextLine In readText
  If strTextLine.Contains(strSearchttext)
      Messagebox.Show(strTextLine, "This textline contains: " & strSearchttext)
  End If
        Next
End Sub
End Class

So macht Skripting Spaß. Vor allem, wenn es funktioniert. Aber oft auch frustrierend, wenn man einen Fehler findet :-(.

Mit freundlichen Grüßen

Übersetzt mit DeepL.com

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz