Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: lotus blue am 29.08.05 - 14:02:09
-
Hallo,
ist es möglich, einen Anhang (txt) nach bestimmten Werten (Dateinamen usw.) zu durchsuchen und diese dann in ein Feld zu übernehmen?
Habe dazu noch nichts passendes gefunden.
Ein hoffender lotus blue. ::)
-
Wenn du dir einen Parser schreibst, dann ja.
-
Wenn du dir einen Parser schreibst, dann ja.
;D ;D ;D ;D :o :o :o :o :o :o :o :o :o ??? ??? ??? ???
-> :-: Ja dann geht es wohl nicht
-
rückst du mit ein paar Informationen zum Aufbau der Textdatei raus ??
-
Ja liebend gerne.
Die Datei enthält Text und irgendwo zwischendrin sind Dateinahmen von Fehlern z.B.
........
........
FE658968
FE123566
......
........
Der Name der Fehlerdatei ist immer in dem Format:
FE und dann 6 Ziffern.
Diese sollten gefunden werden.
Vielen Dank schon mal für die schnelle Reaktion auf den Beitrag.
-
Na dann mit Line input und Split und einer kleinen Schleife und length und isnumeric(2 bis 7)
oder mit
Line Input, Instr (und ein wenig Logik um mögliche Mehrfachvorkommen zu überprüfen) und isnumeric dawodu gerade gefunden wurdest (2bis7).
Ach ja, das ganze ergänzt um File Handling.
Findet man übrigens alles in der Online Hilfe.
-
Das sollte doch so in der Richtung funktionieren:
datfile="File.txt"
FileNum = FreeFile()
Open datFile for Input as #FileNum
Do While Eof(FileNum)<>-1
Input #FileNum, qString
if Left(qString,2) = "FE" then
Msgbox "gefunden"
end if
Loop
-
Aja Thomas so hätte es man auch erklären können. ;D
Aber der Rest ist ja dann doch nur noch Verschönerung
-
Lass ihn doch auch ein wenig selber denken. ;)
Roberts Methode funktioniert übrigens dann und nur dann, wenn die Dateinamen immer an Anfang einer Zeile stehen.
-
Könnte man auch mit REGEXP machen ;D
Class RegExp
''' RegExp -- use VBScript RegExp object to provide regular expressions
'
' 2004-06-03 David Phillips, rfdinc.com First version.
Public matches As Variant
Public oRegExp As Variant
' VBScript RegExp properties
Public Pattern As String
Public IgnoreCase As Boolean ' default = False
Public Global As Boolean ' default = False
Sub new ()
Set oRegExp = CreateObject ("VBScript.RegExp")
End Sub
Public Function Match (source As String, pattern As String, matches As Variant) As Boolean
' RegEx.Match -- scan source for pattern, set matches collection and return true if any
' (Can't call it Execute as that collides with LotusScript built-in function and statement.)
With oRegExp
.Pattern = pattern ' regular expression to match
.IgnoreCase = IgnoreCase
.Global = Global
Set matches = .Execute (source) ' do match
Match = (Not 0 = matches.count)
End With
End Function
Public Function Replaces (source As String, pattern As String, replacement As String) As String
' RegEx.Replaces -- scan source for pattern, if found substitute replacement, return result
' (Can't call it Replace as that collides with LotusScript built-in function.)
With oRegExp
.Pattern = pattern
.IgnoreCase = IgnoreCase
.Global = Global
Replaces = .Replace (source, replacement) ' do replace
End With
End Function
Public Function Test (source As String, pattern As String) As Boolean
' RegEx.Test -- scan source for pattern, return true if found
With oRegExp
.Pattern = pattern
.IgnoreCase = IgnoreCase
Test = .Test (source)
End With
End Function
End Class
-
Ja ist eh noch etwas zum machen das war ja der kleinere "Standard" Teil. ;)
-
Ja Ulrich du musst schon wieder mal übertreiben. ;D ;D ;D
-
Ein fettes Dankschön an Euch.
Wahnsinn.
Werd es mal probieren ob es schon geht ;D
Nein, Danke nochmal.
-
Genau Ulrich. Das ist jetzt aber wirklich mit Spatzen auf Kanonen geschossen. 8)
Außerdem musst du da noch abprüfen ob VBScript überhaupt als Objekt vorhanden ist und Platformunabhängig ist das jetzt auch nicht. :P
-
Könnte man auch mit REGEXP machen ;D
Das könnten wir doch eigentlich auch in die Lib.Application.Validation im !!Help!! mit einbauen. Oder?
-
Könnte man auch mit REGEXP machen ;D
Das könnten wir doch eigentlich auch in die Lib.Application.Validation im !!Help!! mit einbauen. Oder?
Eingebaut. Jetzt müssen wir das nur noch testen.
-
und die Regular Expression für die Dateien wäre dann ^FE[0-9]{6}. Oder?
-
Wobei die Klasse scheinbar nicht korrekt mit den Quantoren zurechtkommt.
Zumindest liefert er mir für diesen Begriff FE[0-9]{6} immer False zurück.
Mit diesem Begriff FE[0-9][0-9][0-9][0-9][0-9][0-9] bekomme ich True.