Domino 9 und frühere Versionen > Entwicklung

Die Festplatte nach Feldwerten absuchen.....

<< < (4/4)

Till_21:
@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

eknori:
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.


--- Zitat ---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.
--- Ende Zitat ---

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

harkpabst_meliantrop:

--- Zitat von: ata am 23.10.02 - 15:38:15 ---
... da ist das Speichern bereits hinter dir. Du meinst sicherlich QuerySave, da liegt das Speichern noch vor dir.

--- Ende Zitat ---
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.

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln