vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

Suche Visual-Basic Code
Textdatei auslesen, Zeile je nach Code ausgeben 
Autor: S1!c3r
Datum: 17.10.05 10:39

Guten Tag

Ich suche einen Code, welcher eine Textdatei auslist, die so aussieht:

100 1101-12 Angebliche Funktionsstörung überprüft
101 1102-12 Erdschluss / Isolationsfehler überprüft
102 1103-06 Druckknopfelement Kabine repariert
103 1104-06 Druckknopfelement Aussensteu. repariert

Jetzt sollte man in einer Textdatei den Code (die ersten drei Zahlen) eintippen können und wenn man den Anzeigebutton betätigt sollte der Text, welcher dahinter steht in einem Label oder einer Textdatei angezeigt werden.

Der dreistellige Code ist nicht vortlaufend. Es gibt Lücken (zbsp. 130-180 existiert nicht mehr). Vielleicht ist dies von Vorteil, wenn man dies weiss ;).

Ich hoffe ihr könnt mir helfen!

Danke vielmals...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textdatei auslesen, Zeile je nach Code ausgeben 
Autor: S1!c3r
Datum: 17.10.05 10:59

Hier ist noch ein Screenshot, wie es aussieht, damit ihr euch dies besser vorstellen könnt:
http://www.xgfx.net/form.jpg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textdatei auslesen, Zeile je nach Code ausgeben 
Autor: S1!c3r
Datum: 17.10.05 11:34

Und zum Schluss den Code, welcher ich jetzt habe (von dieser Webseite):

' Bestimmte Zeile aus einer Textdatei lesen
Public Function ReadLine(ByVal sFile As String, _
  Optional ByVal nLine As Long = 1) As String
 
  Dim sLines() As String
  Dim oFSO As Object
  Dim oFile As Object
 
  ' Fehlerbehandlung aktivieren
  On Error GoTo ErrHandler
 
  ' Verweis auf das FileSystemObject erstellen
  Set oFSO = CreateObject("Scripting.FileSystemObject")
 
  ' Existiert die Datei überhaupt?
  If oFSO.FileExists("C:\logbuch.txt") Then
    ' Datei öffnen
    Set oFile = oFSO.OpenTextFile("C:\logbuch.txt")
 
    ' Alles lesen und in Array zerlegen
    sLines = Split(oFile.ReadAll, vbCrLf)
 
    ' Datei schließen
    oFile.Close
 
    Select Case Sgn(nLine)
       ' (nLine > 0)
      Case 1
        ' n-te Zeile von vorne beginnend
        ReadLine = sLines(nLine - 1)
 
      ' (nLine < 0)
      Case -1
        ' n-te Zeile von hinten beginnend
        ReadLine = sLines(UBound(sLines) + nLine + 1)
    End Select
  End If
 
ErrHandler:
  ' Objekte zerstören
  Set oFile = Nothing
  Set oFSO = Nothing
End Function
 
Private Sub Command1_Click()
txtLine.Text = ReadLine("C:\logbuch.txt", txtCode)
End Sub
Im Moment kann man also bei der Textbox die Zeilennummer eintippen und der Text wird ausgegeben.
Jetzt sollte es aber möglich sein, dass man die verschiedenen Zeilen mit dem Code anzeigen kann. Also muss man die Zeile, also den String zerlegen? Mit instr?

Ich kenne VB leider nicht sehr gut ;).

lg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textdatei auslesen, Zeile je nach Code ausgeben 
Autor: wb-soft
Datum: 17.10.05 12:16

Hi!

Die schnelle Lösung:

Die Datei zeilenweise in einlesen, bis die gewünschte Zeile gefunden wurde.
Die Zeile mit String-Funktionen zerlegen.
Dazu gibt es jede Menge Beispiele. Du brauchst dazu kein FSO.


Die optimale Lösung:

Die Datei über ADO als DB ansprechen. Das ist zwar schwieriger, bietet aber auch alle Möglichkeiten einer DB.
Google nach "schema.ini", da könntest du Beispiele finden.


mfg

WB
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textdatei auslesen, Zeile je nach Code ausgeben 
Autor: S1!c3r
Datum: 17.10.05 15:04

So, ich habs nun in VBS gelöst... ging irgendwie einfacher ;)
Option Explicit
Dim fs, codeliste, gelesen, suchcode, strCodeLeft, strCodeRight, zeile
 
set fs = CreateObject("Scripting.FileSystemObject")
set codeliste = fs.OpenTextFile("C:\codeliste.txt")
 
suchcode = InputBox("Code", "Eingabe")
 
	Do until codeliste.atEndOfStream
		codeliste.Read(1)
		zeile = codeliste.ReadLine
		strCodeLeft = Left(zeile, 3)
		strCodeRight = Mid(zeile, 4, 1000)
 
			If strCodeLeft = suchcode Then
				MsgBox zeile
				MsgBox strCodeRight
			End if
	loop
 
	codeliste.close
Sola...

Ach und Danke vielmals für die Hilfe . Das mit der String-Funktion hat weitgergeholfen .
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-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