Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: LisaS am 04.09.03 - 15:52:28

Titel: Overflow! Fehler im LS
Beitrag 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
Titel: Re:Overflow! Fehler im LS
Beitrag von: koehlerbv am 04.09.03 - 15:59:22
Kann es sein, daß Du die Grenzen von Integer sprengst ?
Dann muß Du statt dessen Long nehmen ...

HTH,
Bernhard
Titel: Re:Overflow! Fehler im LS
Beitrag von: ata am 04.09.03 - 16:09:57
... das wäre auch mein erster Verdacht

ata
Titel: Re:Overflow! Fehler im LS
Beitrag von: LisaS am 05.09.03 - 08:50:56
@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
Titel: Re:Overflow! Fehler im LS
Beitrag von: eknori (retired) am 05.09.03 - 09:12:12
Zitat
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
Titel: Re:Overflow! Fehler im LS
Beitrag von: koehlerbv am 05.09.03 - 09:42:15
Genau: "In Ewigkeit, amen!" sprach die Endlosschleife.

Do WHAT Until ...

;-)
Titel: Re:Overflow! Fehler im LS
Beitrag von: LisaS am 05.09.03 - 12:47:25
@all:

Ihr habt ja so recht :)
Jetzt funzt das auch

Danke.

Gruß
Hitcher
Titel: Re:Overflow! Fehler im LS
Beitrag von: koehlerbv am 05.09.03 - 15:57:10
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