Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Dynamix am 23.09.05 - 08:53:24

Titel: Dateipfad aus Windows übernehmen
Beitrag von: Dynamix am 23.09.05 - 08:53:24
Wir nutzen hier eine DB in der u.a. das Brennen von Dateien geprüft und genehmigt wird. Dazu muss von Nutzer der Speicherort der Datei(en) bis auf Ordnerebene angegeben werden.

Derzeit verursachen "selbstverfasste" fehlerhafte und ungenaue Pfadangaben einen hohen zusätzlichen Arbeits- und Zeitaufwand.

Ich suche jetzt eine Möglichkeit um zum Beispiel die Angaben aus der Adressleiste des Explorers oder über eine Funktion ähnlich der "Anhang hinzufügen" in einer für den Nutzer möglichst einfachen Art einzufügen.
Titel: Re: Dateipfad aus Windows übernehmen
Beitrag von: Wilhelm am 23.09.05 - 09:06:54
Hi,

mit LotusScript:

NotesUiWorkspace.OpenFileDialog  

liefert ein Array zurück welches die Pfadangaben der Datei(en) enthält.

Ist sehr gut in der Designer-Hilfe beschrieben.

Gruß

Willi
Titel: Re: Dateipfad aus Windows übernehmen
Beitrag von: Dynamix am 26.09.05 - 07:40:52
Erst mal danke für die schnelle und sorry für meine späte Antwort.  :)

Funktioniert grundsätzlich sehr gut, jedoch hat die Sache einen Hacken. Die Auswahl ist nur auf Dateiebene möglich, d.h. ich muss eine einzelne Datei markieren bevor ich den Pfad übernehmen kann. Wenn der Nutzer die zu brennenden Dateien/Ordner alle einzeln eintragen muss, wird die ganze Sache sehr schnell unübersichtlich.

Gibt es evtl. die Möglichkeit auch nach der Ordnerauswahl den Pfad zu übernehmen?
Titel: Re: Dateipfad aus Windows übernehmen
Beitrag von: Wilhelm am 26.09.05 - 10:14:26
Hi,

afaik geht das mit Bordmitteln nicht. Folgende Lösung ist nicht elegant aber mit wenig aufwand realisierbar:

Erzähl Deinen Anwendern, sie sollen eine Beispieldatei in dem Folder markieren. Dann suchst Du mittels der LS-Funktion instr die Position des letztes Bäck-Släsch heraus und nimmst dann mit der left-Funktion nur den Pfadnamen statt des Dateinamens.

Alles andere wäre vermutlich mit unverhältnismäßig großem Aufwand verbunden.

Gruß

Willi
Titel: Re: Dateipfad aus Windows übernehmen
Beitrag von: Axel am 26.09.05 - 10:38:29
Hi,

vielleicht ist das http://www.atnotes.de/index.php?topic=10524.0 was für dich.


Axel
Titel: Re: Dateipfad aus Windows übernehmen
Beitrag von: Dynamix am 26.09.05 - 16:01:38
@ WilliG

Hilf mir mal bitte auf die Sprünge - wie kann ich mit instr die Position des letzten "\" bestimmen? Nach dem Studium der Hilfe und "Domino Designer R5" kann ich mit der Funktion nur die 1. Übereinstimmung (von links) berechnen. Da der entscheidende  "\" aber idR weiter rechts steht - habe ich da keine Möglichkeit finden können.

Danke

@Axel
Wenn ich das Script nicht völlig falsch verstanden habe geht es in die "andere" Richtung, d.h. etwas wird aus der DB entfernt und nicht wie gewünscht eingefügt. Sobald ich ein wenig Luft habe, wird etwas getestet.
Trotzdem danke und wenn ich mich nicht täusche habe ich dafür in einer anderen DB bereits Verwendung.  ;D
Titel: Re: Dateipfad aus Windows übernehmen
Beitrag von: Gandhi am 26.09.05 - 16:07:27
Das letzte \ findest Du, indem Du das '\' mittels mid suchst (und findest). Dabei suchst Du am besten von rechts... und dann die ermittelte Position an den 'left' Term übergibst.
Titel: Re: Dateipfad aus Windows übernehmen
Beitrag von: Gandhi am 26.09.05 - 16:09:11
Und wenn das nicht geht kannst Du das über die WinAPI auch direkt tun - die Funktion befindet sich im Beispiel von Axel.
Titel: Re: Dateipfad aus Windows übernehmen
Beitrag von: Wilhelm am 26.09.05 - 16:17:39
Hi nochmal,

@Axel: Das ist eine geniale und einfache Lösung!

@Dynamix: Habe das Script analysiert. Du mußt es etwas modifizieren. Die Function und die Declaration kannst du so übernehmen, aus Sub Click kannst Du alles bis auf

 Dim folder As String
 folder = BrowseFolder ("","")

rausschmeissen und hast in Folder den ausgewählten Ordnernamen

Gruß

Willi
Titel: Re: Dateipfad aus Windows übernehmen
Beitrag von: Dynamix am 27.09.05 - 09:00:20
@all

Vielen Dank für die Hilfe.

Habe mich für die wirklich hervorragend funktionierende Lösung von Axel entschieden. Nach einigen kleineren Änderungen ist dies tatsächlich genau das was ich gesucht habe.