Donnerstag, 7. August 2008

Einlesen grosser Verzeichnisse ohne ADIR() / Reading large directories without ADIR()

Im UT kam heute die Frage bzgl. des Einlesens von Dateien aus Verzeichnissen mit mehr als 12800 Dateien auf. ADIR() lieferte einen Error 31 - Invalid subscript reference.

U.a. für solche Fälle steht in Foxpro die Funktion SYS(2000, Skeleton [, 1]) zur Verfügung. Mit ihrer Hilfe können Verzeichnisse über eine Verarbeitungsschleife eingelesen werden. Im folgenden ein kleines Beispiel das sämtliche EXE-Dateien aus dem Windowsverzeichnis zur Anzeige bringt.


LOCAL lcCurDir as String, lcWinDir as String, lcFile as String

lcCurDir = FULLPATH(CURDIR())
lcWinDir = GETENV([windir])

CHDIR (lcWinDir)

lcFile = SYS(2000,[*.exe])

IF !EMPTY(lcFile)
  CLEAR
  ?lcFile
  DO WHILE .T.
      lcFile = SYS(2000,[*.exe],1)
      IF !EMPTY(lcFile)
          ?lcFile
      ELSE
          EXIT
      ENDIF
  ENDDO
ENDIF

CHDIR (lcCurDir)
RELEASE lcCurDir, lcWinDir, lcFile

Montag, 4. August 2008

Neues bei VFPx / VFPx news

Nachdem das OOP Menu Projekt den Status 'Production Release' erreicht hat, gibt es auch schon das nächste Menüprojekt.

Das von LingFeng Shi gemanagte PopMenu Projekt steht als Alfa Release zum Download bereit.

Eine regelmäßig aktualisierte Übersicht der VFPx Projekte gibts hier
http://tomsvfpblog.blogspot.com/2008/02/vfpx-auf-codeplex-aktualisiert.html

und hier (in Englisch)
http://www.codeplex.com/Wiki/View.aspx?ProjectName=VFPX