Domino 9 und frühere Versionen > ND6: Entwicklung

Errorhandling

(1/2) > >>

CLI_Andreas_Schmidt:
Hi @Dev,

ich versuche mich gerade an der folgenden Funktion:

Open "c:\importordner\txt\" & fileName$ For Input As fileNum%

Gibt es hier auch ein vernünftiges Errorhandling ?  Was ist, wenn der file gar nicht da ist ? Ein isOpen(File) habe ich so nicht gefunden. Ich habe schon mit der Stream-Klasse gearbeitet. Aber die guckt leider nur auf (Verzeichnis leer oder nicht leer).

Aber die Frage hier heißt. Wie prüfe ich ab, ob eine bestimmte Datei tatsächlich da ist ?

dirk_2909:
mit
strFileName = Dir$( "c:\importordner\txt\" & fileName$ , 0 )
Kannst Du prüfen, ob die Datei vorhanden ist (strFileName <> "")

ZaLudtske:
Hallo,

wenn auf Windows-Rechnern arbeitest kann du auch mit den FileSystemObject arbeiten. Dieses bietet viele und sehr bequeme Möglichkeiten auf das Vorhandensein von Dateien und Verzeichnissen zu prüfen.

Rainer

Glombi:
@Rainer: Poste doch mal ein Beispiel dafür.

Andreas

CLI_Andreas_Schmidt:
Ich habe den Code mal unten reingehängt. Was soll das Script tun ?

1. Sehe in Verzeichnis txt und nehme das erste file
2. Öffne es und lese den Dateinahmen aus (zeile 2) und suche dann in Verzeichnis doc nach der Datei.

Der Code funktioniert auch soweit. Ein Fehler ist jedoch noch drin, denn in Zeile X s.u. wird der erste File gezogen. In Zeile Y springt der Cursor bereits auf File 2 aus dem txt-Verzeichnis. Das soll aber nicht sein. Das Programm arbeitet also den ersten File nicht ab. Also ein Schleifenproblem.


---------------------->

Sub Initialize
   On Error Goto fehlermeldung
   
   
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim logdb As NotesDatabase
   Dim logdoc As NotesDocument
   Dim newdoc As NotesDocument
   Dim rtitem As NotesRichTextItem
   Dim strFileName As String
   
   Set db = s.CurrentDatabase
   
   Dim fileName As String
   Dim pathName As String
   pathName$ = "c:\ordner\txt\*.txt"
   
   fileName$ = Dir$(pathName$, 0) -------------------------> ZEILE X
   
   Dim txt As String
   Dim fileNum As Integer
   Dim counter As Integer
   Dim var() As String
   Dim getdocstringfile As String
   Dim getdocstringmail As String
   Dim getdocstringsubject As String
   Dim getdocstringbody As String
   Dim countvar As Integer
   

   Do     
      
      counter% = 0
      
      fileNum% = Freefile
      
      Open "c:\ordner\txt\" & fileName$ For Input As fileNum%
      
      fileName$ = Dir$() -------------------> Zeile Y
      
      Do While Not Eof(fileNum%)
         Line Input #fileNum%, txt$  ' Read each line of the file.
         Redim Preserve var(counter%)
         var(counter%) = txt$
         counter% = counter% + 1     ' Increment the line count.
      Loop
      
      Close fileNum%
      
      
      getdocstringmail = var(0)
      getdocstringfile = var(1)
      getdocstringsubject = var(2)
      getdocstringbody = var(3)
      
      
      strFileName = Dir$( "c:\ordner\doc\" & getdocstringfile , 0 )   

      If strFileName <> "" Then
         
         Open "c:\ordner\doc\" & getdocstringfile For Input As fileNum%
         Set newdoc = db.CreateDocument
         Call newDoc.ReplaceItemValue("FORM","Memo")
         Call newDoc.ReplaceItemValue("Sendto", getdocstringmail)
         Call newDoc.ReplaceItemValue("Subject", getdocstringsubject)
         
         Set rtitem = New NotesRichTextItem( newdoc, "Body" )
         Call rtitem.EmbedObject(EMBED_ATTACHMENT,"", "c:\ordner\doc\" & getdocstringfile )
         Call rtitem.AddNewline(2)
         Call rtitem.AppendText(getdocstringbody)         
         Call newdoc.Send(True)
         newdoc.Save True,False   
         countvar = 1
                  
      End If
      
   Loop Until fileName$ = ""
   
   Exit Sub
fehlermeldung:
   
   Print "Error" & Str(Err) & ": " & Error$
      
End Sub

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln