Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: LisaS am 04.09.03 - 15:52:28
-
Hallo,
ich hab mal wieder ein Problemchen.....
Und zwar möchte ich die Anzahl der Reihen in einem Text-Dokument
ermitteln
Bei der Ausführung von folgendem Script, kommt der Fehler Overflow.
Golbal:
Dim giZ As Integer
Dim giFileNum1 As Integer
Dim gsWorkDir As String
Dim gsFileName2 As String
Sub DataCount
giZ=0
giFileNum1% = Freefile()
Open gsWorkDir+gsFileName2 For Input As giFileNum1%
Do Until Eof(giFileNum1%)
giZ=giZ+1
Loop
Close giFileNum1%
End Sub
Hat jemand eine Ahnung, warum das nicht Funzt.
Gruß
Hitcher
-
Kann es sein, daß Du die Grenzen von Integer sprengst ?
Dann muß Du statt dessen Long nehmen ...
HTH,
Bernhard
-
... das wäre auch mein erster Verdacht
ata
-
@all:
Ok, jetzt ist aus giZ(Integer) glZ (Long) geworden
und der Fehler ist weg, dafüf kommt der Agent nicht mehr
aus der Sub Routine DataCount nicht mehr raus. Ich glaube
es liegt irgendwie an der Unti/loop-Schleife.
In meinem Test-File sind übrigens nur drei Zeilen.
Hier mal mein Kompl. Script in der Teilmaske:
Declarations:
Dim gDB As NotesDatabase
Dim gUIDoc As NotesUIDocument
Dim gDoc As NotesDocument
Dim gItem As NotesItem
Dim gsFileName1 As String
Dim gsFileName2 As String
Dim gsWert As String
Dim gsWorkDir As String
Dim gsUnid As String
Dim giFileNum1 As Integer
'Dim giFileNum2 As Integer
'Dim giFileNum3 As Integer
Dim glZ As Long
Dim gvRTitem As Variant
Sub Postopen(Source As Notesuidocument)
Dim workspace As New NotesUIWorkspace
Set gUIDoc = workspace.CurrentDocument
Set gDoc = gUIDoc.document
gsUnid = gDoc.UniversalID
gsWorkDir="c:\"
gsFileName1 = "projekte1.txt" 'Für den Export nach Word
gsFileName2 = "projekte2.txt" 'Für die Berechnug der Anzeige in dem Dokument
gsTmpFile1="tmpprojekte1.txt"
gsTmpFile2="tmpprojekte2.txt"
Detach
DataCount
End Sub
-----------------------------------------------------------------------------------------------------------
Sub Detach
Dim fileCount As Integer
Set gDB = gDoc.ParentDatabase
Set gDoc = gDB.GetDocumentByUNID(gsUnid)
Set gvRTitem = gDoc.GetFirstItem( "ObjCont" )
If ( gvRTitem.Type = RICHTEXT ) Then
Forall o In gvRTitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
fileCount = fileCount + 1
gsWert=fileCount
gsDest=gsWorkDir+"projekte"+gsWert+".txt"
Call o.ExtractFile ( gsDest )
Call gDoc.Save( True, False)
gDoc.SaveOptions = "0"
End If
End Forall
End If
End Sub
--------------------------------------------------------------------------------------------
Sub DataCount
glZ=0
giFileNum1% = Freefile()
Open gsWorkDir+gsFileName1 For Input As giFileNum1%
Do Until Eof(giFileNum1%) ' Warum kommt der Agent hier nicht raus?
glZ=glZ+1
Loop
Close giFileNum1%
End Sub
Gruß
Hitcher
-
Do Until Eof(giFileNum1%)
giZ=giZ+1
Loop
was du da gebaut hast, nennt man eine endlosschleife.
wie willst du denn jemals an das Ende der Datei kommen, wenn du überhaupt keine zeilen der Datei einliest ;D
Dim text As String, fileNum As Integer
fileNum% = FreeFile()
Open "c:\config.sys" For Input As fileNum%
giZ=0
Do Until EOF(1)
Line Input #1, text$
giZ=giZ+1
Loop
Close fileNum%
ich glaube, damit kommst du eher ans Ziel
eknori
-
Genau: "In Ewigkeit, amen!" sprach die Endlosschleife.
Do WHAT Until ...
;-)
-
@all:
Ihr habt ja so recht :)
Jetzt funzt das auch
Danke.
Gruß
Hitcher
-
Mach Dir keine Gedanken - manchmal sieht man ja den Wald vor Bäumen nicht.
Ich habe ja auch nur auf den Overflow gestiert und dabei übersehen, daß das WHAT im Do fehlte ;-)
Häff ä neiss wiekend,
Bernhard