| |

Visual-Basic EinsteigerTextdatei auslesen, diesmal mit dem MSAgenten | |  | Autor: Dundi | Datum: 03.01.05 16:34 |
| Hallo VB-Fans,
als Einsteiger bin ich ja noch an fertige Programme gebunden, bis ich endlich meine
eigenen Schritte in die weite Welt des VB beschreiten kann.
Nun hab ich mir überlegt, ich versuche zwei Programme einfach einmal zusammmen-
zubinden und überlegte mir, aufgrund der MS Sprachausgabe, ein kleines Projekt.
Im Endeffekt möchte ich aus einer Textdatei Namens "Speaktext.txt", die mit
ca. 250 vollständigen Zeilen/Sätzen (ohne Zeilenumbruch) gefüllt ist, aus
mehreren Forms meines Projektes heraus, ganz bestimmte Zeilen (z.B. Zeile 8 und Zeile 12,
oder Zeile 114 und Zeile 38 und Zeile 201) per MS Agent einfach vorlesen lassen.
Nun habe ich in einigen Foren gewühlt und wurde fündig.
Als erstes nahm ich mir das Beispiel von Michael Werner aus dem VB-fun.de Archiv.
Siehe auch:
http://www.vbfun.de/cgi-bin/loadframe.pl?ID=vb/tipps/tip0219.shtml
Achtung! Dabei hab ich mir den Code heruntergeladen, der etwas anders aussieht,
als im Codefenster beschrieben.
Als nächstes suchte ich mir die "Behandlung" mit einer Textdatei heraus und fand
dies hier. Siehe auch:
http://www.vbarchiv.net/archiv/tipp_details.php?pid=970
Nun versuche ich krampfhaft beide zusammenzubringen, aber es scheint mir nicht
zu gelingen.
Der Programm-VB-Code sieht nun so aus:
Option Explicit
Dim Peedy As IAgentCtlCharacterEx
Private Sub Form_Activate()
Agent1.Characters.Load "Peedy", "Peedy.acs"
Set Peedy = Agent1.Characters("Peedy")
StartPeedyShow
End Sub
Private Sub StartPeedyShow()
With Peedy
...
End Sub
Private Sub Command1_Click()
Peedy.Show
If Dir(App.Path & "\SpeakText.txt") <> "" Then
Shell "notepad.exe " & App.Path & "\SpeakText.txt", _
vbNormalFocus
Else
MsgBox "Die Textdatei " & vbNewLine & _
App.Path & "\SpeakText.txt" & vbNewLine & _
"konnte nicht gefunden werden.", vbExclamation, "Abbruch"
Exit Sub
End If
' Text aus Textdatei sprechen lassen
' txtLine.Text = ReadLine(App.Path & "\speaktext.txt", 8)
SpeakTextFile ReadLine(App.Path & "\SpeakText.txt", 8)
' SpeakTextFile App.Path & "\SpeakText.txt"
Peedy.Hide
End Sub
Private Sub SpeakTextFile(file As String)
Dim txt As String
Dim FN As Integer
FN = FreeFile
' Textfile vorlesen
Open file For Input As #FN
While Not EOF(FN)
Line Input #FN, txt
Peedy.Speak txt
Wend
Close #FN
End Sub
Private Sub Command2_Click()
Dim Animation As Variant
List1.Clear
For Each Animation In Peedy.AnimationNames
List1.AddItem Animation
Next
End Sub
Private Sub List1_Click()
On Error Resume Next
Peedy.Stop
With Peedy
.Show
.Play List1.List(List1.ListIndex)
End With
End Sub
Private Sub Command3_Click()
Peedy.Stop
Peedy.Hide
End Sub
Private Sub Command4_Click()
StartPeedyShow
End Sub
Private Sub Command5_Click()
Unload Me
End
End Sub
' VB-@rchiv
' 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(sFile) Then
' Datei öffnen
Set oFile = oFSO.OpenTextFile(sFile)
' 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
' Beispiel für den Einsatz von "ReadLine":
' 8-te Zeile einer Datei lesen
' txtLine.Text = ReadLine(App.Path & "\speaktext.txt", 8)
' vorletzte Datei lesen
' txtLine = ReadLine(App.Path & "\speaktext.txt", -2) Weiter im nächsten Fenster. Leider etwas zu lang.
Grüßerle Dundi.
 |  |
 | 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 |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP! Unser Nr. 1 
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|
|
|
Copyright ©2000-2025 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
|
|