Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: HeiCore am 02.03.04 - 09:00:28
-
Hi!
Wie lese ich in einem Agenten aus einer Textdatei 2 bestimmte Zeilen aus?
Diese stehen im Absatz nach dem Wort: "Text:"
Diese sollen in eine Mail gebracht werden, wie auch 2 Dateianhänge.
Wer hilft mir armen Notes-Rookie?
Irgendwann schaffe ich es auch!
;-)
Danke schonmal.
HeiCore
-
... in LS kannst du mit Instr(...) die Position eines Textstrings in einem anderen String suchen. Wenn der Text enthalten ist erhälst du eine Positionsangabe.
Ab da musst du dann verzweigend deuínen Wert suchen mit "if - when"oder "while not - do loop"...
Einen Import aus einer Textdatei habe ich auf meiner Homepage...
ata
-
Hi!
So sieht die Datei aus:
-----------------------------------------------
Erklärung:
Diese Datei enthält die Infos für den Email Versand.
Kopieren Sie die Daten in Ihre Email an die entsprechende Stelle
und erstellen die Dateianhänge
Die Dateien finden Sie unter:
P:\dakotaag\daten\FremdEM\DDD\EBNA0001.auf
P:\dakotaag\daten\FremdEM\DDD\EBNA0001
AN: da@dta.xx.de
Von:
Betreff:22449951
Text:
EBNA0001.auf,348,20040301:1332
EBNA0001,11898,20040301:1332
-----------------------------------------------
Ich möchte ja aber nur die letzten 2 Zeilen in den Body.
Kann ich noch etwas genauere Hilfe bekommen? Bin tatsächlich blutiger Anfänger im "coden".
Ich nehme also deine Funktion.
Aus diesem Array kann ich mir dann mit "Instring" die Position holen?
Gibt es auch soetwas wie: "@Word" in LS?
Danke nochmal.
-
... mein Script liest Zeile für Zeile - du prüfst also jede Zeile auf "Text", dazu brauchst du keinen Instr()
dann noch zwei Zeilen einlesen und du hast was du brauchst...
ata
-
Hi!
Kann ich das mal "kryptisch" bekommen?
Bin völlig überfordert.
Wie bekomme ich denn überhaupt mein sRow in einen String?
Muss ich die Funktion direkt in den restlichen Code einbauen oder kann ich die auch als Funktion stehen lassen?
Hilfe.
-
... wenn du es nicht allzu eilig hast...
ata
-
Danke.
Ich kann es ja nicht eilig haben, weil ohne Ahnung dauert es wahrscheinlich gegen Unendlich!
;-)
Ist das denn viel? So wie es sich anhört doch nicht?
-
... nö ist nicht viel , aber Zeitproblem - du kannst ja mal selbst ein bißchen probieren, vielleicht gelingt es dir dann ja...
ata
-
Hier mein Auszug: (wie es nicht läuft)
sRow ist nach dem Durchlauf der Funktion leer.
'Datenbank, in der das Skript läuft
Set db = Session.CurrentDatabase
'Document erzeugen (für Mail)
Set doc = db.createDocument
'Formularnamen setzen
doc.Form="Memo"
Stop
' Textzeilen auslesen
Call ImportFromFile("G:\KB\KBI\Bruns\Paisy\FremdEM\DD\EBNA0001.txt")
Stop
'Felder setzen
doc.subject="22449951 - DEÜV DD - " & Date
doc.SendTo = Mail_Adresse_KK$
doc.Body = "Test"& Chr(13)_
& Chr(13)_
& Chr(13)_
& sRow
'Anlegen eines RichTextItems / Aufnahme Dateianhang
Set richText = New NotesRichTextItem(doc,"Anhang")
'Dateianhang zuweisen
Set embObject = richText.EmbedObject(EMBED_ATTACHMENT,"", Import1datei$)
Set embObject = richText.EmbedObject(EMBED_ATTACHMENT,"", Import2datei$)
'Mail senden
doc.send False
'Exportdatei löschen
' Kill Importdatei$
End Sub
-
... die Funktion liefert dir ein Array zurück
Dim vArray as Variant
vArray = ImportFromFile( ... )
... damit hast du alle Zeilen in einem Array
Dim i As Long
For i = Lbound(vArray) to Ubound(vArray)
If vArray(i) = "Text" Then
' # Trefffer - in den nächaten zwei Zeilen kommen deine Zeilen...
End If
Next
ata
-
DANKE.
-
... und bitte auf erledigt setzen.