Как удалить символ новой строки из строки в Fortran77?

Я указываю имя файла моей программе Fortran77 из командной строки. Однако я получаю символ новой строки, добавленный к строке имени файла (полученной с помощью getarg).

Как я могу удалить символ новой строки?


person Tania    schedule 12.08.2014    source источник
comment
Я временно обошел это, добавив один дополнительный аргумент после аргумента имени файла. Тогда в имени файла было много пробелов, которые я легко удалил в цикле do (обрезка не работает в f77), и теперь все работает как положено.   -  person Tania    schedule 13.08.2014
comment
посмотрите, есть ли у вашего компилятора lnblnk() для второй проблемы. новая строка необычная, но поскольку getarg нестандартная, кто знает   -  person agentp    schedule 13.08.2014


Ответы (1)


Вы можете использовать альтернативу len_trim из https://stackoverflow.com/a/1259426/721644, адаптированную для поиска новой строки персонаж

  integer function findnl(s)
    character(len=*) :: s
    integer i

    findnl = len(s)+1
    do i = 1, len(s)
      if (s(i:i) .eq. achar(10)) then
        findln = i
        return
      end if
    end do
  end function

После этого измените остальную часть строки на пробелы

 l = findnl(str)
 if (l .le. len(str)) str(l:) = " "
person Vladimir F    schedule 13.08.2014