FORTRANで二つのファイルの地点番号を抜き出すプログラムを書きたい

このQ&Aのポイント
  • FORTRANで二つのファイル(a.csv,b.csv)の地点番号を比較し、一致する場合に抜き出すプログラムを書きたいです。
  • 現在、FORTRANで二つのファイル(a.csv,b.csv)の地点番号を比較し、一致する場合に抜き出すプログラムを作成しようとしていますが、途中でエラーが発生して困っています。
  • FORTRANを使用して、a.csvファイルとb.csvファイルの地点番号を比較し、一致する場合に抜き出すプログラムを作りたいですが、エラーが発生しています。どうすれば解決できるでしょうか?
回答を見る
  • ベストアンサー

FORTRANについての質問です。

FORTRANについての質問です。 現在、二つのファイル(a.csv,b.csv)を読んで,a.csvのファイル内の地点番号とb.csvのファイル内の地点番号が一緒なら抜き出すというプログラムを書きたいのですが、途中で抜け出せなくなってしまいました。下に使用しているファイルの中身を、ごくわずかですが載せておきます。 b.csvのほうは、年別で33個のファイルに分けられています。 ----------------------a.csv------------------------------------------ 30 23226 1977 大野 31 13311 1978 増毛 31 14101 1978 新篠津 31 15251 1978 芦別 31 16281 1978 真狩 31 17076 1978 興部 ----------------------------------------------------------------------- ----------------------b.csv-------------------------------------------2006,1,1,11016,141.678,45.4147,3,稚内,0,33,16,-64,-51,-75,55,1,9 2006,1,1,11151,141.138,45.1767,14,沓形,1,20,1,-52,-36,-68,4,1,6 2006,1,1,11176,141.778,45.1017,12,豊富,0,9,4,-80,-51,-116,59,0,3 2006,1,1,11206,142.362,45.1117,13,浜頓別,1,12,13,-92,-47,-140,66,1,3 2006,1,1,11276,142.28,44.965,25,中頓別,0,5,11,-137,-44,-209,46,0,2 2006,1,1,11291,142.585,44.9397,7,北見枝幸,0,25,13,-70,-47,-94,70,0,6 2006,1,1,11316,142.48,44.84,14,歌登,0,2,1,-115,-49,-170,56,0,1 ------------------------------------------------------------------------ implicit none REAL :: number,code,year,name REAL :: yea,mon,day,id,chiki,nam INTEGER :: lon,lat,pre,wind,winddirection,temp INTEGER :: hightemp,lowtemp,sunlight,maxrain,maxwind open(10,file='a.csv',status='old',iostat=ie) do iwork=1976, 2008 write(yyyy,"(i4.4)") iwork open(50, file='b'//yyyy//'.csv', status='old', & & iostat=io) if (io < 0) cycle do i = 1, 99 read(10,*) number,code,year,name if(ie < 0) exit do ii = 1, 30000 read(50,*) yea,mon,day,id,lon,lat,chiki,nam,pre,wind,winddirection,temp,& & hightemp,lowtemp,sunlight,maxrain,maxwind if(io < 0) exit write(6,*) yea stop close(10) close(50) end エラーメッセージがenddo文が予期されている。プログラムのファイルのendが予期されていない。とでます。enddo文を足したりしても治りませんでした。おそらくどこか書き方が違うのでしょう。どうかアドバイスください。

  • ryoji
  • お礼率57% (90/156)

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8010/17118)
回答No.6

> read(50,*) yea,mon,day,id,lon,lat,chiki,nam,pre,wind,winddirection,temp,& > & hightemp,lowtemp,sunlight,maxrain,maxwind > if(io < 0) exit これではファイルの最後まで読んだらエラーになるに決まってるよね。ioってなんだ?

その他の回答 (5)

  • f272
  • ベストアンサー率46% (8010/17118)
回答No.5

だいたいa.csvというファイルの中身はとてもcvsファイルだとは思えません。 とりあえず program test implicit none REAL :: number,code,year,name open(10,file='test4.csv',status='old') read(10,*) number,code,year,name write(*,*) number,code,year,name end これをどういう風に変更したらまともに動くようになるのか考えてください。

ryoji
質問者

お礼

ありがとうございます。 test4.csvはa.csvのことで、実は、初めの質問で表示した中身と少し違いました。すみません。 区切りにカンマが入っています。これが、いつもの書き方と違ってくるのでしょうか? 初心者の僕には、まだ見当がつきません。

ryoji
質問者

補足

すいません。気づきました。宣言文ですね。 文字列はcharacterなどに変えました。 ------------------------------------------------------------------------------- program test implicit none INTEGER :: number,code,year CHARACTER(2) :: name open(10,file='test4.csv',status='old') read(10,*) number,code,year,name write(6,*) number,code,year,name end ---------------------------------------------------------------------------------- 長いほうのprogramも気をつけて直したのですが、多少動きましたが、出力されたのは1976がずらっと出ただけでして、FORTRAN runtaime error: End of file というエラーになります。 どうかアドバイスください。 INTEGER :: number,code,year INTEGER :: yea,mon,day,id,chiki REAL :: lon,lat INTEGER :: pre,wind,winddirection,temp INTEGER :: hightemp,lowtemp,sunlight,maxrain,maxwind CHARACTER(4) :: yyyy CHARACTER(2) :: name,nam open(10,file='test4.csv',status='old',iostat=ie) do iwork=1976, 2008 write(yyyy,"(i4.4)") iwork open(50, file='hokkaido_daily_lonlat'//yyyy//'.csv', status='old', & & iostat=io) if (io < 0) cycle do i = 1, 99 read(10,*) number,code,year,name if(ie < 0) exit do ii = 1, 30000 read(50,*) yea,mon,day,id,lon,lat,chiki,nam,pre,wind,winddirection,temp,& & hightemp,lowtemp,sunlight,maxrain,maxwind if(io < 0) exit write(6,*) yea enddo enddo close(50) enddo close(10) end

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

そこにエラーメッセージが書いてあるので, それを読んで理解すればいい. test4.csv なるファイルがどんなものかわからんので, 何がどうおかしいのかは自分で判断してくれ.

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

.... do の数をきちんと数えてください.

ryoji
質問者

お礼

お返事が遅くなってすいません。 ん~、3つでもできませんでした。

ryoji
質問者

補足

なんとかenddo3つでコンパイルできたのですが、実行できません。 At line 22 of file chiten.f90 (Unit 10 "test4.csv") Traceback: not available, compile with -ftrace=frame or -ftrace=full Fortran runtime error: Bad real number in item 4 of list input というエラーが出ます。書き順などが悪いのでしょうか?

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

なぜ enddo を「2個」書いたのですか?

ryoji
質問者

お礼

doを2回使っているので。 ただ1個でも2個でも結果は同じでした。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

do に対応する endodo はどこ? あと, なぜ stop のあとで close?

ryoji
質問者

お礼

enddoを2回つけてcloseしても、enddoなしでも、同じエラーメッセージなのです。 implicit none REAL :: number,code,year,name REAL :: yea,mon,day,id,chiki,nam INTEGER :: lon,lat,pre,wind,winddirection,temp INTEGER :: hightemp,lowtemp,sunlight,maxrain,maxwind open(10,file='test4.csv',status='old',iostat=ie) do iwork=1976, 2008 write(yyyy,"(i4.4)") iwork open(50, file='hokkaido_daily_lonlat'//yyyy//'.csv', status='old', & & iostat=io) if (io < 0) cycle do i = 1, 99 read(10,*) number,code,year,name if(ie < 0) exit do ii = 1, 30000 read(50,*) yea,mon,day,id,lon,lat,chiki,nam,pre,wind,winddirection,temp,& & hightemp,lowtemp,sunlight,maxrain,maxwind if(io < 0) exit write(6,*) yea enddo enddo close(10) close(50) end

関連するQ&A

  • fortranについての質問です。

    fortranについての質問です。 このFortranは、頭にそれぞれ14161~14163とつく33個のファイル(1/1~12/31,欠損地あり1年分)を読んでいき、例えば1/1、1/2…と365日分の33年の平均値を導くはずなのですが、下のようなエラーがでます。おそらく、14161が2008までないからではないかと思うのですが、現在勉強中なので、なにかアドバイス、おかしいところ修正できるところがありましたらお願いします。 program sapporo_kikouchi    INTEGER :: sum, no, point INTEGER :: year, mon, day, data INTEGER :: doy REAL,dimension(365) :: temp, ndata REAL :: lon, lat CHARACTER*4 yyyy CHARACTER*5 sssss ndata(:)=0.0 temp(:)=0.0 do ispot=14161,14163 write(sssss,"(i5)") ispot do iwork=1976, 2008 write(yyyy,"(i4.4)") iwork open(50, file=''//sssss//'_temp'//yyyy//'.csv', status='old') ! write(6,*) ispot iwork    do i = 1,366 read(50,*,iostat=io) id,year,mon,day,lon,lat,data if(io < 0) exit if(mon==2 .AND. day==29) then cycle endif call date2doy(year,mon,day,doy) temp(doy) = temp(doy) + data/10.0 ndata(doy) = ndata(doy) + 1 end do close(50) enddo !!! end of year loop enddo do i=1,365 if( ndata(i) == 0 ) then temp(i) = -99999.9 else temp(i)=temp(i)/ndata(i) endif write(6,*) i, temp(i), ndata(i) enddo stop end program subroutine date2doy(iy,im,id,idoy) INTEGER,dimension(12) :: nday INTEGER :: uruu !!uruu=1: うるう年、uruu=0: 通常の年 uruu=0 DATA nday /31,28,31,30,31,30,31,31,30,31,30,31/ if(mod(iy,4)==0 .AND. mod(iy,100)/=0) then uruu=1 endif if(mod(iy,1000)==0) then uruu=1 endif !! うるう年も無視する itotal = 0 if( im /= 1 )then do m=1, im-1 itotal = itotal + nday(m) enddo endif idoy = id + itotal ! write(6,*) iy,im,id, idoy return end ------------------------------------------------------------------------------ At line 18 of file kikouchi.f90 file: "14161_temp1993.csv" Traceback: not available, compile with -ftrace=frame or -ftrace=full Fortran runtime error: 指定されたファイルが見つかりません。 -------------------------------------------------------------------------------

  • Fortranについての質問です。下のプログラムは、ある地点(今回は1

    Fortranについての質問です。下のプログラムは、ある地点(今回は14161~14163)の33年間(1976~2008)の気温の平均を欠損値を考慮してだしているはずです。うるう年の判定はおまけで書いています。 この平均値に標準偏差もつけるプログラムにしたいのですが、どう書いていいのか手詰まり中です。どうかアドバイスください。 ---------データの一部(14162_temp1997.csv)------------------------------------- 14162 1997 1 1 141.332 43.0583 -10 14162 1997 1 2 141.332 43.0583 18 14162 1997 1 3 141.332 43.0583 -2 ---------プログラム------------------------------------------------------------ program sapporo_kikouchi INTEGER :: sum, no, point INTEGER :: year, mon, day, data INTEGER :: doy REAL,dimension(365) :: temp, ndata REAL :: lon, lat CHARACTER*4 yyyy CHARACTER*5 sssss ndata(:)=0.0 temp(:)=0.0 do ispot=14161,14163 write(sssss,"(i5)") ispot do iwork=1976, 2008 write(yyyy,"(i4.4)") iwork open(50, file=''//sssss//'_temp'//yyyy//'.csv', status='old',iostat=io) if (io < 0) cycle ! write(6,*) ispot iwork   do i = 1,366 read(50,*,iostat=io) id,year,mon,day,lon,lat,data if(io < 0) exit if(mon==2 .AND. day==29) then cycle endif call date2doy(year,mon,day,doy) temp(doy) = temp(doy) + data/10.0 ndata(doy) = ndata(doy) + 1 ! doyは一年のうち何日目かを表している enddo close(50) enddo !!! end of year loop enddo do i=1,365 if( ndata(i) == 0 ) then temp(i) = -99999.9 else temp(i)=temp(i)/ndata(i) endif write(6,*) i, temp(i), ndata(i) ! write(11,*) i,',',temp(i),',',ndata(i) end do stop end program subroutine date2doy(iy,im,id,idoy) INTEGER,dimension(12) :: nday INTEGER :: uruu !!uruu=1: うるう年、uruu=0: 通常の年 uruu=0 DATA nday /31,28,31,30,31,30,31,31,30,31,30,31/ if(mod(iy,4)==0 .AND. mod(iy,100)/=0) then uruu=1 endif if(mod(iy,1000)==0) then uruu=1 endif !! うるう年も無視する itotal = 0 if( im /= 1 )then do m=1, im-1 itotal = itotal + nday(m) enddo endif idoy = id + itotal ! write(6,*) iy,im,id, idoy return end

  • Fortranの出力の改行について

    Fortran超初心者です。 test1.csvのファイルには、x,yの変数がずっと続いています。 test2.datのファイルには、a,bの変数がずっと続いています。 この2つのファイルの変数を元に、d,eの値を求め、それをtest3.csvというファイルに出力したいのです。 test1.csvとtest2.datの計算はできていたのですが、test3.csvの出力は最後の計算結果のみしか出力されていません。 多分毎回出力はしているのですが、計算を繰り返すと上書きされ消えてしまうという仕組みになっているのだと思います。 どうやったら上書きされずに、csvファイルの次の行に次のデータを入力できますか? 以下私が考えたFortran90のプログラムです。 open (10, file='test1.csv', status='old')  do   read (10, *, iostat=ios) x, y   open (11, file='test2.dat', status='old')   do    read (11, *, iostat=jos) a, b    d = x +a    e = y + b    if (jos .lt. 0) exit   enddo   open (12, file='test3.csv', status='replace')   write (12, *) x, y, a, b, d, e   close (12)   close (11)   if (ios .lt. 0) exit  enddo close (10) 本当に始めたばかりで、いまいち意味の分かっていない部分もあるのですが、問題点を指摘してくれたら助かります。 わかりにくいので、具体的に少し書くと、 test1.csvには 1,2 9,3 6,4 とデータが続くとします。 test2.datには 80,50 10,20 90,60 とデータが続くとします。 test3.datには 1,2,80,50,81,52 1,2,10,20,11,22 1,2,90,60,91,62 9,3,80,50,89,53 9,3,10,20,19,23 9,3,90,20,99,23 6,4,80,60,86,64 6,4,10,20,16,24 6,4,90,20,96,24 と出力されるようにしたいのです。 実際のデータや変数名も違いますが、プログラムの構造は同じです。 よろしくおねがいします。

  • fortranで読み込んだ複数ファイルデータの見方

    また質問です。 character (13) :: fname do i = 1 , 3 write (fname ,"('sample_' , i2.2 , '.csv ')") , i enddo open (10 , file = fname) close (10) end fortranで連番のcsvファイルを上記のプログラムで読み込ませることはできたのですが、それぞれのファイルのデータの見方が分かりません。装置番号10でread文やwrite文を書くと最後に読み込んだファイルのデータしか見れません。どなたか教えてください。

  • fortran 途中まで考えたのですが。。。。

    エラトステネスのふるい(素数の倍数を除いていって残ったのが素数)で3桁の素数を求めて表示したいです。 私が考えたのは、 1・2~99までの数を素数かどうか調べて、素数を配列に入れていく 2・100~999まで素数の配列の中の数で割って、割り切れたらおしまい。割り切れなかったら表示していく ということです。 しかし下のプログラムではうまく素数配列ができていないようなのです。 ここまでかなり時間がかかったのでこのプログラムに手をいれて これ以外におかしくなるところもどこを直せばいいのか教えてくださるとうれしいです。 C C q223.f C PROGRAM q223 C IMPLICIT NONE C INTEGER N,i,K,s,l REAL a(99),b(99),c(99),X,Y C real M C a(1)=2 a(2)=3 l=2 C DO N=2,99,1 M=N**(0.5) S=M DO i=2,S,1 K=MOD(N,i) IF(K ==0)THEN exit ELSE IF(K /=0)THEN l=l+1 a(l)=N ENDIF ENDDO ENDDO C do N=100,999 do l=1,99 X=a(l) Y=N/X if(Y==0)then exit else if(Y/=0)then write(*,*)N end if end do end do c end よろしくおねがいします

  • fortranのtxtファイル出力書式について

    こんにちは。 fortranのtxtファイル出力について質問させていただきます。 下記のようなコードでtxtファイルに計算結果を出力させています。(途中省略) open(20, file ='outputx1.txt') do ax1 = 1, m do ax2 = 1, l if (sum2(ax1, 1, ax2) == 1) then write(20,*) ax1, ax2 endif enddo enddo close(20) ここでm=103,l=300です。 このコードで出力すると、結果は以下のようになります。      9    293      9    294      9    295      10     97      10     98      10     99 しかし、以下のようにtxtファイルを出力したいと考えています。 9 164 9 165 9 166 10 151 10 152 10 153 *の部分を色々といじってみたのですが、うまいやり方が見つかりません。 説明不足とは思いますが、アドバイスよろしくお願いします。

  • FORTRAN

    まだ素人で。試行錯誤行っています。 現在、アメダス(一ヶ月平均)を読み取り、必要に応じて計算するようなプログラムを作っています。しかし、アメダスはバイナリのため、それを読めるようなプログラムが必要なのですが、 ===AMEDAS DATA FILE NAME OF THE MONTH (UNCOMPRESSED) 'Amd1976.01' ===INDEX FILE OF THE YEAR =========================== 'idx1976.01' ===OUT PUT FILE NAME============================== 'pre1976.01' ===SORT OF DATA, 50:presipitation, 60:wind direction, 70:wind speed, 80:insolation, 90:temperature, 67:wind direction+speed 50 ==BEGIN AND END OF STATION NUMBER===================== 10000 99000 で、指定するとそのファイルのバイナリが読めるようになっています。 それで順序は、 f77 ame_M2.for → ./a.exe → g95 1976search.f90 → ./a.exe で行っております。ame_M2.forはバイナリを読むプログラムです。1976search.f90は自分が作った、アメダスデータを必要に応じて計算をするプログラムです。ただ、これでは、1976年1月(一ヶ月分)のデータだけ呼んで計算する形なので、今、1976年1月から1999年12月までを一気に読んで計算させたいんです。どうすればよいでしょうか??今自分でも考え中なのですが、なにかアドバイス、案などありましたら教えてください。できれば、上の指定するファイルとバイナリを読むプログラムをほぼいじらないで、自分の作った計算プログラムだけで、行うことは可能なのでしょうか?? program main integer :: day,hour(1:24) integer :: i,j,n open(11, file='pre1976region.csv', status = 'unknown') open(10, file='pre1976.01', status='old') open(10, file='pre1976.02', status='old') do j = 1,30000000000000000 read(10,"(11x,I5,62x)", iostat=io) number if(io < 0) exit if (number == 53376 ) then do i = 1,40 select case(i) case(1:2,8,14,20,26,32,38,40) read(10,*) case default read(10, "(I2,1x,3(6I3,1x),6I3)") day, hour(1:24) where (hour(1:24) == 999) hour = 0 write(6,*) day,sum(hour) end select end do end if end do close(10) close(11) end program これが、僕が作ったプログラムでして、numberに地点番号を入力すればその地点の一月の毎日の雨の量がわかるようになっています。これをまず、20年近く読んで、たとえば東京をみたいとすると、その東京だけの20年分を見るようにしたいんです。 言葉足らずで、これを見せないと助言できないとかがありましたら、お教えください。

  • Fortranのエラー

    お世話になります。 Fortran初心者です。 いまFortranでcsvファイルからデータを読みこむといったプログラムを作成しようと思っております。 まず、行いたいことは、複数のcsvファイル(0001.csv→0004.csvなど)のデータをプログラムに読込ませたいのですがうまくいきません。 0001.csvや0002.csvとしたいのに、INNAME.csvとなってしまいます。 なので、次に0001.csvだけを指定してたのですが下のデータを全く読み込んでくれません。 ちなみに0001.csvは、このようなデータです。 0,0,-107.75939 ,-85.57285 ,0.00000 ,0.00000 ,0.00000 ,0.00000 1,0,-105.54305 ,-85.56864 ,0.00000 ,0.00000 ,0.00000 ,0.00000 2,0,-103.32661 ,-85.56443 ,0.00000 ,0.00000 ,0.00000 ,0.00000 3,0,-101.11009 ,-85.56022 ,0.00000 ,0.00000 ,0.00000 ,0.00000 - 7325,0,106.16862 ,80.19408 ,0.00000 ,0.00000 ,0.00000 ,0.00000 エラーの部分としては、 READ(j,*) x,y,xmm,ymm,U,V,W,Length であり、エラーが出て、ファイルを読んでくれません。  エラーは Invalid character in fieldと出て、readする書式が違うのかと 自分なりに原因を探し変更してみたのですがわかりませんでした。 みなさまお忙しいところ本当にすみません。 初心者なのでどこかつまづいているかもしれないのですが、それがわかりません。 ご教授頂けたら幸いです。 よろしくお願い致します。 プログラム全体だと長いので 以下がプログラムのはじめから途中までの中身です。 PROGRAM MAIN Implicit None INTEGER i,j,k,sample,x,y CHARACTER*4 INNAME       REAL xmm,ymm,U,V,W,Length DIMENSION x(7326),y(7326),xmm(7326),ymm(7326) & ,U(7326),V(7326),W(7326),Length(7326) i=1 j=1 x=0 y=0 WRITE(INNAME,'(I4.4)') j WRITE(*,*) INNAME !!変数INNAMEに返す値は0001です。 OPEN(j, file='0001.csv') !!'//INNAME//.csv'だとINNAME.csvに。0001.csv,0002.csvにしたい。 c !-- read data sample=7326 DO k=i,sample READ(j,*) x,y,xmm,ymm,U,V,W,Length !!READがうまくいかない。Invalid character in fieldのエラー ENDDO

  • Fortran99で複数ファイルの読み込み

    Fortran99で有限要素法の解析プログラムを作成しています。 要素番号と節点番号、各節点の座標を三次元の配列にまとめて格納したく、 複数のcsvファイルを相互に参照しながら配列に読み込みたいと思っていますが、 その方法が分かりません。 具体的には、一つ目のファイル(ex1.csv)の中身が、 1 1 2 10 11 20 21 30 31 2 2 3 11 12 21 22 31 32 3 3 4 12 13 22 23 32 33 ........ と配列になっており、1列目が要素番号、2~8列目が節点番号としています。 二つ目のファイル(ex2.csv)の中身が、 1 0 0 0 2 5 0 0 3 10 0 0 4 15 0 0 5 20 0 0 ..... となっており、1列目が節点番号、2~4列目がそれぞれ、x, y, z座標となっています。 一つ目のファイルは、 open(10, file = 'ex1.csv', status = 'old', action = 'read', position = 'rewind') do ELEM = 1, MAXELEM read(10, *) (ELEMDATA(ELEM, m, 1), m = 1, 8) enddo close(10) と書き、全ての要素と節点番号を三次元配列の一、二次元目に読み込みました。 次に、ex1.csvの節点番号(2~8列目)の番号を読み取り、その番号をex2.csvの1列目 から探し出して、配列の三次元目に格納したいと思っています。 宜しくお願い致します。

  • fortranでデータの抜き出しをしたい

    プログラムは、ド素人ですが急用です。 以下のようなCSVファイルがあります。 ido,keido,point 134.603057155416,34.1005169871047,1.07 134.603270155368,34.1005169871253,0.9 134.603499155317,34.1005129871483,0.76 134.603713155269,34.100512987169,0.54 134.604354155125,34.1005059872324,0.19 134.604567155077,34.100505987253,0.39 134.604796155026,34.100501987276,0.44 このようなものが100000個続く。 _________________________ データ数が100000個があります。 これらから、例えば、0以上0.5未満でido,keido,pointを 抜き出して、新たなCSVファイルを形成したいのです。 上の中なら、 134.604354155125,34.1005059872324,0.19 134.604567155077,34.100505987253,0.39 134.604796155026,34.100501987276,0.44 だけが抽出されたものです。 イメージとしては、(ファイル名は適当です。) OPEN (5,FILE='motod.csv', status='old') OPEN (5,FILE='newd.csv') do 10 i=1,100000 READ(5,*) ido,keido,atai IF(atai.GE.0.00).and.IF(atai.LT.0.50)then WRITE(5,*)ido,keido,atai 10 continue   stop END になりますが、配列などが必要な気がします。 新たにお示しいただくか、継ぎ足したプログラムをお示しください。 また、今後のために参考になりそうなサイトもご紹介いただけると 幸いです。 空白がおかしいところがあろうかと思いますが、 よろしくお願いいたします。

専門家に質問してみよう