2016-11-30 6 views
1

タブで行を分割し、カンマを文字として読みたいと思います。私はこの種の解決策に従いました。 "\ t"または ""を含む変数posを使用していましたが、私は0を返すので、タブは見つかりませんでした。どちらが正しい解決策ですか?タブ文字の行を分割する

INTEGER :: i, dots, commas, A, T, C, G, InDel, M, Z, L, s, sf, numsize, InDelSlide, pos, base, cov 
CHARACTER(len=1) :: ref 
CHARACTER(len=10000) :: arg, seq, qual 
CHARACTER(len=1024) :: buffer 
CHARACTER(len=6) :: num 
CHARACTER(len=5) chr 

READ(5,'(A)') buffer 
PRINT *, buffer 
pos = INDEX(buffer, " ") 
arg = buffer(1:pos-1) 
READ(buffer(pos+1:), *) chr, base, ref, cov, seq, qual 
+0

タブの**エスケープ**表現(「\ t」はFortranで認識されないとわかりませんが、単にASCII値(10進数9)を使用できます)を使用する代わりに、 – FDavidov

答えて

1

Fotranのタブ文字は、単にachar(9)です。 achar()機能

pos = INDEX(buffer, achar(9)) 

を使用して、あなたがそれに渡すASCII値を持つ文字を返します。

+0

まで覚えておいてください、tab charcaterはACHARです(9)。ACHAR(10)は "改行"文字です –

+0

本当に、訂正ありがとう!!! –