Domino 9 und frühere Versionen > ND8: Entwicklung

Erste Zeile einer Textdatei wird nicht eingelesen

(1/2) > >>

immanuel:
Hallo Zusammen

Mit dem folgenden Code lese ich Zeile für Zeile aus einem ASCII File aus. Eine Zeile beinhaltet einen ESR Datensatz der Bank (Zahlungseingänge). Mit dem Split nach Chr(10) kann ich die Daten selektieren, also immer ein Datensatz pro neue Linie. Die Daten werden dann weiterverarbeitet. Leider wird die erste Zeile nicht verarbeitet

Habt ihr ein Tipp, dass auch die erste Zeile verarbeitet wird?

Danke und Gruss
Manuel


--- Code: ---Sub Click(Source As Button)
Dim session As New notessession
Dim db As notesdatabase
Dim doc As notesdocument, profdoc As Notesdocument, doc2 As Notesdocument
Dim Dateipfad As String, aktfile As String
Dim fileNum As Integer, cells As Integer, k As Long
Dim fileName As String
Dim InputStr As String, delimiter As String
Dim FieldArray As Variant
Dim esrCheckview As NotesView

Set db = session.currentdatabase
Set profdoc = db.getprofiledocument("Einstellungen")
Set esrCheckview = db.GetView ("EsrRef") ' EsrRef View nötig um zu checken, ob der Datensatz schon importiert ist

Dateipfad = profdoc.EinstellungenEsrFile(0) ' ESR Datei
fileNum = Freefile()
delimiter = Chr(10)  ' Trennzeichen
aktfile = Dateipfad
If aktfile <> "" Then
Open aktfile For Input As fileNum%
Line Input #1,  InputStr$   
Do While Not Eof(fileNum%)
         ' Zeile für Zeile einlesen
Line Input #1,  InputStr$ 
Messagebox InputStr$ 
FieldArray = Split(InputStr$,delimiter)
' Check ob ESR Datensatz schon eingelesen.
If Not Isempty(FieldArray) Then
Set doc2 = esrCheckview.GetDocumentByKey(fieldarray(0)) ' View mit allen vollen ESR
If Mid(FieldArray(0),1,3) <> "999"  And doc2 Is Nothing Then ' Transaktion 999 Ignorieren, nur neue Datensätze einlesen
Call CreateDocument(db, FieldArray(0)) 'String übergeben
End If   
End If
Loop
Messagebox "eof erreicht"
Else
Messagebox "Datei nicht vorhanden", 16, "Fehler"
End If
Close fileNum%
Exit Sub
End Sub
--- Ende Code ---

Axel:
Du machst beim ersten Mal zweimal einen Line Input. Verschiebe mal die Line Input -Anweisung innerhalb der Schleife direkt vor die Loop-Anweisung. Dann sollte das funktionieren.


--- Code: --- Line Input #1,  InputStr$   
Do While Not Eof(fileNum%)
         ' Zeile für Zeile einlesen
Messagebox InputStr$ 
FieldArray = Split(InputStr$,delimiter)
' Check ob ESR Datensatz schon eingelesen.
If Not Isempty(FieldArray) Then
Set doc2 = esrCheckview.GetDocumentByKey(fieldarray(0)) ' View mit allen vollen ESR
If Mid(FieldArray(0),1,3) <> "999"  And doc2 Is Nothing Then ' Transaktion 999 Ignorieren, nur neue Datensätze einlesen
Call CreateDocument(db, FieldArray(0)) 'String übergeben
End If   
End If
Line Input #1,  InputStr$ 
Loop




--- Ende Code ---


Axel

immanuel:
Danke, die erste Zeile wird nun übernommen. Leider wird die letzte Zeile nun nicht übernommen. Wenn ich am Ende des Files eine leere Zeile hinzufüge geht es. Die letzte Zeile scheint ausgelassen zu werdem. Einen Tipp?
Ich habe es bereits ohne Split mit dem Chr(10) versucht, also mit einem Normalen String anstatt Array, um zu testen ob eventuell in der letzen Zeile kein Chr(10) zehn mehr drin ist. Doch dies scheint nicht das Problem zu sein.

Danke für eure Hilfe.
Gruss
Manuel

Axel:
Versuch's mal so:


--- Code: ---...
Do Until EOF(fileNum%)
' Zeile für Zeile einlesen
  Line Input #1,  InputStr$
  Messagebox InputStr$ 
  FieldArray = Split(InputStr$,delimiter)
  ' Check ob ESR Datensatz schon eingelesen.
  If Not Isempty(FieldArray) Then
    Set doc2 = esrCheckview.GetDocumentByKey(fieldarray(0)) ' View mit allen vollen ESR
    If Mid(FieldArray(0),1,3) <> "999"  And doc2 Is Nothing Then ' Transaktion 999 Ignorieren, nur neue Datensätze einlesen
      Call CreateDocument(db, FieldArray(0)) 'String übergeben
    End If   
  End If

Loop


--- Ende Code ---

Und das Line Input außerhalb der Schleife lass mal weg.

Axel

immanuel:
Hallo Axel

Mit deiner neuen Version wurde die letzte Zeile nun eingelesen, jedoch die erste wieder nicht mehr  ???

Sonst noch ein Tipp?

Grüsse
Manuel

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln