新しく発言する EXIT インデックスへ
WindowsXP上での指定フォルダを開く方法を教...

  WindowsXP上での指定フォルダを開く方法を教えて下さい。 寺嶋 春樹 2007/03/24 10:35:30 
  FileGetNameを実行したときMyDocumentsフォ... 白石和夫 2007/03/24 11:09:30 
   ├GetOpenFileNameの使い方はGetSaveFileName... 白石和夫 2007/03/24 11:16:56 
   └どうも有難うございました。 寺嶋 春樹 2007/03/24 12:04:11 
    └お世話になっております。 寺嶋 春樹 2007/03/25 12:48:55 
     ├MERGEの部分を人力で書き換えていけば問題な... 白石和夫 2007/03/25 13:27:03 
     │├10LETdisp$="テキスト" 白石和夫 2007/03/25 13:31:35 
     │├1000EXTERNALFUNCTIONGetSaveFileName$(dis... 白石和夫 2007/03/25 13:32:19 
     │├1150EXTERNALFUNCTIONGetFileName$(spc$,di... 白石和夫 2007/03/25 13:32:52 
     │├1660SELECTCASEspc$ 白石和夫 2007/03/25 13:33:18 
     │└2000EXTERNALFUNCTIONDWORD$(n) 白石和夫 2007/03/25 13:33:39 
     └「プログラム中に組み入れると、」の部分に... 白石和夫 2007/03/25 13:30:53 
      ├!お手数をお掛けしております。 寺嶋 春樹 2007/03/25 15:56:27 
      ├1010LETdisp$="テキスト" 寺嶋 春樹 2007/03/25 15:59:10 
      ├2600WHENEXCEPTIONIN!現場の登録済み階一覧... 寺嶋 春樹 2007/03/25 16:12:25 
      ├5500LETza1=0!現場名の表示 寺嶋 春樹 2007/03/25 16:14:35 
      ├7000!現場フォルダを探すか登録階一覧生成の... 寺嶋 春樹 2007/03/25 16:15:39 
      ├8200IFza=0THEN8400 寺嶋 春樹 2007/03/25 16:17:18 
      ├9100LETBT5$="Entry.File.Index\" 寺嶋 春樹 2007/03/25 16:17:51 
      └長くなって申し訳ありません。 寺嶋 春樹 2007/03/25 16:18:52 
       ├PROGRAM文があると駄目なようです。 白石和夫 2007/03/25 17:09:21 
       │└DECLAREFUNCTION文の処理に問題があったよう... 白石和夫 2007/03/25 18:18:16 
       ├とりあえず,FileName.libを次のように書き... 白石和夫 2007/03/25 17:27:25 
       └IFdisp$=""THENLETdisp$="テキスト" 白石和夫 2007/03/25 17:27:40 
        └ちょっとわかりにくいですが, 白石和夫 2007/03/25 17:33:22 
         └訂正 白石和夫 2007/03/25 17:59:12 
          └お休みのところお手数をお掛けいたしまして... 寺嶋 春樹 2007/03/26 08:16:17 

  WindowsXP上での指定フォルダを開く方法を教えて下さい。 寺嶋 春樹 2007/03/24 10:35:30  ツリーへ

WindowsXP上での指定フォルダを開く方法を教えて下さい。 返事を書く ノートメニュー
寺嶋 春樹 <ehlswphgwb> 2007/03/24 10:35:30
いつもお世話になっております。
ステートメントについてお伺いいたします。
構造部品の管理用に、
Windows98 上で、入力した部材の種類に応じ、
各部位用のフォルダに自動的に振り分け保存をするプログラムを作成し使用しています。
読み込みの際に、部位を指定することで 各部位用のフォルダを展開しファイルを選択していたのですが、
WindowsXP上で使用したところ、指定のフォルダを開くことが出来ませんでした。
この読み込みのフォルダ指定は以下の様なものです。

LET CD0$="C:\BASIC\部材管理\柱"!仮にこの『柱』フォルダをファイル獲得の為に展開する場合
SET DIRECTORY CD0$
FILE GETNAME efi$ !Windows98上では"SET DIRECTORY"で指定したフォルダが開きます。
OPEN #2: NAME efi$ !展開したフォルダからファイル名を獲得します。
SET #2:POINTER BEGIN
INPUT #2:CMax$,GMax$
LET ind3$=CMax$
LET ind7$=GMax$
LET zb=1
USE
LET zb=0
END WHEN
CLOSE #2

WindowsXP上で使用する場合、展開するフォルダの指定はどの様にすれば宜しいでしょうか。
宜しくお願いいたします。

  FileGetNameを実行したときMyDocumentsフォ... 白石和夫 2007/03/24 11:09:30  ツリーへ

Re: WindowsXP上での指定フォルダを開く方法を教えて下さい。 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/24 11:09:30
File GetNameを実行したときMy Documentsフォルダを開くカレントディレクトリを開くかはOSによって異なるようです。
(仮称)十進BASICの現在のバージョンではそれを指定する手段はありません。File GetNameの実体はWin32APIのGetOpenFileNameなので,どうしてもカレントディレクトリを優先してファイル名指定ダイアログを表示したいのであれば,Win32APIを直接呼び出すようにすれば可能かもしれません(できるかどうか十分に検討してはいません)。

   ├GetOpenFileNameの使い方はGetSaveFileName... 白石和夫 2007/03/24 11:16:56  ツリーへ

Re: FileGetNameを実行したときMyDocumentsフォ... 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/24 11:16:56
GetOpenFileNameの使い方はGetSaveFileNameとほとんど同じなので,
http://hp.vector.co.jp/authors/VA008683/Dialogs.htm
が参考になると思います。

   └どうも有難うございました。 寺嶋 春樹 2007/03/24 12:04:11  ツリーへ

Re: FileGetNameを実行したときMyDocumentsフォ... 返事を書く ノートメニュー
寺嶋 春樹 <ehlswphgwb> 2007/03/24 12:04:11
どうも有難うございました。
試してみます。

    └お世話になっております。 寺嶋 春樹 2007/03/25 12:48:55  ツリーへ

Re: どうも有難うございました。 返事を書く ノートメニュー
寺嶋 春樹 <ehlswphgwb> 2007/03/25 12:48:55
お世話になっております。
先日、白石様にお教え頂いた通り、下記の仕様で”XP”上でのフォルダの展開が出来ました。
有難うございました。

10 LET disp$="テキスト"
20 LET ext$="txt"
30 LET iniDir$="C:\basic\部材管理\柱\"
40 DECLARE EXTERNAL FUNCTION GetOpenFileName$
50 LET efi$=GetOpenFileName$(disp$, ext$, iniDir$)
60 PRINT efi$
70 !プログラム本文
80 !プログラム本文
90 !プログラム本文
100 !プログラム本文
110 !プログラム本文
115 GOTO 70
120 END
130 MERGE "FILENAME.LIB"

ただ、上記は単独で機能するのですが、プログラム中に組み入れると、
"FILENAME.LIB"中の『 IF GetOpenFileNameA(p$)<>0 THEN 』に
文法の誤り『 ( はここには書けません。』のメッセージが表示されます。
変数の干渉はないとのことから、私には対処法が解りません。
お教え頂ければ幸いです。
どうぞ宜しくお願い致します。

     ├MERGEの部分を人力で書き換えていけば問題な... 白石和夫 2007/03/25 13:27:03  ツリーへ

Re: お世話になっております。 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 13:27:03
MERGEの部分を人力で書き換えていけば問題ないと思います。

     │├10LETdisp$="テキスト" 白石和夫 2007/03/25 13:31:35  ツリーへ

Re: MERGEの部分を人力で書き換えていけば問題な... 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 13:31:35
10 LET disp$="テキスト"
20 LET ext$="txt"
30 LET iniDir$="C:\basic\部材管理\柱\"
40 DECLARE EXTERNAL FUNCTION GetOpenFileName$
50 LET efi$=GetOpenFileName$(disp$, ext$, iniDir$)
60 PRINT efi$
70 !プログラム本文
80 !プログラム本文
90 !プログラム本文
100 !プログラム本文
110 !プログラム本文
120 GOTO 70
130 END

     │├1000EXTERNALFUNCTIONGetSaveFileName$(dis... 白石和夫 2007/03/25 13:32:19  ツリーへ

Re: MERGEの部分を人力で書き換えていけば問題な... 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 13:32:19
1000 EXTERNAL FUNCTION GetSaveFileName$( disp$, ext$, iniDir$)
1010 REM 「名前をつけて保存」ダイアログを表示してファイル名を取得する。
1020 REM 第1引数には,ファイルの種類を表す言葉を指定する。空文字列を指定すると"テキスト"を指定したものとみなす
1030 REM 第2引数には,既定の拡張子(例"TXT")を指定する。拡張子にはピリオドを含めない。空文字列を指定すると,"TXT"を指定したものとみなす。
1040 REM 第3引数には,初期表示ディレクトリを指定する。空文字列を指定した場合の動作はOS依存。
1050 DECLARE EXTERNAL FUNCTION GetFileName$
1060 LET GetSaveFileName$=GetFileName$("SAVE", disp$, ext$, iniDir$)
1070 END FUNCTION
1080
1090 EXTERNAL FUNCTION GetOpenFileName$( disp$, ext$, iniDir$)
1100 REM 「ファイルを開く」ダイアログを表示してファイル名を取得する。
1110 DECLARE EXTERNAL FUNCTION GetFileName$
1120 LET GetOpenFileName$=GetFileName$("OPEN", disp$, ext$, iniDir$)
1130 END FUNCTION
1140

     │├1150EXTERNALFUNCTIONGetFileName$(spc$,di... 白石和夫 2007/03/25 13:32:52  ツリーへ

Re: MERGEの部分を人力で書き換えていけば問題な... 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 13:32:52
1150 EXTERNAL FUNCTION GetFileName$(spc$, disp$, ext$, iniDir$)
1160 DECLARE EXTERNAL FUNCTION DWORD$, WORD$, VarPtr
1170 DECLARE FUNCTION GetOpenFileNameA, GetSaveFileNameA
1180 DECLARE NUMERIC hwndOwner, hInstance, lpstrFilter,lpstrCustomFilter, nMaxCustFilter
1190 DECLARE NUMERIC nFilterIndex, lpstrFile, nMaxFile, lpstrFileTitle, nMaxFileTitle
1200 DECLARE NUMERIC lpstrInitialDir, lpstrTitle, Flags, nFileOffset, nFileExtension
1210 DECLARE NUMERIC lpstrDefExt, lCustData, lpfnHook, lpTemplateName
1220 DECLARE STRING Buff$,p$,Filter$
1230 IF disp$="" THEN LET disp$="テキスト"
1240 IF ext$="" THEN LET ext$="TXT"
1250 LET Filter$=disp$ & CHR$(0) & "*." & ext$ & CHR$(0)
1260 LET Buff$=REPEAT$(CHR$(0),256)
1270 LET hwndOwner=0
1280 LET hInstance=0
1290 LET lpstrFilter=VarPtr(Filter$)
1300 LET lpstrCustomFilter=0
1310 LET nMaxCustFilter=0
1320 LET nFilterIndex=0
1330 LET lpstrFile=VarPtr(Buff$)
1340 LET nMaxFile=256
1350 LET lpstrFileTitle=0
1360 LET nMaxFileTitle=0
1370 LET lpstrInitialDir=VarPtr(iniDir$)
1380 LET lpstrTitle=0
1390 LET Flags=2+4+2^16 ! 2 上書き確認あり,4 ReadOnlyチェックボックス表示しない, 2^16 ファイルを作らない
1400 LET nFileOffset=0
1410 LET nFileExtension=0
1420 LET lpstrDefExt=VarPtr(ext$)
1430 LET lCustData=0
1440 LET lpfnHook=0
1450 LET lpTemplateName=0
1460 LET p$=DWORD$(76)
1470 LET p$=p$ & DWORD$(hwndOwner)
1480 LET p$=p$ & DWORD$(HInstance)
1490 LET p$=p$ & DWORD$(lpstrFilter)
1500 LET p$=p$ & DWORD$(lpstrCustomFilter)
1510 LET p$=p$ & DWORD$(nMaxCustFilter)
1520 LET p$=p$ & DWORD$(nFilterIndex)
1530 LET p$=p$ & DWORD$(lpstrFile)
1540 LET p$=p$ & DWORD$(nMaxFile)
1550 LET p$=p$ & DWORD$(lpstrFileTitle)
1560 LET p$=p$ & DWORD$(nMaxFileTitle)
1570 LET p$=p$ & DWORD$(lpstrInitialDir)
1580 LET p$=p$ & DWORD$(lpstrTitle)
1590 LET p$=p$ & DWORD$(Flags)
1600 LET p$=p$ & WORD$(nFileOffset)
1610 LET p$=p$ & WORD$(nFileExtension)
1620 LET p$=p$ & DWORD$(lpstrDefExt)
1630 LET p$=p$ & DWORD$(lCustData)
1640 LET p$=p$ & DWORD$(lpfnHook)
1650 LET p$=p$ & DWORD$(lpTemplateName)

     │├1660SELECTCASEspc$ 白石和夫 2007/03/25 13:33:18  ツリーへ

Re: MERGEの部分を人力で書き換えていけば問題な... 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 13:33:18
1660 SELECT CASE spc$
1670 CASE "OPEN"
1680 IF GetOpenFileNameA(p$)<>0 THEN
1690 LET GetFileName$=Buff$(1:MAX(256,POS(Buff$,CHR$(0))))
1700 END IF
1710 CASE "SAVE"
1720 IF GetSaveFileNameA(p$)<>0 THEN
1730 LET GetFileName$=Buff$(1:MAX(256,POS(Buff$,CHR$(0))))
1740 END IF
1750 END SELECT
1760 FUNCTION GetOpenFileNameA(p$)
1770 ASSIGN "COMDLG32.DLL","GetOpenFileNameA"
1780 END FUNCTION
1790 FUNCTION GetSaveFileNameA(p$)
1800 ASSIGN "COMDLG32.DLL","GetSaveFileNameA"
1810 END FUNCTION
1820 END FUNCTION
1830
1840

     │└2000EXTERNALFUNCTIONDWORD$(n) 白石和夫 2007/03/25 13:33:39  ツリーへ

Re: MERGEの部分を人力で書き換えていけば問題な... 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 13:33:39
2000 EXTERNAL FUNCTION DWORD$(n)
2010 OPTION CHARACTER byte
2020 DECLARE NUMERIC r
2030 DECLARE STRING s$
2040 LET r=MOD(n,2^8)
2050 LET s$=CHR$(r)
2060 LET n=(n-r)/2^8
2070 LET r=MOD(n,2^8)
2080 LET s$=s$ & CHR$(r)
2090 LET n=(n-r)/2^8
2100 LET r=MOD(n,2^8)
2110 LET s$=s$ & CHR$(r)
2120 LET n=(n-r)/2^8
2130 LET r=MOD(n,2^8)
2140 LET DWORD$=s$ & CHR$(r)
2150 END FUNCTION
2160
2170 EXTERNAL FUNCTION WORD$(n)
2180 OPTION CHARACTER byte
2190 DECLARE NUMERIC r
2200 DECLARE STRING s$
2210 LET r=MOD(n,2^8)
2220 LET s$=CHR$(r)
2230 LET n=(n-r)/2^8
2240 LET r=MOD(n,2^8)
2250 LET WORD$=s$ & CHR$(r)
2260 END FUNCTION
2270
2280 EXTERNAL FUNCTION VarPtr(s$)
2290 FUNCTION CharPrev(s$,t$)
2300 ASSIGN "user32.dll","CharPrevA"
2310 END FUNCTION
2320 LET VarPtr=CharPrev(s$,s$)
2330 END FUNCTION
2340
2350 EXTERNAL FUNCTION int32(s$,p)
2360 OPTION CHARACTER byte
2370 DECLARE NUMERIC n,i
2380 LET n=0
2390 FOR i=1 TO 4
2400 LET n=n+256^(i-1)*ORD(s$(p+i:p+i))
2410 NEXT i
2420 IF n<2^31 THEN LET int32=n ELSE LET int32=n-2^32
2430 END FUNCTION
2440
2450 EXTERNAL FUNCTION int16(s$,p)
2460 OPTION CHARACTER byte
2470 DECLARE NUMERIC n,i
2480 LET n=0
2490 FOR i=1 TO 2
2500 LET n=n+256^(i-1)*ORD(s$(p+i:p+i))
2510 NEXT i
2520 IF n<2^15 THEN LET int16=n ELSE LET int16=n-2^16
2530 END FUNCTION

     └「プログラム中に組み入れると、」の部分に... 白石和夫 2007/03/25 13:30:53  ツリーへ

Re: お世話になっております。 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 13:30:53
「プログラム中に組み入れると、」の部分に意味がよく分からないので,具体的に(プログラム全体を)書いてください。
 なお,「(が書けない」というエラーででるのは,GetOpenFileNameAが関数名であることを認識していないからです。

      ├!お手数をお掛けしております。 寺嶋 春樹 2007/03/25 15:56:27  ツリーへ

Re: 「プログラム中に組み入れると、」の部分に... 返事を書く ノートメニュー
寺嶋 春樹 <ehlswphgwb> 2007/03/25 15:56:27
!お手数をお掛けしております。
!このプログラムは USB で持ち歩く前提で作成しております。
!RUN 直後に実行される他のプログラムでカレントディレクトリを獲得して、
!その都度、各部材を記録したフォルダのディレクトリを書き換えています。

5 PROGRAM load(CD0$,nn$,nn2$,CD1$,CD2$,CD3$,CD4$,CMax$,GMax$)
6 DECLARE EXTERNAL FUNCTION GetOpenFileName$ !フォルダを展開する関数名の宣言を置きました。
11 !LET CD0$="C:\basic\配筋検討\"
12 SET DIRECTORY CD0$
13 GOSUB 9100
15 WHEN EXCEPTION IN
18 LET CD5$=BT5$
20 GLOAD BM1$
30 OPTION ANGLE DEGREES
31 OPTION BASE 0
32 DIM hpo$(100)
33 DIM Cf$(100)
34 DIM kk(100)
35 DIM ni$(2)
36 DIM hpo2$(100)
110 GOSUB 700 !別な現場のディレクトリを獲得
120 GOSUB 2600 !現場一覧を読み込む
125 IF za=0 THEN 996 !現場一覧が無かった
130 GOTO 700

700 LET zb=0
705 WHEN EXCEPTION IN
706 IF za=1 THEN 740
707 LET disp$="テキスト"
708 LET ext$="txt"
709 LET iniDir$=CD5$ !現場一覧から部材のディレクトリを獲得する。
720 LET efi$=GetOpenFileName$(disp$, ext$, iniDir$)
740 OPEN #2: NAME efi$
750 SET #2:POINTER BEGIN
760 INPUT #2:CMax$,GMax$
770 LET ind3$=CMax$
780 LET ind7$=GMax$
790 LET zb=1
800 USE
810 LET zb=0
820 END WHEN
830 CLOSE #2
840 IF zb=0 THEN 977
850 IF ind3$="" THEN 977
855 LET za=0
856 WHEN EXCEPTION IN !柱一覧を読み込む
857 OPEN #1: NAME ind3$,ACCESS INPUT
858 SET #1:POINTER BEGIN
859 INPUT #1:nn$,nn2$
860 INPUT #1:CD1$,CD2$
861 INPUT #1:CD3$,CD4$
862 INPUT #1:hpk
863 FOR M=1 TO hpk STEP 1
864 INPUT #1:hp$
865 LET hpo$(M)=hp$
866 NEXT M
867 LET za=1
868 USE
869 LET za=0 !柱の一覧が無い
870 END WHEN
871 CLOSE #1
872 LET za2=0
873 WHEN EXCEPTION IN !梁を読む
874 OPEN #1: NAME ind7$,ACCESS INPUT
875 SET #1:POINTER BEGIN
876 INPUT #1:nn$,nn2$
877 INPUT #1:CD1$,CD2$
878 INPUT #1:CD3$,CD4$
879 INPUT #1:Q
880 FOR N=1 TO Q STEP 1
881 INPUT #1:hp2$
882 LET hpo2$(N)=hp2$
883 NEXT N
884 LET za2=1
885 USE
886 LET za2=0
887 END WHEN
888 CLOSE #1
950 IF za=0 AND za2=0 THEN 987
970 GOSUB 8000
976 GOTO 2500
977 GOSUB 9500
987 GOSUB 7000
988 IF ssz2=1 THEN 990
989 GOTO 700
990 GOSUB 1000
995 GOTO 120
996 GOSUB 7290
1000 LET CD$=BT4$
!続きます。

      ├1010LETdisp$="テキスト" 寺嶋 春樹 2007/03/25 15:59:10  ツリーへ

Re: 「プログラム中に組み入れると、」の部分に... 返事を書く ノートメニュー
寺嶋 春樹 <ehlswphgwb> 2007/03/25 15:59:10
1010 LET disp$="テキスト"
1015 LET ext$="txt"
1020 LET iniDir$=CD$ !現場一覧からカレントディレクトリを獲得する。
1025 LET f2$=GetOpenFileName$(disp$, ext$, iniDir$) !関数を呼び出します。

1030 ASK DIRECTORY f2$
1040 LET f7$="\配筋データ"
1050 LET P1=LEN(f2$)
1060 LET P2=POS(f2$,f7$)
1070 LET p3=p1-p2
1080 IF p3=5 THEN 1100
1090 GOTO 1130
1091 OPEN #2:TextWindow2
1092 ERASE #2
1100 PRINT #2:"保存先フォルダの獲得に失敗しました。"
1102 PRINT #2:"下記を参考にフォルダを再選択して下さい。"
1103 PRINT #2:" "
1105 PRINT #2:"保存先のフォルダ(現場名)をクリックし『開く』→『キャンセル』か、"
1110 PRINT #2:"『開く』→『柱フォルダ』か『dummy.BAS』(推奨)をクリックして下さい。"
1115 CLOSE #2
1120 GOTO 1000
1130 LET f3$="\柱"
1140 LET P1=LEN(f2$)
1150 LET P2=POS(f2$,f3$)
1160 IF P2=0 THEN 1180
1170 LET f2$(P2:P1)=""
1180 LET g3$="\梁"
1190 LET P1=LEN(f2$)
1200 LET P2=POS(f2$,g3$)
1210 IF P2=0 THEN 1230
1220 LET f2$(P2:P1)=""
1230 LET f5$="\適用する鉄筋の種類"
1240 LET P1=LEN(f2$)
1250 LET P2=POS(f2$,f5$)
1260 IF P2=0 THEN 1280
1270 LET f2$(P2:P1)=""
1280 LET f6$="\検討記録"
1290 LET P1=LEN(f2$)
1300 LET P2=POS(f2$,f6$)
1310 IF P2=0 THEN 1330
1320 LET f2$(P2:P1)=""
1330 !PRINT f2$
1340 LET f3$="\柱\"
1350 LET g3$="\梁\"
1360 LET f4$="\"
1370 LET f5$="\適用する鉄筋の種類\"
1380 LET CD1$=f2$ & f3$
1390 LET CD2$=f2$ & g3$
1400 LET CD3$=f2$ & f4$
1410 LET CD4$=f2$ & f5$
1420 !PRINT CD1$ !柱のカレントディレクトリの格納
1430 RETURN
2000 LET disp$="テキスト"
2005 LET ext$="txt"
2010 LET iniDir$=CD1$ !現場一覧からディレクトリを獲得する。
2015 LET f2$=GetOpenFileName$(disp$, ext$, iniDir$)

2020 FILE SPLITNAME (f2$) path$, name$, TXT$ !(f2$)を絶対パスとファイルの名前、拡張子に分ける。
2040 OPEN #1: NAME f2$
2050 SET #1:POINTER BEGIN
2055 INPUT #1:h$,Q,m1$,nn$
2060 CLOSE #1
2065 !IF nn2$="" THEN 2070
2066 !GOTO 2120
2070 LET p1=LEN(name$) !ファイル名の文字数を調べる。
2080 LET p2=p1-6 !ファイルの文字数から本機で自動添付した範囲の文字位置を調べる。
2090 LET p3$=name$ !ファイル名を複写
2100 LET p3$(p2:p1)="" !ファイル名の『p2』番目から『p1』番目までを『""』空白とする。
2110 LET nn2$=RTRIM$(p3$) !『p3$』の後部の空白範囲を削除し『nn2$(略称フォルダ名)』とする。
2120 GOSUB 8000
2130 CHAIN BAS2$ WITH(CD0$,nn$,nn2$,CD1$,CD2$,CD3$,CD4$,CMax$,GMax$) !入力実行へ
2140 USE
2300 CHAIN BAS2$ WITH(CD0$,nn$,nn2$,CD1$,CD2$,CD3$,CD4$,CMax$,GMax$)
2310 END WHEN
2500 CHAIN BAS2$ WITH(CD0$,nn$,nn2$,CD1$,CD2$,CD3$,CD4$,CMax$,GMax$)
!続きます。

      ├2600WHENEXCEPTIONIN!現場の登録済み階一覧... 寺嶋 春樹 2007/03/25 16:12:25  ツリーへ

Re: 「プログラム中に組み入れると、」の部分に... 返事を書く ノートメニュー
寺嶋 春樹 <ehlswphgwb> 2007/03/25 16:12:25
2600 WHEN EXCEPTION IN !現場の登録済み階一覧を読み込む
2605 SET DIRECTORY CD3$
2610 LET ind$="柱登録階の一覧"
2611 LET ind8$="梁登録階の一覧"
2615 LET ind2$=".txt"
2620 LET ind3$=CD3$ & ind$ & ind2$
2621 LET ind7$=CD3$ & ind8$ & ind2$
2625 OPEN #1: NAME ind3$,ACCESS INPUT
2630 SET #1:POINTER BEGIN
2634 INPUT #1:nn$,nn2$
2635 IF zb=1 THEN 2638
2636 INPUT #1:CD1$,CD2$
2637 INPUT #1:CD3$,CD4$
2638 INPUT #1:hpk
2639 IF zb=1 THEN 2660
2640 FOR M=1 TO hpk STEP 1
2645 INPUT #1:hp$
2650 LET hpo$(M)=hp$
2655 NEXT M
2660 LET za=1
2665 USE
2670 LET za=0
2675 END WHEN
2676 CLOSE #1
2677 !LET reb=0
2678 IF za=0 THEN 7770
2681 WHEN EXCEPTION IN
2685 SET DIRECTORY CD5$ !現場一覧を調べる
2686 GOSUB 6600
2690 LET ind4$="登録階の一覧"
2695 LET ind5$=nn$ !現場名
2700 LET ind2$=".txt"
2705 LET ind6$=CD5$ & dn0$ & ind5$ & ind2$
2710 LET CMax$=ind3$
2715 LET GMax$=ind7$
2720 IF zb=0 THEN 2750
2725 OPEN #1: NAME ind6$ !新しい現場一覧への書き込み
2730 ERASE #1 !ファイル内部の初期化
2735 PRINT #1:CMax$;",";GMax$
2740 CLOSE #1
2750 DIM NEF$(2)
2755 LET NEF$(1)=CMax$
2760 LET NEF$(2)=GMax$
2761 DIM BP(2)
2765 FOR v1=1 TO 2 STEP 1
2770 LET ECF$=NEF$(v1)
2775 WHEN EXCEPTION IN
2780 OPEN #2: NAME ECF$,ACCESS INPUT
2785 SET #2:POINTER BEGIN
2790 INPUT #2:nn$,nn2$
2795 INPUT #2:ECD1$,ECD2$
2800 INPUT #2:ECD3$,ECD4$
2805 INPUT #2:BP(v1)
2806 LET hpkF=BP(v1)
2807 IF v1=2 THEN 2812
2810 DIM BpoC$(hpkF)
2811 GOTO 2815
2812 DIM BpoG$(hpkF)
2815 FOR M4=1 TO hpkF STEP 1
2820 INPUT #2:hp$
2821 IF v1=2 THEN 2827
2825 LET BpoC$(M4)=hp$
2826 GOTO 2830
2827 LET BpoG$(M4)=hp$
2830 NEXT M4
2835 LET Vza=1
2840 USE
2845 LET Vza=0
2850 END WHEN
2855 CLOSE #2
2860 NEXT v1


2990 IF Vza=1 THEN 3000
2995 GOTO 3030
3000 LET ind3$=CMax$
3010 LET ind7$=GMax$
3020 LET efi$=ind6$
3030 RETURN
!続きます。

      ├5500LETza1=0!現場名の表示 寺嶋 春樹 2007/03/25 16:14:35  ツリーへ

Re: 「プログラム中に組み入れると、」の部分に... 返事を書く ノートメニュー
寺嶋 春樹 <ehlswphgwb> 2007/03/25 16:14:35
5500 LET za1=0 ! 現場名の表示
5510 OPEN #1:TextWindow1
5520 ERASE #1
5530 PRINT #1: "柱の読み込み作業に"
5540 PRINT #1: "現在適用されている『現場』 "
5550 PRINT #1: " "
5560 PRINT #1: nn$
5570 PRINT #1: " "
5580 PRINT #1: "この『現場』の『柱』を読み込む場合は『Enter』"
5590 PRINT #1: "『現場』を変える場合は『Esc』を押して下さい。"
5600 IF za=0 THEN 5680
5610 PRINT #1: ""
5620 PRINT #1: "以下の階の柱は登録済みです。"
5630 PRINT #1: "これらの階は読み込み可能です。"
5640 FOR M=1 TO hpk STEP 1
5650 PRINT #1: hpo$(M);"階"
5660 NEXT M
5670 GOTO 5690
5680 PRINT #1: nn$;"の柱は登録済みの階が有りません。"
5690 CLOSE #1
5700 OPEN #2:TextWindow2
5710 ERASE #2
5720 PRINT #2: "読み込み対象の柱ファイルに"
5730 PRINT #2: "現在適用されている『略称』"
5740 PRINT #2: " "
5750 PRINT #2: nn2$
5760 PRINT #2: " "
5761 PRINT #2: "この『現場』の『柱』を読み込む場合は『Enter』"
5762 PRINT #2: "変える場合は『Esc』を押して下さい。"
5763 CLOSE #2
5765 !
5766 WHEN EXCEPTION IN
5770 CHARACTER INPUT NOWAIT, TIMEOUT 3 :z1$
5780 IF z1$=CHR$(13) THEN 5810 !この現場の柱を読み込む
5790 IF z1$=CHR$(27) THEN 5830 !しない
5791 USE
5792 RETRY
5793 END WHEN
5800 GOTO 5765
5810 LET za1=1 !この現場の柱を読み込む。
5820 GOTO 5840
5830 LET za1=0 !読み込み対象の現場を変更する。
5840 RETURN
6600 LET dn1$="("
6610 LET dn3$=")"
6620 LET dn4$="テ゛スクトッフ゜"
6630 LET dn5$=" "
6635 IF f2$="" THEN LET f2$=CD1$
6640 LET P1=POS(f2$,dn4$)
6650 IF P1=0 THEN 6670
6660 GOTO 6680
6670 LET dn4$=" "
6680 LET dn2$=f2$
6690 LET P2=LEN(dn2$)
6700 LET dn2$(2:P2)=""
6710 LET dn0$=dn1$ & dn2$ & dn3$ & dn4$ & dn5$
6740 RETURN
!続きます。

      ├7000!現場フォルダを探すか登録階一覧生成の... 寺嶋 春樹 2007/03/25 16:15:39  ツリーへ

Re: 「プログラム中に組み入れると、」の部分に... 返事を書く ノートメニュー
寺嶋 春樹 <ehlswphgwb> 2007/03/25 16:15:39
7000 !現場フォルダを探すか登録階一覧生成の選択
7005 !LET reb=0
7010 GLOAD BM53$
7040 LET tp8=0 !『現場』ファイルを探す
7050 LET tp9=0 !中止メニューに戻る
7055 LET tp10=0
7060 LET ssz2=0
7070 MOUSE POLL xe,ye,l1,r1
7080 IF GetKeyState(37)<0 THEN 7150 !(現場)
7090 IF GetKeyState(39)<0 THEN 7290 !(中止)
7100 IF xe<=0.684 AND xe>=0.376 AND ye>=0 AND ye<=0.058 THEN 7150
7110 IF xe<=1 AND xe>=0.684 AND ye>=0 AND ye<=0.058 THEN 7290
7115 IF tp10=1 THEN 7140
7120 LET tp10=tp10+1
7125 LET tp8=0
7126 LET tp9=0
7130 GLOAD BM53$
7140 GOTO 7070
7150 IF tp8=1 THEN 7240
7160 LET tp8=tp8+1
7170 LET tp9=0
7175 LET tp10=0
7180 LET ssz2=1
7190 GLOAD BM54$
7240 IF xe<=0.684 AND xe>=0.376 AND ye>=0 AND ye<=0.058 AND l1=1 THEN 7750
7280 GOTO 7070
7290 IF tp9=1 THEN 7380
7300 LET tp9=tp9+1
7310 LET tp8=0
7315 LET tp10=0
7320 LET ssz2=0
7330 GLOAD BM55$
7380 IF xe<=1 AND xe>=0.684 AND ye>=0 AND ye<=0.058 AND l1=1 THEN 8181
7420 GOTO 7070
7750 IF ssz2=0 THEN 7770 !インディックス生成
7760 GOTO 7900
7770 EXECUTE BAS42$ WITH(CD0$,CD1$,CD2$,CD3$,CD4$)!一時登録階一覧の自動生成へ
7780 LET M$="フォルダ有無.TXT"
7790 LET CD$=CD0$
7800 SET DIRECTORY CD$
7810 OPEN #1: NAME M$,ACCESS INPUT
7820 INPUT #1:reb
7821 INPUT #1:za
7822 INPUT #1:za2
7823 INPUT #1:efi$
7830 CLOSE #1
7840 OPEN #1: NAME M$
7850 ERASE #1
7860 CLOSE #1
7870 IF reb=1 THEN 7000
7880 !IF reb=2 THEN 15
7890 GOTO 15
7900 RETURN
8000 GLOAD BM1$
8005 WAIT DELAY 1
8006 GLOAD BM280$
8007 GOSUB 8990
8008 GOSUB 8200
8010 LET tp1=0
8020 LET tp2=0
8030 MOUSE POLL xe,ye,l1,r1
8040 IF xe<=0.49 AND xe>=0.0 AND ye>=0.0 AND ye<=0.1 THEN 8070 !(読み込みOK)
8050 IF xe<=1 AND xe>=0.49 AND ye>=0.0 AND ye<=0.1 THEN 8130 !(読み込みNO)
8060 GOTO 8030 ! ( MOUSE POLL xe,ye,l,rへ)
8070 IF tp1=1 THEN 8110
8080 LET tp1=tp1+1
8090 LET tp2=0
8100 GLOAD BM281$
8105 GOSUB 8990
8106 GOSUB 8200
8110 IF l1=1 THEN 8190
8120 GOTO 8030
8130 IF tp2=1 THEN 8170
8140 LET tp1=0
8150 LET tp2=tp2+1
8160 GLOAD BM282$
8165 GOSUB 8990
8166 GOSUB 8200
8170 IF L1=1 THEN 8181 !現情報を放棄し戻る
8180 GOTO 8030
8181 LET nn$=""
8182 LET nn2$=""
8183 LET CD1$=""
8184 LET CD2$=""
8185 LET CMax$=""
8186 LET GMax$=""
8190 CHAIN BAS2$ WITH (CD0$,nn$,nn2$,CD1$,CD2$,CD3$,CD4$,CMax$,GMax$)
!続きます。

      ├8200IFza=0THEN8400 寺嶋 春樹 2007/03/25 16:17:18  ツリーへ

Re: 「プログラム中に組み入れると、」の部分に... 返事を書く ノートメニュー
寺嶋 春樹 <ehlswphgwb> 2007/03/25 16:17:18
8200 IF za=0 THEN 8400
8210 LET mx=0.0975
8220 LET my=0.055
8230 LET kx=INT(hpk/6)
8240 LET kp=hpk-(kx*6)
8241 LET KV=kx-1
8245 IF kp=0 THEN 8250
8246 LET kx=kx+1
8247 LET kV=kx-1
8250 LET mxs=0.03
8260 LET mys=0.4
8270 LET ind$="階"
8280 SET TEXT COLOR 9
8281 SET TEXT FONT "MS 明朝",0
8282 SET TEXT HEIGHT 0.025
8290 PLOT TEXT,AT 0.03,0.46 :"柱の登録済み階数"
8291 SET TEXT COLOR 2
8292 IF kx>5 THEN 8410
8295 LET vv=0
8300 FOR O=0 TO KV STEP 1
8310 FOR O2=0 TO 5 STEP 1
8315 LET vv=vv+1
8320 LET mx1=mxs+(mx*O)
8330 LET my1=mys-(my*O2)
8335 LET hm$=hpo$(vv) & ind$
8336 IF hpo$(vv)="" THEN 8350
8340 PLOT TEXT,AT mx1,my1 : hm$
8350 NEXT O2
8360 IF hpk<vv THEN 8400
8370 NEXT O
8400 GOTO 8460
8410 LET hpk2=hpk-1
8420 LET hm1$=hpo$(1) & ind$
8430 LET hm2$=hpo$(hpk2) & ind$
8440 LET hm3$=hpo$(hpk) & ind$
8450 PLOT TEXT,AT 0.12,0.34,USING"######〜######・######" :hm1$,hm2$,hm3$
8460 !IF za=0 AND za2=0 THEN 9500!8770
8470 IF za2=0 THEN 8760
8510 LET mx=0.0975
8520 LET my=0.055
8530 LET kx=INT(Q/6)
8540 LET kp=Q-(kx*6)
8541 LET KV=kx-1
8545 IF kp=0 THEN 8550
8546 LET kx=kx+1
8547 LET KV=kx-1
8550 LET mxs=0.5175
8560 LET mys=0.4
8570 LET ind$="階"
8580 SET TEXT COLOR 2
8590 PLOT TEXT,AT 0.5175,0.46 :"梁の登録済み階数"
8591 SET TEXT COLOR 9
8592 IF kx>5 THEN 8710
8595 LET vv=0
8600 FOR O=0 TO KV STEP 1
8610 FOR O2=0 TO 5 STEP 1
8615 LET vv=vv+1
8620 LET mx1=mxs+(mx*O)
8630 LET my1=mys-(my*O2)
8635 LET hm$=hpo2$(vv) & ind$
8636 IF hpo2$(vv)="" THEN 8650
8640 PLOT TEXT,AT mx1,my1 : hm$
8650 NEXT O2
8660 IF Q<vv THEN 8700
8670 NEXT O
8700 GOTO 8760
8710 LET Q2=Q-1
8720 LET hm1$=hpo2$(1) & ind$
8730 LET hm2$=hpo2$(Q2) & ind$
8740 LET hm3$=hpo2$(Q) & ind$
8750 PLOT TEXT,AT 0.5175,0.34,USING"######〜######・######" :hm1$,hm2$,hm3$
8760 RETURN
8770 WAIT DELAY 1
8780 GLOAD BM343$
8790 LET tp1=0
8800 LET tp2=0
8810 MOUSE POLL xe,ye,l1,r1
8820 IF xe<=0.49 AND xe>=0.0 AND ye>=0.0 AND ye<=0.1 THEN 8850 !(読み込みOK)
8830 IF xe<=1 AND xe>=0.49 AND ye>=0.0 AND ye<=0.1 THEN 8920 !(読み込みNO)
8840 GOTO 8810 ! ( MOUSE POLL xe,ye,l,rへ)
8850 IF tp1=1 THEN 8900
8860 LET tp1=tp1+1
8870 LET tp2=0
8880 GLOAD BM343$
8890 GOSUB 8990
8900 IF l1=1 THEN 8810
8910 GOTO 8810
8920 IF tp2=1 THEN 8970
8930 LET tp1=0
8940 LET tp2=tp2+1
8950 GLOAD BM344$
8960 GOSUB 8990
8970 IF L1=1 THEN 8181 !現情報を放棄し戻る
8980 GOTO 8810
8990 SET TEXT COLOR 1
8991 SET TEXT FONT "MS 明朝",0
8992 SET TEXT HEIGHT 0.025
8993 LET p7=LEN(nn$)
8994 LET p8=(32-p7)/2
8995 LET p9=0.0275*p8
8996 PLOT TEXT,AT p9,0.78 :nn$
8997 SET TEXT COLOR 1
8998 RETURN

      ├9100LETBT5$="Entry.File.Index\" 寺嶋 春樹 2007/03/25 16:17:51  ツリーへ

Re: 「プログラム中に組み入れると、」の部分に... 返事を書く ノートメニュー
寺嶋 春樹 <ehlswphgwb> 2007/03/25 16:17:51
9100 LET BT5$="Entry.File.Index\"
LET BT5$=CD0$ & BT5$
LET BM1$="BM\R0.jpg"
LET BM1$=CD0$ & BM1$
LET BM51$="BM\fn2.BMP"
LET BM51$=CD0$ & BM51$
LET BM52$="BM\fn3.BMP"
LET BM52$=CD0$ & BM52$
LET BT4$="配筋データ\"
LET BT4$=CD0$ & BT4$
LET BAS2$="menu.Bas"
LET BAS2$=CD0$ & BAS2$
LET BM53$="BM\フォルダを探す0.jpg"
LET BM53$=CD0$ & BM53$
LET BM54$="BM\フォルダを探す1.jpg"
LET BM54$=CD0$ & BM54$
LET BM55$="BM\フォルダを探す2.jpg"
LET BM55$=CD0$ & BM55$
LET BAS42$="Rebass.BAS"
LET BAS42$=CD0$ & BAS42$
LET BM280$="BM\現場選択0.jpg"
LET BM280$=CD0$ & BM280$
LET BM281$="BM\現場選択1.jpg"
LET BM281$=CD0$ & BM281$
LET BM282$="BM\現場選択2.jpg"
LET BM282$=CD0$ & BM282$
LET BM283$="BM\現場選択3.jpg"
LET BM283$=CD0$ & BM283$
LET BM284$="BM\現場選択3-2.jpg"
LET BM284$=CD0$ & BM284$
LET BM285$="BM\現場選択4.jpg"
LET BM285$=CD0$ & BM285$
LET BM286$="BM\現場選択5.jpg"
LET BM286$=CD0$ & BM286$
LET BM342$=CD0$ & BM342$
LET BM343$="BM\JW座標変換一括読込警告1.jpg"
LET BM343$=CD0$ & BM343$
LET BM344$="BM\JW座標変換一括読込警告2.jpg"
LET BM344$=CD0$ & BM344$
RETURN
9500 WAIT DELAY 1
9510 GLOAD BM283$
9520 FOR pp=1 TO 2 STEP 1
9525 WAIT DELAY 0.1
9530 GLOAD BM284$
9540 WAIT DELAY 0.1
9550 GLOAD BM283$
9560 NEXT pp
9790 LET tp1=0
9800 LET tp2=0
9810 MOUSE POLL xe,ye,l1,r1
9820 IF xe<=0.49 AND xe>=0.0 AND ye>=0.0 AND ye<=0.1 THEN 9850 !(続行)
9830 IF xe<=1 AND xe>=0.49 AND ye>=0.0 AND ye<=0.1 THEN 9920 !(読み込みNO)
9840 GOTO 9810 ! ( MOUSE POLL xe,ye,l,rへ)
9850 IF tp1=1 THEN 9900
9860 LET tp1=tp1+1
9870 LET tp2=0
9880 GLOAD BM285$
9890 GOSUB 9990
9900 IF l1=1 THEN 9915
9910 GOTO 9810
9915 GOTO 9956
9920 IF tp2=1 THEN 9970
9930 LET tp1=0
9940 LET tp2=tp2+1
9950 GLOAD BM286$
9960 GOSUB 9990
9970 IF L1=1 THEN 9985
9980 GOTO 9810
9985 GOTO 2500
9956 RETURN
9990 SET TEXT COLOR 1
9991 LET p7=LEN(nn$)
9992 LET p8=(32-p7)/2
9993 LET p9=0.0275*p8
9994 SET TEXT FONT "MS 明朝",0
9995 SET TEXT HEIGHT 0.025
9996 PLOT TEXT,AT p9,0.78 :nn$
9997 SET TEXT COLOR 1
9998 RETURN

10020 END
10030 MERGE "FILENAME.LIB"

      └長くなって申し訳ありません。 寺嶋 春樹 2007/03/25 16:18:52  ツリーへ

Re: 「プログラム中に組み入れると、」の部分に... 返事を書く ノートメニュー
寺嶋 春樹 <ehlswphgwb> 2007/03/25 16:18:52
長くなって申し訳ありません。

       ├PROGRAM文があると駄目なようです。 白石和夫 2007/03/25 17:09:21  ツリーへ

Re: 長くなって申し訳ありません。 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 17:09:21
PROGRAM文があると駄目なようです。
おそらく十進BASICのバグです。
調べてみます。単純なバグではなさそうなので少し時間(日数)がかかります。

       │└DECLAREFUNCTION文の処理に問題があったよう... 白石和夫 2007/03/25 18:18:16  ツリーへ

Re: PROGRAM文があると駄目なようです。 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 18:18:16
DECLARE FUNCTION文の処理に問題があったようです。
慎重に検討する必要がありそうなので,修正版のリリースには時間がかかるかも知れません。
それまでは,内部関数定義にはDECLARE FUNCTION文を書かないで,関数定義部を先行させることにしてください。

       ├とりあえず,FileName.libを次のように書き... 白石和夫 2007/03/25 17:27:25  ツリーへ

Re: 長くなって申し訳ありません。 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 17:27:25
とりあえず,FileName.libを次のように書き換えていただければエラーはでなくなりと思います。
EXTERNAL FUNCTION GetSaveFileName$( disp$, ext$, iniDir$)
REM 「名前をつけて保存」ダイアログを表示してファイル名を取得する。
REM 第1引数には,ファイルの種類を表す言葉を指定する。空文字列を指定すると"テキスト"を指定したものとみなす
REM 第2引数には,既定の拡張子(例"TXT")を指定する。拡張子にはピリオドを含めない。空文字列を指定すると,"TXT"を指定したものとみなす。
REM 第3引数には,初期表示ディレクトリを指定する。空文字列を指定した場合の動作はOS依存。
DECLARE EXTERNAL FUNCTION GetFileName$
LET GetSaveFileName$=GetFileName$("SAVE", disp$, ext$, iniDir$)
END FUNCTION

EXTERNAL FUNCTION GetOpenFileName$( disp$, ext$, iniDir$)
REM 「ファイルを開く」ダイアログを表示してファイル名を取得する。
DECLARE EXTERNAL FUNCTION GetFileName$
EXTERNAL FUNCTION GetFileName$(spc$, disp$, ext$, iniDir$)
FUNCTION GetOpenFileNameA(p$)
ASSIGN "COMDLG32.DLL","GetOpenFileNameA"
END FUNCTION
FUNCTION GetSaveFileNameA(p$)
ASSIGN "COMDLG32.DLL","GetSaveFileNameA"
END FUNCTION
DECLARE EXTERNAL FUNCTION DWORD$, WORD$, VarPtr
!DECLARE FUNCTION GetOpenFileNameA, GetSaveFileNameA
DECLARE NUMERIC hwndOwner, hInstance, lpstrFilter,lpstrCustomFilter, nMaxCustFilter
DECLARE NUMERIC nFilterIndex, lpstrFile, nMaxFile, lpstrFileTitle, nMaxFileTitle
DECLARE NUMERIC lpstrInitialDir, lpstrTitle, Flags, nFileOffset, nFileExtension
DECLARE NUMERIC lpstrDefExt, lCustData, lpfnHook, lpTemplateName
DECLARE STRING Buff$,p$,Filter$
! 続く

       └IFdisp$=""THENLETdisp$="テキスト" 白石和夫 2007/03/25 17:27:40  ツリーへ

Re: 長くなって申し訳ありません。 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 17:27:40

IF disp$="" THEN LET disp$="テキスト"
IF ext$="" THEN LET ext$="TXT"
LET Filter$=disp$ & CHR$(0) & "*." & ext$ & CHR$(0)
LET Buff$=REPEAT$(CHR$(0),256)
LET hwndOwner=0
LET hInstance=0
LET lpstrFilter=VarPtr(Filter$)
LET lpstrCustomFilter=0
LET nMaxCustFilter=0
LET nFilterIndex=0
LET lpstrFile=VarPtr(Buff$)
LET nMaxFile=256
LET lpstrFileTitle=0
LET nMaxFileTitle=0
LET lpstrInitialDir=VarPtr(iniDir$)
LET lpstrTitle=0
LET Flags=2+4+2^16 ! 2 上書き確認あり,4 ReadOnlyチェックボックス表示しない, 2^16 ファイルを作らない
LET nFileOffset=0
LET nFileExtension=0
LET lpstrDefExt=VarPtr(ext$)
LET lCustData=0
LET lpfnHook=0
LET lpTemplateName=0
LET p$=DWORD$(76)
LET p$=p$ & DWORD$(hwndOwner)
LET p$=p$ & DWORD$(HInstance)
LET p$=p$ & DWORD$(lpstrFilter)
LET p$=p$ & DWORD$(lpstrCustomFilter)
LET p$=p$ & DWORD$(nMaxCustFilter)
LET p$=p$ & DWORD$(nFilterIndex)
LET p$=p$ & DWORD$(lpstrFile)
LET p$=p$ & DWORD$(nMaxFile)
LET p$=p$ & DWORD$(lpstrFileTitle)
LET p$=p$ & DWORD$(nMaxFileTitle)
LET p$=p$ & DWORD$(lpstrInitialDir)
LET p$=p$ & DWORD$(lpstrTitle)
LET p$=p$ & DWORD$(Flags)
LET p$=p$ & WORD$(nFileOffset)
LET p$=p$ & WORD$(nFileExtension)
LET p$=p$ & DWORD$(lpstrDefExt)
LET p$=p$ & DWORD$(lCustData)
LET p$=p$ & DWORD$(lpfnHook)
LET p$=p$ & DWORD$(lpTemplateName)
SELECT CASE spc$
CASE "OPEN"
IF GetOpenFileNameA(p$)<>0 THEN
LET GetFileName$=Buff$(1:MAX(256,POS(Buff$,CHR$(0))))
END IF
CASE "SAVE"
IF GetSaveFileNameA(p$)<>0 THEN
LET GetFileName$=Buff$(1:MAX(256,POS(Buff$,CHR$(0))))
END IF
END SELECT
END FUNCTION

        └ちょっとわかりにくいですが, 白石和夫 2007/03/25 17:33:22  ツリーへ

Re: IFdisp$=""THENLETdisp$="テキスト" 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 17:33:22
ちょっとわかりにくいですが,
DECLARE STRING Buff$,p$,Filter$
FUNCTION GetOpenFileNameA(p$)
ASSIGN "COMDLG32.DLL","GetOpenFileNameA"
END FUNCTION
FUNCTION GetSaveFileNameA(p$)
ASSIGN "COMDLG32.DLL","GetSaveFileNameA"
END FUNCTION

DECLARE FUNCTION GetOpenFileNameA, GetSaveFileNameA
のあるあたりに移動して,
DECLARE FUNCTION GetOpenFileNameA, GetSaveFileNameA
は削除するということです。

         └訂正 白石和夫 2007/03/25 17:59:12  ツリーへ

Re: ちょっとわかりにくいですが, 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/25 17:59:12
訂正

ちょっとわかりにくいですが,
FUNCTION GetOpenFileNameA(p$)
ASSIGN "COMDLG32.DLL","GetOpenFileNameA"
END FUNCTION
FUNCTION GetSaveFileNameA(p$)
ASSIGN "COMDLG32.DLL","GetSaveFileNameA"
END FUNCTION

DECLARE FUNCTION GetOpenFileNameA, GetSaveFileNameA
のあるあたりに移動して,
DECLARE FUNCTION GetOpenFileNameA, GetSaveFileNameA
は削除するということです。

          └お休みのところお手数をお掛けいたしまして... 寺嶋 春樹 2007/03/26 08:16:17  ツリーへ

Re: 訂正 返事を書く ノートメニュー
寺嶋 春樹 <ehlswphgwb> 2007/03/26 08:16:17
お休みのところお手数をお掛けいたしまして申し訳ございません。
ご教授頂いた様、改善してみます。
有難うございました。


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。