Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: adminnaddel am 23.10.02 - 15:14:31
-
hallo liebe gemeinde,
mal wieder etwas ganz komische zur:
eine form welches ein FIELD enthält und eine datei händisch eingetragen wird (zB datei.txt)
ein weiteres FIELD "Pfad" welches berechnet ist.
es soll nun zB im event postsave ein script ablaufen, das die Datei auf der festplatte sucht und dann den pfad automatisch ins FIELD "Path" einträgt.
eine weitere möglichkeit wäre, zB neben dem feld es mit einem button zu steuern, ABER nicht händisch und man möchte nicht mit der suche konfrontiert werden.
also selber suchen muss das script schon!
vielleicht hat ja schon einer von euch profis so etwas in seiner schatzkiste, wäre echt toll.
grüsse aus hamburg
-
... bist du sicher mit dem "PostSave" ???
ata
-
nein, aber wäre ja ne möglichkeit beim speichern des docs, automatisch durch ein script es zu suchen.
es kann aber auch durch ein agent oder einem button geschehen.
wichtig ist nur, es soll die datei nicht händisch gesucht werden und der path automatisch eingetragen werden.
grüsse
-
...
nein, aber wäre ja ne möglichkeit beim speichern des docs, automatisch durch ein script es zu suchen.
... da ist das Speichern bereits hinter dir. Du meinst sicherlich QuerySave, da liegt das Speichern noch vor dir.
Den Pfad zu einer Datei suchen, das funzt bestimmt irgendwie über die Win-API... da bin ich nicht so der Power-User...
ata
-
@admin,
schau mal hier nach...wie Du bemerken wirst, hast Du dazu selbst was gepostet. In diesem Link ist ein Bezug zu einem MP3 Tool, daß nach mp3 Files sucht. Ist doch alles dabei, was Du benötigst. Auch eknori hat dazu was gepostet mit einem eigenen Tool. Na, klingelts wieder?
http://www.atnotes.de/index.php?board=7;action=display;threadid=2042
-
@Rob Green,
net von dir, mich daran zu erinnern!doch ist das ja nicht 100% das was ich suche.
händisch die verzeichnisse zu durchsuchen, ja daran kann ich mich erinnern, aber diese funktion soll automatisiert werden.
irgendwelche wagen abweichungen von schon gepostetem, bringt mir zZ wenig.
das mit querrysave ist genau richtig, keine ausreden, aber ich bin noch neu ;D
wenn diese funktion des suchens über api laufen soll, habe ich sowieso verloren. denn wofür steht api 8)
ok, wenn es keine gescheiten beiträge zu dieser vorstellung gibt, muss ich mir wohl was anders überlegen, schade.
grüsse aus der der hansestadt hamburg
-
Da muß ich noch mal nachfragen; in das eine Feld trägst du einen Dateinamen ein, ohne zu wissen, wo die datei liegt. Richtig ??
OK, dann soll Notes die Datei suchen und den kompletten Pfad in ein zweites Feld eintragen.
Richtig ??
Das Suchen einer Datei auf der FP oder einem Netzlaufwerk ist nicht so sehr kompliziert. Für solche Fälle habe ich immer ein paar Code snippets in der Tasche.
Was machst du denn, wenn es mehr als eine Datei mit diesem Namen gibt ??
Und was ich immer gerne wissen möchte ist; wie sieht die konkrete Anwendung aus ? Welchen Zweck verfolgt die Funktion. Einen Pfad zu einer datei zu finden ist die eine Seite, aber in welchem Kontext steht die Funktion ??
Ulrich
-
guten morgen @eknori,
eine produktsoftwareDb steckt dahinter, welche aus verschiedenen gründen files lokalisieren soll.
sei es downloads oder schon vorhandene files die verschoben oder geshared sind.
es kommt natürlich nun noch die überlegung hinzu, das wenn die datei verschoben wird, ein agent in regelmäßigen abständen die vorhanden path überprüfen muss und changen muss.
die möglichkeit der doppelten belegungen einenfile-name ist nicht auszuschließen, aber wird eher nicht vorkommen.
wenn ja, sollte es hier ein feld für ausweichmöglichkeiten geben.
als attachment soll die datei nicht attached werden, es reich die globale übersicht mit pathname.
grüsse
-
was ist denn wenn user A das Dokument anfasst der das File woanders lokal liegen hat als User B, der als nächstes das Dok anfasst.
Oder handelt es sich um eine reine lokale Anwendung ?
Gruss
till
-
@all,
lokale files die aber zum sharing bereitgehalten werden.
auch der user kann lokal das file verschieben, deshalb sollte ja auch ein agent dieses 1 täglich überwachen.
grüsse
-
@all,
mhhhhh....hat denn keiner ne ahnung, auch ohne zu verstehen was ich möchte, oder vielleicht ne Lösung?
geht das automatisierte suchen denn jetzt nur ne api funktion, oder auch etwa mit lotusscript?
also ich wäre wirklich überglücklich, wenn sich dann doch noch jemand melden würde!
danke
-
in der von Rob Green erwähnten MP3-DB findest du glaub ich ne Funktion die rekursiv alle Verzeichnisse der FP durchsucht. Nach Mp3s halt und da kommst du an die reihe und änderst das auf den gewünschten Feldinhalt des Notesdokumentes...
gruss / till
-
Hmmm,
viel Spass bei einer 120 GB-Platte mit tausenden von Verzeichnissen (was nicht auszuschliessen ist!). Wenn dann der User beim Querysave innerhalb einer angemessenen Zeit (bei einigen Usern mehr als 2 - 3 Sekunden :() keine Reaktion des Rechners mehr bekommt, drückt der Reset.
Denk an Murphys Gesetz, alles was passieren kann, wird passieren. In der Programmierung würde ich mich strikt weigern, so etwas einzubauen.
Gruss Kokomiko
-
@Till_21,
ich habe zZ kein winrar auf dem rechner, abe rich kann mich erinnern, dass ich mich schon einmal damit befasst habe. (darmals auch schon die funktion der mp3-db nicht verstanden ;D)
und wenn ich mich nicht irre, liesst die db nicht den feldwert aus, sondern wartet geduldig auf eine eingabe. es kommt dann schon nahe an dem ran, für welches ich es benötige.
@Kokomiko,
selbst wenn ich jedem user es unter jubeln wollte, bleibt es bei 1500 usern a' 2GB kapazität.
ich benötige solch ein funktion aber erst einmal zu test zweck.
hat einer den die mp3-db noch liegen, ausser in winrar gepackt?
grüsse aus hamburg
-
http://www-10.lotus.com/ldd/sandbox.nsf/Search?SearchView&Query=mp3&SearchOrder=1&SearchMax=0&SearchWV=FALSE&SearchFuzzy=FALSE&Start=1&Count=10
-
@naddel : bekommst du unter www.winzip.com www.rarsoft.com www.winace.com
>>und wenn ich mich nicht irre, liesst die db nicht den feldwert >>aus, sondern wartet geduldig auf eine eingabe. es kommt >>dann schon nahe an dem ran, für welches ich es benötige.
es kann nicht das problem sein, das umzutürken, oda ?
gruss, till
-
Ich poste einfach mal das, was ich zum Thema in der Schublade habe.
Die Lösung funktioniert; hab es mal probiert und meine 500GB gesamtspeicher nach einer Datei durchsucht. Ergebnis : 5 Minuten
Ich denke, du solltest einen anderen Ansatz wählen und das Verschieben ausschlißlich aus dem Notes Dokument ermöglichen. Dann hast du den Pfad immer im Griff.
Mannigfaltige Lösungen zur Suche eines Dateinamens in einem Verzeichnis (inklusive Unterverzeichnissen) sind bekannt
Sie alle zeichnen sich dadurch aus, mehr oder weniger komplex zu sein, vor allem aufgrund der Notwendigkeit, ein rekursives Durchsuchen aller Unterverzeichnisse zu ermöglichen.
Eine sehr einfache (leider aber auch funktional sehr eingeschränkte) Möglichkeit findet sich in der Funktion SearchTree:
Declare Function SearchTree Lib "imagehlp.dll" Alias "SearchTreeForFile" (ByVal lpRootPath As String, ByVal lpInputPathName As String, ByVal lpOutputPathBuffer As String) As Long
'Diese Funktion erlaubt die Übergabe des Startverzeichnisses der Suche in lpRootPath und die Angabe eines Dateinamens im Parameter lpInputPathName - letzterer darf auch einen Teil der 'erwünschten Pfadangabe, nicht aber Wildcards (?, *) enthalten. Für den Parameter Buffer ist ein Stringpuffer zu initialisieren, in dem die Funktion den gefundenen Dateinamen 'zurückgibt, sofern ihr Rückgabewert ungleich 0 ist. Ist der Rückgabewert 0, so konnte keine entsprechende Datei gefunden werden:
Sub Click(Source As Button)
Dim Path As String, RetVal As Long
Dim lpRootPath As String, lpInputPathName As String
lpRootPath = "c:\"
lpInputPathName = "Winword.exe"
Path = Space(512)
RetVal = SearchTree(lpRootPath, lpInputPathName, Path)
If RetVal <> 0 Then
Msgbox Path
Else
Msgbox "File not found"
End If
End Sub
'Das alles sieht sehr bequem aus (und ist es auch), bringt jedoch einige Nachteile mit sich: Zum einen gibt es keine Möglichkeit, die Suche (die bei größeren Verzeichnisstrukturen durchaus ein 'wenig Zeit in Anspruch nehmen kann) zu unterbrechen, zum zweiten stellt die Unmöglichkeit der Nutzung von Wildcards eine unschöne Einschränkung dar. Weiterhin ist es nicht möglich, mehr als 'einen gefundenen Dateinamen zu ermitteln - befindet sich etwa in einem Unterverzeichnis mit Fundstelle ein weiteres Unterverzeichnis mit einem Dateinamen, der den Suchkriterien entspricht, so 'kommen Sie mit SearchTree nicht weiter. Letztlich ist anzumerken, daß die Suchreihenfolge der einzelnen Unterverzeichnisse von lpRootPath nicht beeinflussbar ist, sondern vom Dateisystem 'vorgegeben wird.
Un nimm es mir nicht übel, wenn ICH gerne verstehen möchte, was mit so einer Funktion bezweckt ist. Manchmal ist man nämlich betriebsblind und denkt schon mal in die falsche Richtung.
eknori
-
... da ist das Speichern bereits hinter dir. Du meinst sicherlich QuerySave, da liegt das Speichern noch vor dir.
Gehört nicht direkt zum Thema, aber ...
... das ist ja der Witz am PostSave-Event (wüsste nicht, wofür das sonst gut wäre): Du kannst im PostSave durchaus noch Feldwerte setzen und die werden dann lustig mit gespeichert.
Sehr praktisch z.B. wenn man den Anfang eines RichText-Feldes als Text für die Darstellung in Ansichten zur Verfügung haben will. @Abstract funktioniert in Ansichten nur sehr unzuverlässig, also muss man ein entsprechendes Feld im Doc haben. Da aber das RichText-Feld erst nach dem Speichern Teil des Dokuments wird, musste man in R4 mindestens Prüfen, ob das Doc neu ist und in diesem Fall umständlich das Doc zwangsspeichern und aus dem Backend nochmal öffnen um das Abstract zu berechnen.