Add prototype for reading files
This commit is contained in:
parent
f47f2e738f
commit
cfcd98a239
@ -1,9 +1,13 @@
|
||||
program main
|
||||
use WebServer, only: get_progress
|
||||
use FileReader, only: read_file
|
||||
use Greeter, only: say_hello
|
||||
|
||||
implicit none
|
||||
|
||||
character, allocatable :: Data
|
||||
|
||||
call say_hello()
|
||||
call get_progress()
|
||||
call read_file("/home/skingging/Documents/Projects/Fortran/Web-Server-In-Fortran/html/index.html", Data)
|
||||
end program main
|
||||
|
25
html/index.html
Normal file
25
html/index.html
Normal file
@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="UTF-8" />
|
||||
|
||||
<title>Hello, world!</title>
|
||||
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
|
||||
<meta name="description" content="" />
|
||||
|
||||
<link rel="icon" href="favicon.png">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>Hello, world!</h1>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
48
src/FileReader.f90
Normal file
48
src/FileReader.f90
Normal file
@ -0,0 +1,48 @@
|
||||
module FileReader
|
||||
!implicit none
|
||||
|
||||
public :: read_file
|
||||
contains
|
||||
subroutine read_file (FileName, Data)
|
||||
integer :: io
|
||||
integer :: LineLength, iostat
|
||||
integer :: TotalLength
|
||||
logical :: res
|
||||
character (len=*), intent (in) :: FileName
|
||||
character (len=*), allocatable, intent (out) :: Data
|
||||
character(len=:), allocatable :: TempData
|
||||
character(len=256) :: LineBuffer
|
||||
|
||||
inquire( file=trim(FileName), exist=res )
|
||||
|
||||
if (.not. res) then
|
||||
print *, "File does not exist."
|
||||
return
|
||||
end if
|
||||
|
||||
open(newunit=io, file=trim(FileName), status="old", action="read")
|
||||
|
||||
TotalLength = 0
|
||||
|
||||
allocate(character(len=0) :: TempData) ! Start with an empty string
|
||||
|
||||
read(io, *, iostat=iostat)
|
||||
|
||||
do
|
||||
read(io, *, IOSTAT=iostat) LineBuffer
|
||||
if (iostat /= 0) exit ! Exit loop on end-of-file or error
|
||||
|
||||
! Append the current line to TempData. CHAR(10) is a newline
|
||||
TempData = TempData // LineBuffer // CHAR(10)
|
||||
end do
|
||||
|
||||
! Allocate Data to match the length of TempData and copy it over
|
||||
allocate(character(len=len(TempData)) :: Data)
|
||||
Data = TempData
|
||||
|
||||
print *, TempData
|
||||
|
||||
close(io)
|
||||
|
||||
end subroutine read_file
|
||||
end module FileReader
|
Loading…
Reference in New Issue
Block a user