Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
Semmelhamster
Newbie
Newbie

Anmeldedatum: 24.02.2009
Beiträge: 10

Einlesen hinter Dateiende
Verfasst am: 26.02.2009, 15:40

Hallo kann mir vielleicht jemand helfen.

Ich soll ein Programm erstellen das Messungen von Motherboardkomponenten auswertet.

Ich lese aus einer Protokolldatei und nach dem Begriff "FAIL}" der kennzeichnet,
ob die Messungen fehlerhaft sind. Zu Beginn lese ich die Komponenten über eine Textdatei
in ein Array ein. Falls in der eingelesen Zeile außer Fail} auch noch eine Komponente enthalten
ist wird die Sourcecodedatei die die Protokolldatei erstellt und ebenfalls zeilenweise eingelesen
und in eine Variable gespeichert. Wenn die Komponente mit der Fehlermessung im Sourcecode
gefunden wird sollen über die Methode append und einem Select Case unterschiedliche Messungen
für diese Komponente eingefügt werden um heraus zu finden welche Einstellungen zu einem Erfolg
der Messungen führen.

Lange Rede, kurzer Sinn, in der fett markierten Zeile erhalte ich immer den Laufzeitfehler 62:
Einlesen hinter Dateiende.

Wahrscheinlich ist da auch der ein oder andere syntaktische Fehler, kann mir trotzdem jemand weiter
helfen? Ich poste jetzt einfach mal den ganzen Code:


Dim break As String
Dim protocolline As String
Dim sourceline As String
Dim sourceall As String
Dim all As String
Dim componentlist(953) As String
Dim componentpath As String
Dim sourcepath As String
Dim newsourcepath As String
Dim counter As Integer
Dim compare As Integer
Dim comparecomponents As Integer
Public fso As New FileSystemObject
Dim tstream As TextStream
Dim newtstream As TextStream
Private Sub cmdAnalyze_Click()

componentpath = "irgendwas"
sourcepath = "irgendwas"
newsourcepath = "irgendwas"
counter = 0


Set tstream = fso.OpenTextFile(componentpath, ForReading, False)
Do Until tstream.AtEndOfStream
componentlist(counter) = tstream.ReadLine
counter = counter + 1
DoEvents
Loop
tstream.Close

break = Chr$(13) + Chr$(10)
CommonDialog1.Filter = "Protokolldateien(*.mdl)|*.MDL"
CommonDialog1.ShowOpen
Set tstream = fso.OpenTextFile(CommonDialog1.FileName, ForReading, False)

Do Until tstream.AtEndOfStream
protocolline = tstream.ReadLine
search protocolline, sourcepath, compare, comparecomponents, componentlist(), sourceline, sourceall, break
all = all & protocolline & break
DoEvents
Loop
tstream.Close
Set tstream = fso.OpenTextFile(newsourcepath, ForWriting, True)
tstream.Write sourceall
tstream.Close
Text1.Text = all
Text2.Text = sourceall
End Sub
Sub search(protocolline As String, sourcepath As String, compare As Integer, comparecomponents As Integer, componentlist() As String, sourceline As String, sourceall As String, break As String)

Set newtstream = fso.OpenTextFile(sourcepath, ForReading, False)
compare = InStr(protocolline, "FAIL}")

If compare <> 0 Then
For i = 0 To 953
comparecomponents = InStr(protocolline, componentlist(i))
If comparecomponents <> 0 Then
Do Until newtstream.AtEndOfStream 'Or sourceline = "End Sub#"
sourceline = newtstream.ReadLine
sourceall = sourceall & sourceline & break
compare = InStr(sourceline, componentlist(i))
If compare <> 0 Then
sourceline = newtstream.ReadLine
sourceall = sourceall & sourceline & break
sourceline = newtstream.ReadLine
sourceall = sourceall & sourceline & break
sourceline = newtstream.ReadLine
sourceall = sourceall & sourceline & break
append componentlist(i), sourceall, break
End If
DoEvents
Loop
End If
Next i
End If
newtstream.Close
End Sub

Sub append(component As String, sourceall As String, break As String)

Select Case (componentlist(i))
Case "A1152_1"
sourceall = sourceall & " Text " & Chr(34) & "A1152_1== WIDA_4XS_1K0_J_W06" & Chr(34) & break
sourceall = sourceall & " SV" & Chr(34) & "250mV DC=1.000 Delay=2mS MR=1KOhm Tol=+-5 A= (P3V3P_STBY) B= (CPU_CATERR_L)" & Chr(34) & break
sourceall = sourceall & break

sourceall = sourceall & " Text " & Chr(34) & "A1152_1== WIDA_4XS_1K0_J_W06&" & Chr(34) & break
sourceall = sourceall & " SV" & Chr(34) & "250mV DC=1.000 Delay=2mS MR=1KOhm Tol=+-7 A=(CPU_CATERR_L) B=(P3V3P_STBY)" & Chr(34) & break
sourceall = sourceall & break

sourceall = sourceall & " Text " & Chr(34) & "A1152_1== WIDA_4XS_1K0_J_W06" & Chr(34) & break
sourceall = sourceall & " SV" & Chr(34) & "250mV DC=1.000 Delay=1mS MR=1KOhm Tol=+-3 A=(CPU_CATERR_L) B=(P3V3P_STBY)" & Chr(34) & break
sourceall = sourceall & break

sourceall = sourceall & " Text " & Chr(34) & "A1152_1== WIDA_4XS_1K0_J_W06" & Chr(34) & break
sourceall = sourceall & " SV" & Chr(34) & "250mV DC=1.000 Delay=3mS MR=1KOhm Tol=+-5 A=(CPU_CATERR_L) B=(P3V3P_STBY)" & Chr(34) & break
sourceall = sourceall & break

sourceall = sourceall & " Text " & Chr(34) & "A1152_1== WIDA_4XS_1K0_J_W06" & Chr(34) & break
sourceall = sourceall & " SV" & Chr(34) & "250mV DC=1.000 Delay=1mS MR=1KOhm Tol=+-5 A=(CPU_CATERR_L) B=(P3V3P_STBY)" & Chr(34) & break
sourceall = sourceall & break

Case "A1151_4"
sourceall = sourceall & " Text " & Chr(34) & "A1151_4== WIDA_4XS_1K0_J_W06" & Chr(34) & break
sourceall = sourceall & " SV" & Chr(34) & "50mV DC=2mS DELAY=20mS MR=1KOhm TOL=+-5 A=(CPU1_THERM_L) B=(P3V3P_STBY)" & Chr(34) & break
sourceall = sourceall & break

sourceall = sourceall & " Text " & Chr(34) & "A1151_4== WIDA_4XS_1K0_J_W06" & Chr(34) & break
sourceall = sourceall & " SV" & Chr(34) & "50mV DC=2mS DELAY=20mS MR=1KOhm TOL=+-7 A=(P3V3P_STBY) B=(CPU1_THERM_L)" & Chr(34) & break
sourceall = sourceall & break

sourceall = sourceall & " Text " & Chr(34) & "A1151_4== WIDA_4XS_1K0_J_W06" & Chr(34) & break
sourceall = sourceall & " SV " & Chr(34) & "50mV DC=2mS DELAY=20mS MR=1KOhm TOL=+-3 A=(P3V3P_STBY) B=(CPU1_THERM_L)" & Chr(34) & break
sourceall = sourceall & break

sourceall = sourceall & " Text " & Chr(34) & "A1151_4== WIDA_4XS_1K0_J_W06" & Chr(34) & break
sourceall = sourceall & " SV " & Chr(34) & "50mV DC=1mS DELAY=20mS MR=1KOhm TOL=+-5 A=(P3V3P_STBY) B=(CPU1_THERM_L)" & Chr(34) & break
sourceall = sourceall & break

sourceall = sourceall & " Text " & Chr(34) & "A1151_4== WIDA_4XS_1K0_J_W06" & Chr(34) & break
sourceall = sourceall & " SV " & Chr(34) & "50mV DC=3mS DELAY=20mS MR=1KOhm TOL=+-5 A=(P3V3P_STBY) B=(CPU1_THERM_L)" & Chr(34) & break
sourceall = sourceall & break
End Select

End Sub

Private Sub cmdBeenden_Click()
End
End Sub

[b]


Zuletzt bearbeitet von Semmelhamster am 02.03.2009, 08:54, insgesamt einmal bearbeitet
 
Zano
Newbie
Newbie

Anmeldedatum: 31.01.2009
Beiträge: 17


Verfasst am: 26.02.2009, 15:46

kann man line input mehrmals in einem schleifendurchlauf benutzen?
 
Semmelhamster
Newbie
Newbie

Anmeldedatum: 24.02.2009
Beiträge: 10


Verfasst am: 26.02.2009, 15:54

ja ich kann ja auch den Inhalt der Protokolldatei in einer Textbox ausgeben
 
Semmelhamster
Newbie
Newbie

Anmeldedatum: 24.02.2009
Beiträge: 10


Verfasst am: 02.03.2009, 09:00

Ich hab jetzt viel ausprobiert und festgestellt das bei der Überprüfung auf das
Dateiende irgendwo ein Fehler passiert. Jedes Mal wenn ich versuche die Datei
einzulesen macht das Programm überhaupt nichts.
In der letzten Zeile der Datei die ich einlese steht "End Sub", das kommt aber
mehrmals in der Datei vor sodass ich die Datei bearbeitet habe und "End Sub#",
sonst würde das Programm früher mit dem Einlesen aufhören
daraus gemacht habe.:
Do Until newtstream.AtEndOfStream Or sourceline = "End Sub#"
Dann funktioniert alles korrekt.
Hier nun meine Frage warum wird nicht korrekt bis ans Dateiende eingelesen oder
dauert es nur wahnsinnig lange und ich muss länger warten?

Vielen Dank!
 
Semmelhamster
Newbie
Newbie

Anmeldedatum: 24.02.2009
Beiträge: 10


Verfasst am: 02.03.2009, 10:34


Das ist echt ein super Forum hier, bekommt man da immer soviel Hilfe? Confused
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: dateiende, einlesen, laufzeitfehler, fehler

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge [suche] Tuturials winsock & daten senden 983 09.06.2011, 13:19
Keine neuen Beiträge [Video] *.dll & *.ocx Installer 2608 06.03.2008, 21:19
Keine neuen Beiträge ListView speichern & laden 1331 05.08.2008, 13:32
Keine neuen Beiträge Registry & Co Fragen 1203 03.05.2007, 10:57
Keine neuen Beiträge Listbox speichern & laden 2266 22.03.2007, 21:25
 


[ Time: 0.2036s ][ Queries: 92 (0.1191s) ][ GZIP on - Debug on ]