ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2017年9月25日(月) 15:03

All times are UTC+09:00




新しいトピックを投稿する  トピックへ返信する  [ 2 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2011年5月26日(木) 13:07 
オフライン

登録日時: 2006年2月05日(日) 17:10
記事: 189
住所: 東京都
GetOpenFileNameでファイル フィルター(lpstrFilter)にコンスタントで定義済のものを指定すると
 ①ダイアログボックスにファイルカレントディレクトリ配下にあるファイル名が取得設定されない。
 ②ファイルの種類にゴミ(多分EXEの実行コードと思われる)が付加される。
対象バージョン
AB V05CP4以降
確認環境
WINDOWS 7/HOME SP1
WINDOWS XP
ソースコードを添付しますのでご確認よろしくお願いします。
[hide]
コード:
/**************************/
/* GetOpenFileName テスト */
/**************************/
  CONST FILTER = Ex"テキスト ファイル(*.txt)\0*.txt\0すべてのファイル(*.*)\0*\0\0"
  DIM OFN AS OPENFILENAME
  DIM FILENAME[255] AS Char
  'GetOpenFileName テストその1
  'ファイル フィルター(lpstrFilter)リテラル指定
  'ダイアログボックスにファイルカレントディレクトリ配下にある
  'ファイル名が設定される。
  FillMemory(VarPtr(OFN),Len(OFN),0)
  OFN.lStructSize  = Len(OFN)
  OFN.hwndOwner    = NULL
  OFN.lpstrFilter  = Ex"テキスト ファイル(*.txt)\0*.txt\0すべてのファイル(*.*)\0*\0\0"
  OFN.nFilterIndex = 1
  OFN.lpstrFile    = FILENAME
  OFN.nMaxFile     = MAX_PATH
  OFN.lpstrTitle   = "ファイルを開く"
  OFN.Flags        = OFN_FILEMUSTEXIST OR OFN_HIDEREADONLY OR OFN_PATHMUSTEXIST
  OFN.lpstrDefExt  = "*"
  IF GetOpenFileName(OFN) <> 0 THEN
    MessageBox(NULL,FILENAME,"指定したファイル名",MB_OK)
  ELSE
    MessageBox(NULL,"ファイル名を指定願います。","GetOpen",MB_OK)
  END IF
  'GetOpenFileName テストその2
  'ファイル フィルター(lpstrFilter)コンスタント指定
  'V05CP4/V05CP5でコンパイルすると
  'ダイアログボックスにファイルカレントディレクトリ配下にある
  'ファイル名が設定さない。
  FillMemory(VarPtr(OFN),Len(OFN),0)
  OFN.lStructSize  = Len(OFN)
  OFN.hwndOwner    = NULL
  OFN.lpstrFilter  = FILTER
  OFN.nFilterIndex = 1
  OFN.lpstrFile    = FILENAME
  OFN.nMaxFile     = MAX_PATH
  OFN.lpstrTitle   = "ファイルを開く"
  OFN.Flags        = OFN_FILEMUSTEXIST OR OFN_HIDEREADONLY OR OFN_PATHMUSTEXIST
  OFN.lpstrDefExt  = "*"
  IF GetOpenFileName(OFN) <> 0 THEN
    MessageBox(NULL,FILENAME,"指定したファイル名",MB_OK)
  ELSE
    MessageBox(NULL,"ファイル名を指定願います。","GetOpen",MB_OK)
  END IF
END
[/hide]


最後に編集したユーザー たかせ on 2011年6月05日(日) 18:50 [ 編集 1 回目 ]

通報する
ページトップ
 記事の件名:
投稿記事Posted: 2011年6月04日(土) 21:47 
オフライン

登録日時: 2005年5月31日(火) 17:59
記事: 895
住所: 東京都
報告ありがとうございます。提示してあるコードで同じ挙動を見られました。

きちんと調べていませんが、想像するにConstだと\0から後ろがないかのように扱われているように思えます。まず、そこのところから調べてみたいと思います。


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 2 件の記事 ] 

All times are UTC+09:00


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by KONISHI Yohsuke