Object Oriented XBASE Forum


【ジャンル】ドキュメント整理
【バージョン】Ver7.0対象ですが、Ver8.0-9.0でも動作可
【ご提供】「株式会社サラト」http://www.salat.co.jp 様よりご提供を頂きました。ありがとうございます。
--------------------------------------------------------------------------
VFPのフォームファイルのドキュメントに役立つかも知れません
SCXファイルの中身を一まとめにしてテキストファイルに出力します
SCXファイルはテーブルと同じ構造でしたから、その内容(大半がMEMO)をテキスト化
したものです
これでテキスト化しておくと、個々の項目のイベント内容や状態をいちいち開かなく
ても確認できることぐらいです

@SAYやSET ALTERNATEを使用していますので、そのあたりは適当に変更してください


**********************************************************************
*
*     SCX2TXT (FORM データの内容をTEXT化する)
*
*   引数 SCX名 フルパス指定(拡張子なし) 同じ場所にSCTも必要です
*      
*      出力は同じところに拡張子 .VFT として出力します
*
*   基本はバッチ処理です    
*
***********************************************************************
PARAMETERS  PR_SCX
*  ★★★ ↓必要に応じて変更してください
SET  ESCAPE              OFF 
SET  OPTIMIZE        ON    
SET  TALK                OFF
SET  VIEW                OFF
SET  EXCLUSIVE           OFF
SET  LOCK            ON    
SET  SYSMENU             OFF
SET  STATUS              OFF
SET  STATUS BAR          OFF
SET  DELETE          ON    
SET  SAFETY              OFF
SET  CONFIRM         ON    
*            ↓ これは変更不可
SET  CONSOLE             OFF    
***  
*  ★★★ ↓必要に応じて変更してください
*ON ERROR DO ERRPROC 

@  20,40  SAY  "SCXドキュメント変換中"
IN_FILE  =  PR_SCX  +  ".SCX"
@  21,40  SAY  IN_FILE
IF  .NOT. FILE(IN_FILE)
    @ 22,40 say "FILE がありません"
    wait
    QUIT
ENDIF
*  出力ファイルの拡張子↓必要なら変更してください
OUT_FILE = PR_SCX + ".VFT"
*  ALTERNATE を使ってること自体が時代遅れですよね(^^ゞ
SET ALTERNATE TO (OUT_FILE)
SET ALTERNATE ON
? "■■■ " + IN_FILE + " -----------START"
? " " 
SELECT  1
USE  (IN_FILE)
GO TOP
*  ★★★    ↓必要に応じて変更してください
SET MEMOWIDTH TO 100
DO WHILE .NOT.EOF()
    SET ALTERNATE TO (OUT_FILE) ADDITIVE
    SET ALTERNATE ON
    ? "------------------------------------------------------------------"
    ? PLATFORM
    ? "-----------------------------------------------"

    IF .NOT.EMPTY(CLASS)    
        ? "■CLASS:"
        MEM_POS=ALINES(MEM_WK,CLASS)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF

    IF .NOT.EMPTY(CLASSLOC) 
        ? "■CLASSLOC:"
        MEM_POS=ALINES(MEM_WK,CLASSLOC)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF

    IF .NOT.EMPTY(BASECLASS)
        ? "■BASECLASS:"
        MEM_POS=ALINES(MEM_WK,BASECLASS)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF


    IF .NOT.EMPTY(OBJNAME)
        ? "■OBJNAME:"
        MEM_POS=ALINES(MEM_WK,OBJNAME)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF

    IF .NOT.EMPTY(PARENT)
        ? "■PARENT:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,PARENT)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    IF .NOT.EMPTY(PROPERTIES)
        ? "■PROPERTIES:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,PROPERTIES)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    IF .NOT.EMPTY(PROTECTED)
        ? "■PROTECTED:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,PROTECTED)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF  

    IF .NOT.EMPTY(METHODS)
        ? "■METHODS:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,METHODS)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    IF .NOT.EMPTY(OLE)
        ? "■OLE:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,OLE)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    IF .NOT.EMPTY(OLE2)
        ? "■OLE2:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,OLE2)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    IF .NOT.EMPTY(RESERVED1)
        ? "■RESERVED1:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,RESERVED1)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    IF .NOT.EMPTY(RESERVED2)
        ? "■RESERVED2:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,RESERVED2)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    IF .NOT.EMPTY(RESERVED3)
        ? "■RESERVED3:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,RESERVED3)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    IF .NOT.EMPTY(RESERVED4)
        ? "■RESERVED4:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,RESERVED4)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    IF .NOT.EMPTY(RESERVED5)
        ? "■RESERVED5:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,RESERVED5)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    IF .NOT.EMPTY(RESERVED6)
        ? "■RESERVED6:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,RESERVED6)
        FOR I = 1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    IF .NOT.EMPTY(RESERVED7)
        ? "■RESERVED7:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,RESERVED7)
        FOR I=1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    IF .NOT.EMPTY(RESERVED8)
        ? "■RESERVED8:"&&  +CHR(13)
        MEM_POS=ALINES(MEM_WK,RESERVED8)
         FOR I=1 TO MEM_POS
        ? MEM_WK[I]
        NEXT
    ENDIF 

    SELECT  1
    SKIP
ENDDO
? "■■■ " + IN_FILE + "   -----------END"
? " " 
SET ALTERNATE TO
QUIT


Copyright(c) TANAKA-KI 2004