Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: RvM am 24.01.06 - 13:51:53

Titel: Filenamen aus Notes vor einlesen ändern
Beitrag 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?
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: koehlerbv am 24.01.06 - 13:56:13
Mit dem Name-Statement kannst Du das File umbenennen.

Bernhard
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: diali am 24.01.06 - 13:59:15
mit Name kann in Script eine Datei umbenannt werden. Die Entfernung der Zeichen müsste entwickelt werden (Instr, Mid).
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: Glombi am 24.01.06 - 14:07:02
Die nicht konformen Zeichen kannst Du so herausnehmen:

@ReplaceSubstring(@URLEncode("UTF-8";<String>);"%";""))

das Ganze dann mittels Evaluate...

Andreas
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: RvM am 24.01.06 - 15:01:19
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*
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: koehlerbv am 24.01.06 - 15:04:35
Schau Dir in der DesignerHelp mal Evaluate an - da ist die Function/Statement beschrieben und näher erläutert.

Bernhard
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: Glombi am 24.01.06 - 15:05:27
siehe
http://atnotes.de/index.php?topic=28334.0

Andreas
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: koehlerbv am 24.01.06 - 15:19:01
Oops, den BP-Artikel hätte ich nicht vergessen dürfen ...
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: RvM am 24.01.06 - 15:24:01
THX euch allen - damit kann ich was anfangen.
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: RvM am 24.01.06 - 20:36:13
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?
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: Glombi am 24.01.06 - 21:22:34
Es muss so heissen:

Const strFormula = |@ReplaceSubstring(@URLEncode("UTF-8";"| + filename + |");"%";""))|

Andreas
P.S.: Möge mir Bernhard die "+" verzeichen  ;)
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: RvM am 24.01.06 - 21:40:09
 ???
"Not a constant:FILENAME"
Muss ich da noch evtl. irgendetwas dimensionieren?
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: animate am 24.01.06 - 22:37:06
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.
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: koehlerbv am 24.01.06 - 23:00:44
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
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: RvM am 25.01.06 - 09:46:33
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?
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: Axel am 25.01.06 - 09:50:53
Was sagt den der Debugger über den Inhalt der Variablen filename und NewName?


Axel
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: diali am 25.01.06 - 10:04:26
filename = filename$
PDFname =folder+"\"+fileName$
...
Name filename As NewName

müsste es dann nicht lauten
Name PDFName As folder & "\" & NewName
Titel: Re: Filenamen aus Notes vor einlesen ändern
Beitrag von: RvM am 25.01.06 - 11:18:12
 :D
Thx diali - es funzt!!!!!!!!