Domino 9 und frühere Versionen > ND6: Entwicklung

Attempt to access unitialized dynamic arra

(1/4) > >>

Barbara:
Hallo zusammen,
meine Aufgabenstellung:
- user scannt Dokumente, legt sie auf ein definiertes Verzeichnis
- in einer NotesDB wurden Angaben zu den einzelnen Dokumenten gemacht (Mehrfachfelder in einem Dokument)
- per Knopfdruck werden einzelnen Notesdokumente erstellt, die umbenannten Dateien jeweils passend in die neu erstellten Dokumente als Attachment eingefügt.

Funktioniert dank Filesystem Class auch super. Jetzt bin ich bei der Fehlerabfrage. Sind keine Dateien im Verzeichnis abgelegt, soll eine Klartextmeldung kommen. mein script:

Function renamefile(strpath, ort As String)
   Dim datum As notesdatetime    
   Dim fso As Variant
   Dim folder As Variant
   Dim newfile As Variant
   Dim oldfile As Variant
   Dim files() As String
   Dim newname() As String
   Dim ymd As String
   Dim endung As String
   Dim i As Integer
   
   'Dateien im Ordner auslesen"
   Set fso = CreateObject( "Scripting.FileSystemObject" )
   If Not Isempty(fso) Then   
      Set folder=fso.getfolder(strpath)
      Forall file In folder.Files
         Redim Preserve files(i)
         files(i) = file.Name
         i= i+ 1
      End Forall
      
   'neuen Namen zusammensetzen
      If Isarray(files) Then
         Set datum= New notesdatetime (Today)   'Aktuelles Datum
         ymd=Format(Year(datum.Dateonly),"0000")+Format(Month(datum.Dateonly),"00")+Format(Day(datum.Dateonly),"00")
         For n=0 To Ubound(files)
            endung=Strrightback(files(n),".")
            Redim Preserve newname(n)
            newname(n)= strpath + ort + ymd + Cstr(n+1)+ "." + endung
         Next
      Else
         Msgbox "Es sind keine Dateien im Ordner!"
         Exit Function
      End If

Mein Problem: Isarray(files) ist immer true, daraus resultiert obige Fehlermeldung bei "For n=0 To Ubound(files)"
habe auch mit "Not isempty(files)" probiert, das funktioniert auch nicht.

Wie frage ich ab, ob es dieses array gibt?
Ich weiß, diese Frage gab es hier schon öfter, aber mit den Lösungsansätzen komme ich jetzt nicht weiter.

Hat jemand eine Idee?

Gruß
Barbara

DerAndre:
Das ist Richtig, das Du ein True bekommst.

Aus der Hilfe:

Dim arrayFixed(1 To 5)   
Dim arrayDynam()
Print IsArray(arrayFixed)     ' Output:  True
Print IsArray(arrayDynam)     ' Output:  True

Wenn Du auf UBound(files) > 0 fragst dann kommst Du weiter.

Barbara:
Hallo André,
auch das bringt mir die Fehlermeldung.

Ich werde jetzt die brutale Methode anwenden und die Datenbank ganz neu erstellen. Mal gucken was dann passiert.

Barbara

DerAndre:
Das wird auch nichts bringen...

Ist zwar aus R4 Zeiten aber ich glaube da hat sich nichts geändert.  :P

http://atnotes.de/index.php?topic=3167.0

Wenn ich falsch Liege korrigiert mich.

Barbara:
Richtig hat nichts gebracht.


"if not(files is nothing)" wird beim Speichern schon als Fehler im script erkannt => Type mismatch

Das kann es doch nicht sein, dass man bei so einer "Popelabfrage" 'ne neue Klasse braucht?
das zeigt mir der Debugger: siehe Anhang

Barbara

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln