Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: leusel am 19.09.03 - 14:46:39

Titel: TXT Datei importieren
Beitrag von: leusel am 19.09.03 - 14:46:39
Hallo,


ich importiere eine Textdatei mit folgendem Script:
Wenn ich dieses Script nach einem Import nochmal ausführe, mit der gleichen TXT Datei, habe ich alle doppelt. kann ich dies vermeiden?

Sub verr_import(session As NotesSession, ws As NotesUIWorkspace,db As notesDatabase, view As NotesView, doc As NotesDocument)
   Dim doc2 As NotesDocument
   Dim  thr_rec(1 To 6)
'   Set view = db.GetView( "()" )
   fileNum% = Freefile()
   counter% = 0
   'Call dir_open (directory)
   'Msgbox directory
'   filename$= Inputbox$("Bitte Importdatei angeben mit Path?","Importagent","c:\test.txt",200,200)
   filename= ws.OpenFileDialog(False, "Bitte Importdatei auswählen !", "", "c:")
   If filename(0) ="" Then
      Msgbox "Dateiname nicht angeben !"
      Exit Sub
   End If
   Open filename(0) For Input As fileNum%
   Do While Not Eof(fileNum%)
      Line Input #fileNum%, txt$
      counter% = counter% + 1
   Loop
   
   Seek fileNum%, 1
   For countRec% = 1 To counter%-1
      spos=1
      epos=1
      string1 = ";"
      i = 1
      j = 6
      Line Input #fileNum%, txt$
      epos =Instr ( spos,   txt$, string1)
      Do
         length = epos - spos
         thr_rec(i)=Trim(Mid (txt$, spos,length))
         spos = epos + 1
         epos =Instr ( spos,   txt$, string1)
         i = i+1
      Loop Until epos = 0
      Set doc = New NotesDocument(db)
      doc.Form="#mitarbeiter"      
      doc.doctype = "Mitarbeiter"
      doc.n_name = thr_rec(1)
      doc.v_name = thr_rec(2)
      doc.kostenst = thr_rec(5)
      doc.eintritt = thr_rec(3)
      doc.gdatum = thr_rec(4)
      doc.Taetigk = thr_rec(6)
      
      Call doc.save(True,True)         
      
   Next
   Print countRec%
   Close fileNum%



Titel: Re:TXT Datei importieren
Beitrag von: koehlerbv am 19.09.03 - 14:55:48
Logisch, daß Du alles doppelt drin hast nach dem zweiten Import, und dreifach nach dritten usw.
Du mußt vor dem Anlegen eines neuen Dokuments vorher einfach abfragen, ob es dieses Dokument schon gibt (entsprechend der Dir vorliegenden Anforderungen "Wann ist ein Dokument schon vorhanden").
Also: Vor Set doc = New ...
ein If <Deine Bedingungen sind nicht erfüllt> then

Es könnte auch erforderlich sein, daß Du prüfen mußt, ob es erforderlich ist, ein bestehendes Dokument upzudaten - aber ich kenne ja Deine Anforderungen nicht.

HTH,
Bernhard
Titel: Re:TXT Datei importieren
Beitrag von: leusel am 19.09.03 - 16:07:13
bekomme das mit der If Abfrage nicht hin.......

Wie Frage ich bereits vorhandene Dokumente ab?
Ich muss doch nur die beiden Namens Felder abfragen.

Titel: Re:TXT Datei importieren
Beitrag von: koehlerbv am 19.09.03 - 16:47:29
Guckst Du zuerst bei DesignerHelp, NotesView.GetDocumentByKey.
Baust dann eine sortierte Ansicht, die in den Spalten die von Dir gewünschten Felder beinhaltet.
Dann suchst Du vor Anlage eines neuen Dokuments, ob mit den Kriterien Deiner Namensfelder schon ein Dokument vorhanden ist.

Gleiches Verfahren gilt für ein eventuell erforderliches Update bereits vorhandener Dokumente - falls erforderlich.

Bernhard
Titel: Re:TXT Datei importieren
Beitrag von: koehlerbv am 19.09.03 - 17:13:40
Hallo, leusel,

woher hast Du überhaupt Deine Import-Subroutine ? Hast Du da schon mal geprüft, wofür welche Parameter überhaupt gebraucht (oder nicht gebraucht) werden ?

Bernhard