Wat is een makkelijke manier om in submappen te zoeken naar een opgegeven bestand met lisp?
Voorbeeld:
D:\tekeningen
hier staan dan weer mapjes in zoals:
- Xrefs
- Vervallen
- PLT
En in bv "Xrefs" staan ook weer mapjes:
- Vervallen
- Ontvangen
- enz.
Met de onderstaande code lukt het natuurlijk niet als het bestand in "D:\Tekeningen\Vervallen\" staat:
(setq tmp "Drawing1.dwg")
(setq gevondenbestand (findfile tmp))
Eddy,
Kijk eens naar bijgevoegde lisp functie. In het commentaar staat hoe je hem kan gebruiken
stephan
Zal er misschien morgen naar kijken.
BVD :vreegoe:
Dit is de routine die ik gebruik :
;;; by Peter Jansoone (pj@digitalplantservices.net) 15/3/2011
;;;fe (FindFileSub "c:\\acad\\" "test.txt")
(defun FindFileSub (InFolder FileName / Folderlist2 Folderlist2item )
(if (findfile (strcat InFolder FileName))
(setq Folderlist (list (findfile (strcat InFolder FileName))))
)
(vl-load-com)
(setq Folderlist2 (vl-directory-files InFolder nil -1))
(if Folderlist2
(foreach Folderlist2Item Folderlist2
(if (and (/= Folderlist2Item ".")(/= Folderlist2Item "..")(/= Folderlist2Item nil))
(progn
(setq sFolder (strcat Infolder Folderlist2Item "/"))
(if (findfile (strcat sFolder FileName))
(setq FolderList (cons (findfile (strcat sFolder FileName)) Folderlist))
)
)
)
)
)
(setq folderlist (reverse Folderlist))
Folderlist
)
Citaat van: sschevers op di 15 03 2011, 13:24:15
Eddy,
Kijk eens naar bijgevoegde :oops: :oops: lisp functie. In het commentaar staat hoe je hem kan gebruiken
stephan
Beste Stephan,
In je Lispbestand heb je 'z-files-in-directory' veranderd in 'Listdirectories',
maar je hebt niet gezien dat de sub recursief is.
Dit zelfs ondanks de naam:
recurse_dir_dirlist.lsp :lol:
Binnen de sub 'z-files-in-directory' wordt namelijk ook 'z-files-in-directory' gebruikt.
'(lambda (d)
(z-files-in-directory
(strcat directory "\\" d)
pattern
nested
) ;_ z-files-in-directory
) ;_ lambda
Zie voor het originele bestand bijv.: DWGRULL van Azarko in http://forums.augi.com/showthread.php?t=101676
Met vriendelijke groet, HofCAD CSI.
Beste Eddy,
Uit een heel ver verleden, komt het bijgevoegde inefficiƫnte DOS kreng. :oops: :oops: :oops: :oops: :oops:
Met vriendelijke groet, HofCAD CSI.
PS Voor wat leukers http://www.theswamp.org/index.php?topic=15057.0
Citaat van: HofCAD op di 15 03 2011, 18:33:52
Beste Stephan,
In je Lispbestand heb je 'z-files-in-directory' veranderd in 'Listdirectories',
maar je hebt niet gezien dat de sub recursief is.
Dit zelfs ondanks de naam: recurse_dir_dirlist.lsp :lol:
Binnen de sub 'z-files-in-directory' wordt namelijk ook 'z-files-in-directory' gebruikt.
'(lambda (d)
(z-files-in-directory
(strcat directory "\\" d)
pattern
nested
) ;_ z-files-in-directory
) ;_ lambda
Zie voor het originele bestand bijv.: DWGRULL van Azarko in http://forums.augi.com/showthread.php?t=101676
Met vriendelijke groet, HofCAD CSI.
HofCad,
Helemaal gelijk. Ik ben er laatst mee aan het rommelen geweest en ik dacht dat dit de juiste versie was. Bij deze het juiste bestand.
stephan
Citaat van: HofCAD op di 15 03 2011, 18:33:52
...
Zie voor het originele bestand bijv.: DWGRULL van Azarko in http://forums.augi.com/showthread.php?t=101676
Met vriendelijke groet, HofCAD CSI.
Ik had het inderdaad gezien nadat ik het op papier had om in de wachtkamer van de dokter te bekijken.
Daarna ben ik gaan met
Google zoeken naar z-files-in-directory.
Ik vond het bij The Swamp ook: http://www.theswamp.org/index.php?topic=15057.0
Maar erg bedankt ik ga er zeker iets mee doen.
PS:
Ik heb zelf ook in DOS wel eens wat gerommeld maar dat is wat anders dan Lisp.
Maar voor de liefhebbers ->> Maak van de code hieronder een *.BAT en plaats het in een map en voer het uit:
ECHO Off
ECHO http://www.computerhope.com/issues/ch000772.htm
ECHO The above command will take the list of all the files and
ECHO all of the information about the files, including size,
ECHO modified date, etc., and send that output to the print.txt
ECHO file.
PAUSE
dir > PrintDir.txt
ECHO dir /b > PrintDir.txt
ECHO This command would print only the file names and not the file information of the files in the current directory.
ECHO dir /s /b > PrintDir.txt
ECHO This command would print only the file names of the files in the current directory and any other files in the directories in the current directory.
ECHO On
ECHO Off
CLS
ECHO.
ECHO Gemaakt door E.F. Lucas
ECHO.
ECHO.
ECHO Dir2Txt maakt een lijst van de map waar dit bestand zich in bevindt.
ECHO Alle bestanden en mappen incl. alle informatie , incl.
ECHO grote, gewijzigd datum, etc., en zet dat in PrintDirAll.txt
ECHO.
ECHO Hierna wordt PrintDirAll.txt geopend.
ECHO.
ECHO.Druk op [Ctrl+C] om te annuleren. . .
PAUSE
ECHO COMMANDO:
DIR > PrintDirAll.txt
ECHO.
ECHO Lijst wordt gemaakt.
ECHO .
ECHO .
ECHO .
ECHO .
ECHO .
ECHO .
ECHO Klaar. . . PrintDirAll.txt wordt geopend
PrintDirAll.txt
ECHO On