Cocain писал(а):
одскажите, как вызвать findfirst
Я сделал печать директории. Почему-то на spf.sf.net не закоммитить.
Кидаю сюда
Код:
REQUIRE { ~mak\locals4.f
REQUIRE /WIN32_FIND_DATA ~ac\lib\win\file\findfile.f
REQUIRE [IFNDEF] ~nn\lib\ifdef.f
REQUIRE $! ~mak\place.f
[IFNDEF] BREAK : BREAK POSTPONE EXIT POSTPONE THEN ; IMMEDIATE [THEN]
CREATE WIN32_FIND_DATA /WIN32_FIND_DATA ALLOT
CREATE TP_DIR 0x101 ALLOT
0 VALUE FIND-ID
: FIRSTFILE ( addr len -- FLG )
CR ." FIRSTFILE=" 2DUP TYPE CR
TP_DIR $!
0 TP_DIR COUNT + C!
FIND-ID IF FIND-ID FindClose DROP THEN
WIN32_FIND_DATA TP_DIR 1+ FindFirstFileA DUP TO FIND-ID
-1 = ;
: NEXTFILE ( -- flg )
WIN32_FIND_DATA FIND-ID FindNextFileA ;
: GET-DIR-FILE-NAME ( -- addr len )
WIN32_FIND_DATA cFileName ASCIIZ> ;
: GET-DIR-ATTR ( -- u )
WIN32_FIND_DATA dwFileAttributes @ ;
0x10 CONSTANT isdir \ dir ?
: GET-DIR-SIZE ( -- u )
WIN32_FIND_DATA nFileSizeLow @ ;
: DIR.
GET-DIR-FILE-NAME TYPE
GET-DIR-ATTR isdir AND IF 9 EMIT ." <DIR>" THEN
CR ;
: *DIR
TP_DIR $!
S" \*.*" TP_DIR $+!
TP_DIR COUNT
FIRSTFILE IF BREAK
0
BEGIN DIR.
1+ DUP 0xF AND 0=
IF CR ." q - exit"
KEY 0x20 OR [CHAR] q = IF DROP EXIT THEN
THEN
NEXTFILE 0=
UNTIL DROP
;
: DIR PARSE-NAME *DIR ;
Cocain писал(а):
Позволяет ли форт писать с ассемблерскими вставками?
http://spf.cvs.sourceforge.net/viewvc/spf/devel/~yz/lib/filename.f?view=loghttp://spf.cvs.sourceforge.net/viewvc/spf/devel/~mak/WAPI.F?view=log