- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using the following code foropen file dialog. it works in CVF , but get some error for GETOPENFILENAME. How can I make this work in IVF?
Thanks so much,
Lu
!codes written in CVF
USE DATA_SET
USE DFLIB
USE DFWINTY
USE DFWIN
IMPLICIT NONE
TYPE (T_OPENFILENAME)FRED
LOGICAL(KIND=4)RET
INTEGER(KIND=4)ilen1,ilen,ierror
! character(8) dataset
CHARACTER(LEN=60)DLGTITLE
CHARACTER(LEN=256):: file_spec=" "C
!CHARACTER*(*), PARAMETER::FILTER = &
!"Data Files(*.data)"C//"*.data" C// &
!"All Files(*.*)"C//"*.*" C//" "C
CHARACTER*(*), PARAMETER::FILTER = &
'Data Files(*.data)' //char(0)//'*.data' //char(0)// &
'All Files(*.*)' //char(0)//'*.*' //char(0)//char(0)
LOGICAL(KIND=4)CHECKED
DLGTITLE = 'Input Program Data Files'C
FRED%LSTRUCTSIZE = (BIT_SIZE(FRED%LSTRUCTSIZE) + &
BIT_SIZE(FRED%HWNDOWNER) + &
BIT_SIZE(FRED%HINSTANCE) + &
BIT_SIZE(FRED%LPSTRFILTER) + &
BIT_SIZE(FRED%LPSTRCUSTOMFILTER) + &
BIT_SIZE(FRED%NMAXCUSTFILTER) + &
BIT_SIZE(FRED%NFILTERINDEX) + &
BIT_SIZE(FRED%LPSTRFILE) + &
BIT_SIZE(FRED%NMAXFILE) + &
BIT_SIZE(FRED%LPSTRFILETITLE) + &
BIT_SIZE(FRED%NMAXFILETITLE) + &
BIT_SIZE(FRED%LPSTRINITIALDIR) + &
BIT_SIZE(FRED%LPSTRTITLE) + &
BIT_SIZE(FRED%FLAGS) + &
BIT_SIZE(FRED%NFILEOFFSET) + &
BIT_SIZE(FRED%NFILEEXTENSION) + &
BIT_SIZE(FRED%LPSTRDEFEXT) + &
BIT_SIZE(FRED%LCUSTDATA) + &
BIT_SIZE(FRED%LPFNHOOK) + &
BIT_SIZE(FRED%LPTEMPLATENAME))/8
FRED%HWNDOWNER = NULL
FRED%HINSTANCE = NULL
FRED%LPSTRFILTER = LOC(FILTER)
FRED%LPSTRCUSTOMFILTER = NULL
FRED%NMAXCUSTFILTER = 0
FRED%NFILTERINDEX = 1
FRED%LPSTRFILE = LOC(file_spec)
FRED%NMAXFILE = LEN(file_spec)
FRED%LPSTRFILETITLE = NULL
FRED%NMAXFILETITLE = 0
FRED%LPSTRINITIALDIR = NULL
FRED%LPSTRTITLE = LOC(DLGTITLE)
FRED%FLAGS = NULL
FRED%NFILEOFFSET = NULL
FRED%NFILEEXTENSION = NULL
FRED%LPSTRDEFEXT = LOC("data"C)
FRED%LCUSTDATA = NULL
FRED%LPFNHOOK = NULL
FRED%LPTEMPLATENAME = NULL
RET = GETOPENFILENAME(FRED)
CALL COMDLGER(IERROR)
IF(.NOT.RET) THEN
PRINT *,' No new file name specified'
else
...
end if
RETURN
END
Thanks so much,
Lu
!codes written in CVF
USE DATA_SET
USE DFLIB
USE DFWINTY
USE DFWIN
IMPLICIT NONE
TYPE (T_OPENFILENAME)FRED
LOGICAL(KIND=4)RET
INTEGER(KIND=4)ilen1,ilen,ierror
! character(8) dataset
CHARACTER(LEN=60)DLGTITLE
CHARACTER(LEN=256):: file_spec=" "C
!CHARACTER*(*), PARAMETER::FILTER = &
!"Data Files(*.data)"C//"*.data" C// &
!"All Files(*.*)"C//"*.*" C//" "C
CHARACTER*(*), PARAMETER::FILTER = &
'Data Files(*.data)' //char(0)//'*.data' //char(0)// &
'All Files(*.*)' //char(0)//'*.*' //char(0)//char(0)
LOGICAL(KIND=4)CHECKED
DLGTITLE = 'Input Program Data Files'C
FRED%LSTRUCTSIZE = (BIT_SIZE(FRED%LSTRUCTSIZE) + &
BIT_SIZE(FRED%HWNDOWNER) + &
BIT_SIZE(FRED%HINSTANCE) + &
BIT_SIZE(FRED%LPSTRFILTER) + &
BIT_SIZE(FRED%LPSTRCUSTOMFILTER) + &
BIT_SIZE(FRED%NMAXCUSTFILTER) + &
BIT_SIZE(FRED%NFILTERINDEX) + &
BIT_SIZE(FRED%LPSTRFILE) + &
BIT_SIZE(FRED%NMAXFILE) + &
BIT_SIZE(FRED%LPSTRFILETITLE) + &
BIT_SIZE(FRED%NMAXFILETITLE) + &
BIT_SIZE(FRED%LPSTRINITIALDIR) + &
BIT_SIZE(FRED%LPSTRTITLE) + &
BIT_SIZE(FRED%FLAGS) + &
BIT_SIZE(FRED%NFILEOFFSET) + &
BIT_SIZE(FRED%NFILEEXTENSION) + &
BIT_SIZE(FRED%LPSTRDEFEXT) + &
BIT_SIZE(FRED%LCUSTDATA) + &
BIT_SIZE(FRED%LPFNHOOK) + &
BIT_SIZE(FRED%LPTEMPLATENAME))/8
FRED%HWNDOWNER = NULL
FRED%HINSTANCE = NULL
FRED%LPSTRFILTER = LOC(FILTER)
FRED%LPSTRCUSTOMFILTER = NULL
FRED%NMAXCUSTFILTER = 0
FRED%NFILTERINDEX = 1
FRED%LPSTRFILE = LOC(file_spec)
FRED%NMAXFILE = LEN(file_spec)
FRED%LPSTRFILETITLE = NULL
FRED%NMAXFILETITLE = 0
FRED%LPSTRINITIALDIR = NULL
FRED%LPSTRTITLE = LOC(DLGTITLE)
FRED%FLAGS = NULL
FRED%NFILEOFFSET = NULL
FRED%NFILEEXTENSION = NULL
FRED%LPSTRDEFEXT = LOC("data"C)
FRED%LCUSTDATA = NULL
FRED%LPFNHOOK = NULL
FRED%LPTEMPLATENAME = NULL
RET = GETOPENFILENAME(FRED)
CALL COMDLGER(IERROR)
IF(.NOT.RET) THEN
PRINT *,' No new file name specified'
else
...
end if
RETURN
END
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
7 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The error message isinvalid lStructSize error
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
FRED%LSTRUCTSIZE = SIZEOF(FRED)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How does your code fail in IVF?
What is the result of COMDLGERROR?
Try
...
CHARACTER(18)::FILTER(5)
! Make all FILTER strings the same length
FILTER(1)='Data Files(*.data)'C
FILTER(2)=' *.data' C
FILTER(3)='All Files (*.*)'C
FILTER(4)=' *.*'C
FILTER(5)=char(0)//char(0)
...
...
FRED%LPSTRFILTER= LOC(FILTER(1))
FRED%LSTRUCTSIZE= SIZEOF(FRED)
...
What is the result of COMDLGERROR?
Try
...
CHARACTER(18)::FILTER(5)
! Make all FILTER strings the same length
FILTER(1)='Data Files(*.data)'C
FILTER(2)=' *.data' C
FILTER(3)='All Files (*.*)'C
FILTER(4)=' *.*'C
FILTER(5)=char(0)//char(0)
...
...
FRED%LPSTRFILTER= LOC(FILTER(1))
FRED%LSTRUCTSIZE= SIZEOF(FRED)
...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Paul,
Thanks so much for you reply. I can not reach my computer until Wednesday. I will try this and keep you updted the results.
Lu
Thanks so much for you reply. I can not reach my computer until Wednesday. I will try this and keep you updted the results.
Lu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Paul,
It works! Thanks so much!
Lu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear anthonyrichards,
Thanks again for your answer.This works and isvery helpful to me!
Lu
Thanks again for your answer.This works and isvery helpful to me!
Lu

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page