Portál AbcLinuxu, 9. května 2025 23:14

Dotaz: Dialogové okno "otevřít soubor" ve FORTRANU?

Marek 'Maxicom' Zelenka avatar 27.8.2008 14:21 Marek 'Maxicom' Zelenka | skóre: 14 | Kralupy nad Vltavou
Dialogové okno "otevřít soubor" ve FORTRANU?
Přečteno: 384×
Odpovědět | Admin
Dobrý den,

potřeboval bych z programu, napsaném ve FORTRANU, zavolat dialogové okno "otevřít soubor", a pak programu vrátit cestu k vybranému souboru.

Nevíte prosím někdo jak na to? Mám představu, že se k programu přibalí nějaká knihovna, která toto obstarává v prostředích GNOME nebo KDE a přes ní se to "nějak" udělá. Program by měl fungovat jak v Linuxu tak i na Windows.

Děkuji za všechny vaše nápady
Debian GNU/Linux — instalační příručka v češtině
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.8.2008 20:19 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
Rozbalit Rozbalit vše Re: Dialogové okno "otevřít soubor" ve FORTRANU?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jaký Fortran máte na mysli? Ve Fortranu 77 bych se s něčím takovým otravovat nechtěl a obsluhu těchto věcí bych vytvořil v C nebo C++. Výslednou funkci pak lze samozřejmě z Fortranu 77 zavolat. Fortran 95 neznám skoro vůbec, ale tam už by možná šly takové funkce volat přímo.

Připojení funkcí a knihoven z jiného jazyka je snadné, z hlediska volání překladače a linkeru je to v podstatě stejné jako u C a C++. Jména proměnných a funkcí v obou jazycích se však trochu liší. GNU Fortran 77 připojuje ke jménům funkcí automaticky podtržítko, funkce opndlg_ v C se bude volat ve Fortranu call opndlg. Common blocky jsou v C dostupné jako struktury, jejímiž prvky jsou jednotlivé proměnné.
Marek 'Maxicom' Zelenka avatar 9.9.2008 23:55 Marek 'Maxicom' Zelenka | skóre: 14 | Kralupy nad Vltavou
Rozbalit Rozbalit vše Re: Dialogové okno "otevřít soubor" ve FORTRANU?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Řešení nakonec bylo jednoduché:

opendialog.f90:

! Program: Grafické rozhrani pro interaktivni vstup jmena souboru.

! Pouzity kompilator: Intel(R) Visual Fortran Compiler for applications running on IA-32, Version 10.1

! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

      program opendialog

! nacteme potrebne knihovny pro pouziti Windows API

      use comdlg32

      use user32

      

      implicit none



      type(T_OPENFILENAME) ofn

      character(512) :: file_spec = ""C

      integer status,ilen

      

      ofn%lStructSize = SIZEOF(ofn)

      ofn%hwndOwner = GetForegroundWindow()

      ofn%hInstance = NULL

      ofn%lpstrFilter = loc(0)

      ofn%lpstrCustomFilter = NULL

      ofn%nMaxCustFilter = 0

      ofn%nFilterIndex = 1

      ofn%lpstrFile = loc(file_spec)

      ofn%nMaxFile = sizeof(file_spec)

      ofn%nMaxFileTitle = 0

      ofn%lpstrInitialDir = NULL

      ofn%lpstrTitle = loc(""C)

      ofn%Flags = OFN_PATHMUSTEXIST

      ofn%lpstrDefExt = loc("txt"C)

      ofn%lpfnHook = NULL

      ofn%lpTemplateName = NULL

      

! Zkontrolujeme navratovou hodnotu

      status = GetOpenFileName(ofn)

      if (status .eq. 0) then

        type *,'Nevratila se cesta k souboru!'

      else

! Zjistime pocet znaku cesty k souboru

        ilen = INDEX(file_spec,CHAR(0))

        type *,'Cesta k souboru: ',file_spec(1:ilen-1)

      end if

      end program opendialog
Debian GNU/Linux — instalační příručka v češtině
Marek 'Maxicom' Zelenka avatar 9.9.2008 23:57 Marek 'Maxicom' Zelenka | skóre: 14 | Kralupy nad Vltavou
Rozbalit Rozbalit vše Re: Dialogové okno "otevřít soubor" ve FORTRANU?
Řešení je zatím jen pro Windows...
Fuky avatar 10.9.2008 01:53 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Dialogové okno "otevřít soubor" ve FORTRANU?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Příloha:

Já bych to nekomplikoval, napsal část s GUI v C a přilinkoval k vlastnímu programu ve Fortranu. Ukázka v příloze využívá GTK.

-- RÁMO: psí tábor , ETriatlon: Výuka plavání
Fuky avatar 10.9.2008 07:51 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Dialogové okno "otevřít soubor" ve FORTRANU?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nebo můžeš zkusit Platform Independent Library for Fortran, ale myslím, že to nebude moc používané a odladěné...
-- RÁMO: psí tábor , ETriatlon: Výuka plavání
Fuky avatar 10.9.2008 08:01 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Dialogové okno "otevřít soubor" ve FORTRANU?
Odpovědět | | Sbalit | Link | Blokovat | Admin
A ještě mě napadá, že F2PY - Fortran to Python interface generator by nemuselo být špatné řešení.
-- RÁMO: psí tábor , ETriatlon: Výuka plavání
Marek 'Maxicom' Zelenka avatar 10.9.2008 08:52 Marek 'Maxicom' Zelenka | skóre: 14 | Kralupy nad Vltavou
Rozbalit Rozbalit vše Re: Dialogové okno "otevřít soubor" ve FORTRANU?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.