Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VB Textdatei öffnen, bestimmte Zeilen finden und benutzen.

Frage Entwicklung VB for Applications

Mitglied: TerminatorVB

TerminatorVB (Level 1) - Jetzt verbinden

31.12.2010, aktualisiert 18.10.2012, 14537 Aufrufe, 11 Kommentare

Hallo VBler

Da ich schon mehrere postivie Erfahrungen mit dieser Seite hatte, werde ich sie mal weiterbenutzen ;)

Ich wollte fragen, und es ist eine lange Frage, wie kann man in Visual Basic eine Textdatei öffnen, den Inhalt lesen, eine bestimmte Zeile suchen und deren Inhalt verwenden?
Ein Beispiel:

Ich klicke in meinem Programm auf "Öffnen", ein Fenster öffnet sich, welches mich eine Textdatei (in meinem Fall eine .d Datei, welches aber auch eine Textdatei ist) öffnen lässt. Der Inhalt der Datei kann optional in einer RichTextBox gezeigt werden. Es soll nun nach bestimmten Zeilen gesucht werden. Zum Beispiel eine Zeile die mit "name = " (ohne Anführungszeichen) beginnt. Der nachfolgende Text, logischerweise der Name, soll dann gespeichert werden und in einer TextBox gezeigt werden (oder besser als Variable festgehalten werden, welche die TextBox deklariert.
Ich hoffe das war verständlich genug.

*EDIT: Was mir gerade noch offTopic einfällt, ohne extra ein neues Thema aufzumachen:
Wie kann man so eine Art Handbuch zu einem Programm machen? Ähnlich wie wenn man bei einem Programm auf F1 drückt. Da öffnet sich ja so ein Hilfe"buch" mit verschiedenen Kapiteln bzw. Unterpunkten, welche dann erklärt werden.

LG
Benedikt
Mitglied: Pjordorf
31.12.2010, aktualisiert 18.10.2012
Hallo,

Zitat von TerminatorVB:
Ich wollte fragen, und es ist eine lange Frage, wie kann man in Visual Basic eine Textdatei öffnen, den Inhalt lesen, eine
bestimmte Zeile suchen und deren Inhalt verwenden?
Ein Beispiel:
Diese Frage hast du doch schon am 12.10.2010 gestellt. Siehe http://www.administrator.de/forum/wie-text-in-einer-textdatei-suchen-un ...

Gruß,
Peter
Bitte warten ..
Mitglied: TerminatorVB
31.12.2010 um 14:37 Uhr
Oh verdammt... Ich bin noch so jung und hab das schon wieder vergessen...
Ok dann zu dem anderen Thread eine Frage: Wie macht man einen OpenFileDialog? Denn der User soll ja bestimmen können, welche Datei geöffnet werden soll.

*EDIT: Bei der if-Funktion scheitert es!

So sieht es aus:

Dim FileName As String = "C:\Users\Benne\Desktop\KDF_45_Alkas.d"
Dim SearchFor As String = "name" 'Suchbegriff
Dim Sep = " = " 'Trennung vom Wert
Dim EOL As String = ";" 'Zeilenende-Kennung

Dim sr As IO.StreamReader = IO.File.OpenText(FileName) 'Textdatei zum Lesen öffnen ...
Dim Content As Array = Split(sr.ReadToEnd, vbCrLf) '... und zeilenweise in Array einlesen
Dim Value As String

For Each Line In Content 'alle Zeilen durchgehen

If InStr(Line, SearchFor & Sep) = 1 And Microsoft.VisualBasic.Right(Line, 1) = EOL Then 'beginnt Zeile mit Suchbegriff + Trennung und endet mit Zeilenende-Kennung?
Value = Split(Split(Line, Sep)(1), EOL)(0) 'isolieren des interessierenden Teiles
MsgBox(Value)
End If

Next

Ich hab es mit MsgBox' getestet. Die if-Funktion wird nicht durchgeführt.
LG
Bitte warten ..
Mitglied: Pjordorf
31.12.2010 um 14:45 Uhr
Hallo,

Zitat von TerminatorVB:
Oh verdammt...


Wie macht man einen OpenFileDialog? Denn der User soll ja bestimmen können, welche Datei geöffnet werden soll.
Dazu gibt es in der Doku sowie Hilfe zu deinem Visual Basic genügend Erklärungen und Beispiele.

Gruß,
Peter
Bitte warten ..
Mitglied: TerminatorVB
31.12.2010 um 15:01 Uhr
Welche Doku und welche Hilfe? :D
Bitte warten ..
Mitglied: 76109
31.12.2010 um 15:40 Uhr
Hallo

Sollte so einfacher gehen:
01.
Dim sr As IO.StreamReader = IO.File.OpenText(FileName) 'Textdatei zum Lesen öffnen ... 
02.
 
03.
Dim EOL As String = ";" 
04.
Dim SearchFor As String = "name = " 
05.
Dim Value As Array 
06.
Dim i As Integer 
07.
 
08.
Dim Content As Array = Split(sr.ReadToEnd, SearchFor) 
09.
 
10.
For i = 1 To UBound(Content)  
11.
    Value = Split(Content(i), EOL) 
12.
    If UBound(Value) > 0 Then MsgBox Value(0) 
13.
Next
Gruß Dieter

[edit] For-Schleife geändert [/edit]
Bitte warten ..
Mitglied: Pjordorf
31.12.2010 um 16:23 Uhr
Hallo,

Zitat von TerminatorVB:
Welche Doku und welche Hilfe? :D
Ist das jetzt eine Fangfrage?

Du hast ja noch nicht einmal deine verwendete Visual Basic Version angeben können!

Eine Dokumentation ist seit Visiual Basic 1 anbei.

Die Hilfe (F1 Taste an deiner Tastatur während du in der IDE bist) ist auch mit dabei.

Ansonsten [http://lmgtfy.com/?q=visual+basic+hilfe hier} lesen.

Und
Ich hab es mit MsgBox' getestet. Die if-Funktion wird nicht durchgeführt.
halte ich für ein gerücht. Die IF abfrage wird definitiv abgearbeitet. Das Ergebniss der wenn - dann Bedingung mag dir vielleicht nicht gefallen, aber abgearbeitet wird die schon. Mit welchen werten wird denn die Abfrage ausgeführt?

Was steht in Line?
Gibt es in Line deinen Suchbegriff? Wenn ja, wird dann noch die und Bedingung Microsoft.VisualBasic.Right(Line, 1) = EOL erfüllt? Nein?

Mach mal ein Else dazu und lasse dir Line ausgeben.
01.
If InStr(Line, SearchFor & Sep) = 1 And Microsoft.VisualBasic.Right(Line, 1) = EOL Then 'beginnt Zeile mit Suchbegriff + Trennung und endet mit Zeilenende-Kennung?  
02.
   Value = Split(Split(Line, Sep)(1), EOL)(0) 'isolieren des interessierenden Teiles  
03.
   MsgBox(Value) 'Ausgeben des Suchbegriffs 
04.
ELSE 'Bedingung wurde nicht erfüllt 
05.
   MsgBox(Line) 'Ausgabe vom Inhalt line 
06.
End If
Gruß,
Peter
Bitte warten ..
Mitglied: mathe172
03.01.2011 um 14:21 Uhr
Hallo

Ich hätte da jetzt mal kurz eine Frage(hat aber nicht direkt mit dem Inhalt zu tun): Warum benutzt ihr immer
"Dim Etwas as Array" und nicht "Dim Etwas() as String"?
Wo liegt der unterschied? Ist es nicht besser, wenn das Programm weiss dass es sich um eine String handelt?

Mathe172
[edit: Bist du sicher dass du in der Textdatei kein " " zwischen "name" und "=" hast? Du fragst nämlich nach "name=" und nicht wie in deineer Frage geschrieben nach "name ="]
Bitte warten ..
Mitglied: 76109
03.01.2011 um 15:42 Uhr
Hallo Mathe172!

Der Unterschied zwischen String (einfacher Text) und Array (mehrdimensionierbare Datenfelder) anhand eines Beispiels:

Inhalt > Text = "bla1;bla2;bla3;..."

Dim str As String = Text
Inhalt > str = "bla1;bla2;bla3;..."

Dim arr As Array = Split(Text, ";")
Inhalt > arr(0) = "bla1"
Inhalt > arr(1) = "bla2"
Inhalt > arr(2) = "bla3"
Inhalt > arr(3) = "..."

Gruß Dieter
Bitte warten ..
Mitglied: mathe172
03.01.2011 um 18:16 Uhr
Hallo Dieter!

"Dim Etwas() as String"
Bei mir bewirkt die Klammer genau dasselbe wie die Array bei dir...
Und wenn ich sie explizit dimensionieren will, schreib ich eine Zahl in die Klammer
Oder ist das ein unschöner/fehlerhafter Weg?

Mathe172
Bitte warten ..
Mitglied: 76109
03.01.2011 um 18:29 Uhr
Hallo Mathe172!

Insofern hast Du für Strings (String-Array) natürlich recht!

In Arrays (Variant) können dagegen verschiedene Datentypen vermischt werden (Strings, Integer, Boolean...).

Gruß Dieter
Bitte warten ..
Mitglied: mathe172
03.01.2011 um 21:21 Uhr
Hallo Dieter!

In Arrays (Variant) können dagegen verschiedene Datentypen vermischt werden (Strings, Integer, Boolean...)
Danke - Werd ich mir merken

Mathe172
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...