Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: RvM am 24.01.06 - 13:51:53
-
???
Ich habe ein großes Problem:
Ich lese aus einem Unterverzeichnis alle enthaltenen PDFs ein erstelle jeweils ein Dokument und attache pro Dokument ein PDF.
Nun kann es vorkommen, das im filename des PDFs nicht webkonforme Sonderzeichen wie "%" "[" "]" etc. vorkommmen.
Gibt es die Möglichkeit von Notes, vor dem Einlesen der PDFs diese im Unterverzeichnis namentlich zu ändern, sodaß solche Sonderzeichen eliminiert werden?
-
Mit dem Name-Statement kannst Du das File umbenennen.
Bernhard
-
mit Name kann in Script eine Datei umbenannt werden. Die Entfernung der Zeichen müsste entwickelt werden (Instr, Mid).
-
Die nicht konformen Zeichen kannst Du so herausnehmen:
@ReplaceSubstring(@URLEncode("UTF-8";<String>);"%";""))
das Ganze dann mittels Evaluate...
Andreas
-
Erst einmal danke, aber wie kann ich denn Formel mit Script kombinieren?
Ich bin leider kein Großer Scripter. Die von mir eingesetzten Scripts habe ich aus dem Netz
*schäm*
-
Schau Dir in der DesignerHelp mal Evaluate an - da ist die Function/Statement beschrieben und näher erläutert.
Bernhard
-
siehe
http://atnotes.de/index.php?topic=28334.0
Andreas
-
Oops, den BP-Artikel hätte ich nicht vergessen dürfen ...
-
THX euch allen - damit kann ich was anfangen.
-
Ich brauche Euch doch noch mal.
Ich habe ein Script, das mir die Dateiennamen aus einem Verzeichnis einließt. Das läuft auch einwandrei.
Nun wollte ich die Tipps von Glombi reinziehen und habe wie folgt das Script mal probeweise erweiter:
folder = BrowseFolder ("")
pathName$ = folder+"\*.pdf"
fileName$ = Dir$(pathName$, 0)
Do While fileName$ <>""
filename = filename$
PDFname =folder+"\"+fileName$
'Formelanweisungen als Kontante festlegen
Const strFormula = |@ReplaceSubstring(@URLEncode("UTF-8";filename);"%";""))|
varResult = Evaluate(strFormula)
Messagebox varResult
Leider bekomme ich folgende Fehlermeldung:
"Operation failed"
Was mache ich falsch?
-
Es muss so heissen:
Const strFormula = |@ReplaceSubstring(@URLEncode("UTF-8";"| + filename + |");"%";""))|
Andreas
P.S.: Möge mir Bernhard die "+" verzeichen ;)
-
???
"Not a constant:FILENAME"
Muss ich da noch evtl. irgendetwas dimensionieren?
-
Du kannst vermutlich in einer Konstanten keine Variable verwenden, sonst wärs ja keine Konstante mehr. Wenn du strFormula als gewöhnlichen String deklarierst wirds wahrscheinlich funktionieren.
-
Thomas hat vollkommen Recht: In Constants (wozu an dieser Stelle auch?) sind Variablen prinzipiell nicht erlaubt.
@Glombi: Das "+" für Strings ist für mich wie (Extrem-)Fliegen ohne Schleudersitz, Fahren ohne Sicherheitsgurt, (aktuell) das Dach vom Schnee räumen ohne Leine. Es passiert fast nie was, aber wenn dann doch, beisst man sich vorher nochmal in den Allerwertesten, aber ... Es tut einfach nicht not. Und die Nebenwirkungen sind bekannt.
Bernhard
-
Dank eure Hilfe bin ich schon weiter.
Nun aber kommt das nächste Problem. Beim Umbennen des Files erhalte ich ein "File not Found".
Das Script sieht (auszugsweise) wie folgt aus:
Dim session As New NotesSession
Dim eval As Variant
Dim vc As NotesViewEntryCollection
Dim db As NotesDatabase
Dim boxType As Long, answer As Integer
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Dim pdfname As String
Dim filename As String
Dim twoLiner As String
Dim item As NotesItem
Dim folder As String
Dim view As NotesView
Dim varResult As Variant
Dim strFormula As String
Dim NewName As String
...
folder = BrowseFolder ("")
pathName$ = folder+"\*.pdf"
fileName$ = Dir$(pathName$, 0)
Do While fileName$ <>""
filename = filename$
PDFname =folder+"\"+fileName$
'Formelanweisungen als Kontante festlegen
strFormula = |@ReplaceSubstring("|+filename+|";"%";"")|
varResult = Evaluate(strFormula)
NewName$ = VarResult(0)
Name filename As NewName
.. und beim Name-Aufruf haperts dann.
Kann ich nochmals auf die Hilfer der Scripter rechnen?
-
Was sagt den der Debugger über den Inhalt der Variablen filename und NewName?
Axel
-
filename = filename$
PDFname =folder+"\"+fileName$
...
Name filename As NewName
müsste es dann nicht lauten
Name PDFName As folder & "\" & NewName
-
:D
Thx diali - es funzt!!!!!!!!