Hallo Andi,
Ich möchte gerne ein Array aus geöffneten Dateien, zwecks Schreiben, mitführen, bekomme aber immer die Fehlermeldung "out of range". Weißt Du hier Rat? Vielen Dank im Voraus.
Die entscheidenden Auszüge aus meinem Code:
-----------------------------------------------------
Option Explicit
Sub CATMain ()
Dim Datastreams() As TextStream
Dim Dateien() As CATBSTR
Dim TDatei () As File
Dim Counter As Integer
Counter = 0
Dim Anzahl As Integer
Anzahl = InputBox ("Anzahl der zu messenden Hierachie-Ebenen eingeben")
'Oeffnen
ReDim Datastreams(Anzahl) As TextStream
ReDim Dateien(Anzahl) As CATBSTR
ReDim TDatei (Anzahl) As File
Dim k As Integer
For k = 0 TO Anzahl
Dateien(k) = CATIA.FileSelectionBox ("Datei auswählen", "*.txt", CATFileSelectionModeSave)
If Dateien(k) <> "" Then
Set TDatei(k) = CATIA.FileSystem.GetFile (Dateien(k))
Set Datastreams(k) = TDatei(k).OpenAsTextStream ("ForAppending")
End If
Next
MsgBox LBound(Datastreams)
MsgBox UBound(Datastreams)
Produktauslesen CATIA.ActiveDocument.Product , Counter , Datastreams()
'!!! Hier kommt die Fehlermeldung: "Datastreams out of range"
End Sub
Sub Produktauslesen (P As Product , OpenedFiles() As TextStream )
.... Definition des Sub
.....und schließlich rekursiver Aufruf
For i = 1 to PP.Count
Produktauslesen PP.Item(I) ,OpenedFiles()
Next
End Sub
-----------------------------------------------------------------
Lasse ich die Klammern hinter "Datastreams" beim Aufruf weg bekomme ich bei "OpenedFiles()" während des rekursiven Aufrufs die gleiche Fehlermeldung.
------------------
Matthias
-----------------
Catia V5R14
Unix- Workstation
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP