Silverfrost Forums

Welcome to our forums

C# and FTN95

7 Oct 2014 7:08 #14785
  1. Using C# for Gui creation seems to be easier than using ClearWin+ Is it possible to write Fortran Functions and Subroutines that can be called from within a C# Program ? If so, are there examples?

  2. I think I read that a Clearwin+ code CD was available. If so, where ?

BTW - I am thoroughly enjoying the Plato experience.

BR Bob

8 Oct 2014 6:13 #14786

If you have used the default installation process then you will find examples in C:\Users\xxx\Documents\FTN95 Examples\NET and C:\Users\xxx\Documents\FTN95 Examples\clearwin.

There is no CD that I know of.

8 Oct 2014 9:51 #14787

Paul,

The CD may actually be 'archaeology' or 'folk memory'. In the days of Salford Software FTN77, Clearwin was an add-on, separately purchasable (£50 if I remember). However, I imagine that it was a 3.5' floppy disk rather than a CD at the time.

While it may be true that a flavour of C with or without Clearwin+ could be a better way of programming a GUI than the combination of Fortran 95 and Clearwin+, the observation is of negligible value to someone who has programmed Fortran for four and a half decades, and regards C (in all its flavours) as anathema, and as incomprehensible as Sanskrit (or Klingon)! Such dinosaurs still exist ...

Eddie

8 Oct 2014 9:27 (Edited: 9 Oct 2014 7:09) #14793

'Using C# for Gui creation seems to be easier than using ClearWin+'

Really? That's truly interesting...

Please post made in C# GUI source with similar elements as in this complete Fortran code written in Clearwin+

i=winio@('%ww%ca[win]%mn[File[Exit]]%th%dd%il%cn%`bg[yellow]%?7rd[index]%ff%nl%cn%bt[Exit]%ff','exit',1,1,0,10,j) 
 end

Or plot the graph like in this single Fortran line example

Real*8 x(100),y(100);N=100;do i=1,N;x(i)=i;y(i)=i**2;enddo;i=winio@('%ww%pv%pl[x_array]',400,300,N,x,y);End

Or if time allows create this GUI made in Clearwin in minutes

  module all_defs 
    use clrwin 
    character (len=32) :: AppName, AppVer, AppAPIVer, Password,  ReqTypeL1(4) 
    character (len=32) ::  SymbolsForL1, SymbolHist, ReqTypeHist(2) 
    character (len=32) ::  FromDateTimeHist, ToDateTimeHist, fileSave_URL 
    character ch_read_url*128, save64*64, tmp128*128 
    real*8 FreqHistQuote 
    integer IOlun, iTICK, iL1 
    CONTAINS 
    integer function cbGetHist() 
    if(iTICK.eq.0.or.iTICK.eq.2) write (save64,'(e10.3)') FreqHistQuote 
    if(iTICK.eq.1)               write (save64,'(e10.3)') 0.001 
    ch_read_url='http://127.0.0.1:16240/req?GetHistory(DELL,9/02/2009,0,0.001,NO)' 
    ch_read_url(39:)=' ' 
    ch_read_url=trim(ch_read_url)//trim(SymbolHist)//','//FromDateTimeHist(1:10)//& 
                &','//ToDateTimeHist(1:10)//','//save64(2:10)//',NO' 
    call READ_URL@(ch_read_url,fileSave_URL,0,ier) 
    if(ier.eq.1) goto 1 
    open(unit=21,file=fileSave_URL,STATUS='readonly', err=1) 
    do i=1,1000000 
    read(   21,'(a)',err=1,end=1) tmp128 
    write(ioLun,'(a)')          tmp128 
    enddo 
 1  close (21,err=1) 
    cbGetHist=1 
    end function cbGetHist 

    integer function cbGetVer() 
    ch_read_url='http://127.0.0.1:16240/req?GetVersion()' 
    call READ_URL@(ch_read_url,fileSave_URL,0,ier) 
    if(ier.eq.1) goto 1 
    open(unit=21,file=fileSave_URL,STATUS='readonly', err=1) 
    do i=1,1000000 
    read(   21,'(a)',err=1,end=1) tmp128 
    write(ioLun,'(a)')          tmp128 
    enddo 
 1  close (21,err=1) 
    cbGetVer=1 
    end function cbGetVer 

    integer function L1Quote() 
    ch_read_url='http://127.0.0.1:16240/req?GetLastQuote(stock,stock,stock...)' 
    ch_read_url(41:)=' ' 
    ch_read_url(41:)=trim(ch_read_url)//SymbolsForL1//')' 
    call READ_URL@(ch_read_url,fileSave_URL,0,ier) 
    if(ier.eq.1) goto 1 
    open(unit=21,file=fileSave_URL,STATUS='readonly', err=1) 
    do i=1,1000000 
    read(21,'(a)',err=1,end=1) tmp128 
    write(ioLun,'(a)')         tmp128 
    enddo 
 1  close (21,err=1)    
    L1Quote =1 
    end function L1Quote 
    integer function cbVoid() 
    cbVoid=1 
    end function cbVoid 
   end module all_defs
9 Oct 2014 7:07 #14794
!---------------------------------------------------------------------------
   program DEMO 
    use clrwin 
    use all_defs 
   
    AppName='DEMO' 
    ReqTypeL1(1)='SNAP';ReqTypeL1(2)='SUB'; ReqTypeL1(3)='UBSUB'; ReqTypeL1(4)='UBSUBALL' 
    ReqTypeHist(1)='TICK';ReqTypeHist(2)='OHLC' 
    SymbolHist='DELL' 
    SymbolsForL1='MA,V,LVS,KBH,^IXIC' 
    FreqHistQuote=1. 
    AppVer='1.0.0' 
    AppAPIVer='1.000' 
    Password=' ' 
    iTICK=0; iL1=0 
    ioLun = 11 
    fileSave_URL= 'histQ' 
    FromDateTimeHist= '2009/09/22' 
    ToDateTimeHist  = '2009/09/25' 

    i=winio@('%ww[no_border]%sy[3d_thin]%nr%nd&') 
    i=winio@('%ac[Esc]&','exit') 
    i=winio@('%sf%ts&',0.8d0)    
    i=winio@('%3.1ob&') 
    i=winio@('  AppName%ff%14rs%ff&',AppName) 
    i=winio@('  AppVer%ff%14rs%ff&',AppVer) 
    i=winio@('  AppAPIVer%ff%14rs%ff&',AppAPIver) 
    i=winio@('  Password%ff%14rs%ff %ff %ff&',password) 
    i=winio@('   %^tt[Login]%ff&',cbGetVer) 
    i=winio@('   %^tt[Clear]&',cbVoid) 
    i=winio@('%cb&') 
    i=winio@('  ReqType%ff%`15ls%ff&',ReqTypeL1,4,iL1) 
    i=winio@('  Symbol%ff%16.5re%ff %ff %ff %ff %ff %ff %ff&',SymbolsForL1) 
    i=winio@('    %^tt[LastQuote]%ff&',L1Quote) 
    i=winio@('%cb&') 
    i=winio@('  ReqType%ff%`15ls%ff&',ReqTypeHist,2,iTICK) 
    i=winio@('  Freq%ff%16rf%ff&',FreqHistQuote) 
    i=winio@('  Symbol%ff%15rs%ff&',SymbolHist) 
    i=winio@('  From%ff%15rs%ff&',FromDateTimeHist) 
    i=winio@('  To%ff%15rs%ff&',ToDateTimeHist) 
    i=winio@('  %^tt[GetHistory]%ff&',cbGetHist) 
    i=winio@('%cb%ff%nl&') 
    i=winio@('%50.16cw[hscroll,vscroll]',ioLun) 
   end
9 Oct 2014 10:40 #14800

Thanks for your work guys. I'll be spending some time getting these examples to run. Bob

Please login to reply.