Domino 9 und frühere Versionen > ND6: Entwicklung

Beim einlesen von CSV-Datei Zeilen addieren

(1/6) > >>

john doh:
Hallo zusammen,

die CSV sieht ungefähr so aus:

...;"14";...;"Rechnungbetrag Firme 1";...;15,99 €
...;"14";...;"blah blah";...;
...;"14";...;"blah blah";...;
...;"14";...;"Rechnungbetrag Firme 2";...;;;0,99 €
...;"14";...;"blah blah";...;
...;"14";...;"Rechnungbetrag Firme 3";...;;100,99 €

Mein Problem sieht so aus, alle Zeilen mit gleicher Kartennr (in diesem Fall 14) und dem Wort "Rechnungsbetrag" sollen addiert werden. Die Eurobeträge stehen an VERSCHIEDENEN Positionen.
Das ist mein bisherigen Code:

Sub Initialize
   Dim uiws As New NotesUIWorkspace
   Dim session As New notessession
   Dim db As notesdatabase
   Dim doc As notesdocument
   Dim view As NotesView
   Dim fileNum As Integer
   Dim fileName As Variant
   Dim InputStr As String
   Dim delimiter As String
   Dim FieldArray  As Variant
   
   Set db = session.currentdatabase
   Set view = db.GetView ("abgleich")
   fileNum% = Freefile()
   fileName = uiws.OpenFileDialog(True, "CSV-Datei auswählen", "CSV Files|*.CSV", "C:\")
   delimiter = ";"
   
   Open fileName(0) For Input As fileNum%
   Line Input #1,  InputStr$
   
   Do While Not Eof(fileNum%)
      Line Input #1,  InputStr$
      FieldArray = Split(Replace(inputstr$ ,Chr(34),""),delimiter,-1,0)
      
      If  Not Isempty(FieldArray) Then
         If Instr (InputStr$,"Rechnungsbetrag") > 0 Then
            Set doc = view.GetDocumentByKey(fieldarray(2))
            If Not doc Is Nothing Then
               Call doc.ReplaceItemValue("status", "Abgleich am "+Now)
               Call doc.ReplaceItemValue("puffer", fieldarray(18))
               Call doc.Save(True,True)
            End If
         End If
      End If
      
   Loop
   
   Close fileNum%
End Sub

Ich hab nicht den leisesten Schimmer, wie ich das realisieren soll.

Matthias

koehlerbv:
Dann muss Du Dir einen Parser bauen:
- Prüfen, ob in Array (x) die gewünschte Kartennummer steht. Wenn nein -> nächste Zeile
- Prüfen, ob in FieldArray (y) "Rechnungsbetrag" steht. Wenn nein -> nächste Zeile
- Alle folgenden Elemente des Arrays durchsuchen, ob dort das Euro-Zeichen steht.
- Wenn ja, alle Zeichen ausser Ziffern und Komma eliminieren, Double-Wert bilden und addieren.

HTH,
Bernhard

john doh:
Der code aus meinen 1. Post, macht der das nicht (bis aufs addieren)?

Matthias

klaussal:

--- Zitat ---Der code aus meinen 1. Post, macht der das nicht (bis aufs addieren)?
--- Ende Zitat ---

Böse Falle. Seinen eigenen Code sollte man schon kennen + was der macht.

john doh:
@ Bernhard

Manchmal bin ich sooo doof.  ;D
JETZT, wo ich endlich verstanden habe wie Du das meinst, werde ich mich voller Tatendrang dransetzen. Falls ich Schwierigkeiten haben sollte, werd ich nochmal nach Hilfe schreien.
Vielen Dank für den Schups in die richtige Richtung.

Matthias

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln