파일 작업.

 

다음과 같은 어려움이 있었습니다.

 #import "kernel32.dll"
int _lopen( string path, int of);
int _lcreat( string path, int attrib);
int _llseek( int handle, int offset, int origin);
int _lread( int handle, string buffer, int bytes);
int _lwrite( int handle, string buffer, int bytes);
int _lclose( int handle);

#import
즉, 파일을 작성하려고 하는데 파일은 물론이고 오류가 없습니다.
void WriteFile( string path, string buffer)
  {
   int count= StringLen (buffer);
   int result;
   int handle=_lopen(path, 2 );
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   if (handle< 0 )
     {
      handle=_lcreat(path, 0 );
       //+------------------------------------------------------------------+
       //|                                                                  |
       //+------------------------------------------------------------------+
       if (handle< 0 )
        {
         Print ( "Ошибка создания файла " ,path);
         return ;
        }
      result=_lclose(handle);
     }
   handle=_lopen(path, 2 );
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   if (handle< 0 )
     {
       Print ( "Ошибка открытия файла " ,path);
       return ;
     }
   result=_llseek(handle, 0 , 0 );
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   if (result< 0 )
     {
       Print ( "Ошибка установки указателя" );
       return ;
     }
   result=_lwrite(handle,buffer,count);
   if (result< 0 )
       Print ( "Ошибка записи в файл " ,path, " " ,count, " байт" );
   result=_lclose(handle);
   if (result< 0 )
       Print ( "Ошибка закрытия файла " ,path);
  }
 
파일을 여는 표준 FileOpen() 함수 에 문제가 있습니다. 계속해서 파일을 여는 동안 오류가 발생합니다.
Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
sergey1294 :
파일을 여는 표준 FileOpen() 함수 에 문제가 있습니다. 계속해서 파일을 여는 동안 오류가 발생합니다.

내 주제는 매우 관련이 있습니다. 어떤 식으로든 비표준 디렉토리에 파일을 쓸 수 없으며 침묵이 완료되었습니다.
 
Vladon :
내 주제는 매우 관련이 있습니다. 어떤 식으로든 비표준 디렉토리에 파일을 쓸 수 없으며 침묵이 완료되었습니다.
MQL의 문자열은 유니코드(문자당 2바이트)인 반면, kernel32.dll 함수는 산성(문자당 1바이트)입니다. 바이트 배열을 사용하고 원시 함수를 호출하는 StringToCharArray 함수
 
sergey1294 :
파일을 여는 표준 FileOpen() 함수 에 문제가 있습니다. 계속해서 파일을 여는 동안 오류가 발생합니다.

오류를 재현하는 코드와 함께 서비스 데스크에 요청 제출
 

여기에서 표준 파일 열기 기능과 함께 작동하는 테스트 코드를 작성했는데 항상 오류를 반환합니다. 개발자의 의견을 듣고 싶습니다.

 //+------------------------------------------------------------------+
//|                                                запись в файл.mq5 |
//|                        Copyright 2010, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link       "http://www.mql5.com"
#property version   "1.00"

input int         Magic= 1000008 ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   Print ( "Открываем файл " , "Фаил_" +( string )Magic+ "_" + _Symbol + ".csv" );
   int handle= FileOpen ( "Фаил_" +( string )Magic+ "_" + _Symbol + ".csv" , FILE_CSV | FILE_READ , ';' );
   Print ( "handle = " ,handle);
   if (handle< 0 )
     {
       Print ( "Ошибка № - " , GetLastError (), " открытия файла" );
     }
   else
     {
       Print ( "Закрываем данные в файл" );
       uint byte= FileWrite (handle, "Проверка записи в файл" );
       Print ( "функция FileWrite() вернула " ,byte, " байт" );
       Print ( "Закрываем файл" );
       FileClose (handle);
       Print ( "Файл закрыт" );
     }
  }
//+------------------------------------------------------------------+

로그 항목

CL       0        запись в файл (EURUSD,M5)       10 : 54 : 32         Открываем файл Фаил_1000008_EURUSD.csv
PK       0        запись в файл (EURUSD,M5)       10 : 54 : 32         handle = - 1
LL       0        запись в файл (EURUSD,M5)       10 : 54 : 32         Ошибка № - 5004 открытия файла
RE       0        запись в файл (EURUSD,M5)       10 : 54 : 33         Открываем файл Фаил_1000008_EURUSD.csv
ER       0        запись в файл (EURUSD,M5)       10 : 54 : 33         handle = - 1
EF       0        запись в файл (EURUSD,M5)       10 : 54 : 33         Ошибка № - 5004 открытия файла
DO       0        запись в файл (EURUSD,M5)       10 : 54 : 37         Открываем файл Фаил_1000008_EURUSD.csv
OD       0        запись в файл (EURUSD,M5)       10 : 54 : 37         handle = - 1
CP       0        запись в файл (EURUSD,M5)       10 : 54 : 37         Ошибка № - 5004 открытия файла
HI       0        запись в файл (EURUSD,M5)       10 : 54 : 42         Открываем файл Фаил_1000008_EURUSD.csv
KN       0        запись в файл (EURUSD,M5)       10 : 54 : 42         handle = - 1
KI       0        запись в файл (EURUSD,M5)       10 : 54 : 42         Ошибка № - 5004 открытия файла
RR       0        запись в файл (EURUSD,M5)       10 : 54 : 42         Открываем файл Фаил_1000008_EURUSD.csv
EQ       0        запись в файл (EURUSD,M5)       10 : 54 : 42         handle = - 1
IS       0        запись в файл (EURUSD,M5)       10 : 54 : 42         Ошибка № - 5004 открытия файла
CL       0        запись в файл (EURUSD,M5)       10 : 54 : 43         Открываем файл Фаил_1000008_EURUSD.csv
PK       0        запись в файл (EURUSD,M5)       10 : 54 : 43         handle = - 1
PL       0        запись в файл (EURUSD,M5)       10 : 54 : 43         Ошибка № - 5004 открытия файла
PE       0        запись в файл (EURUSD,M5)       10 : 54 : 44         Открываем файл Фаил_1000008_EURUSD.csv
CR       0        запись в файл (EURUSD,M5)       10 : 54 : 44         handle = - 1
OF       0        запись в файл (EURUSD,M5)       10 : 54 : 44         Ошибка № - 5004 открытия файла
MO       0        запись в файл (EURUSD,M5)       10 : 54 : 45         Открываем файл Фаил_1000008_EURUSD.csv
JD       0        запись в файл (EURUSD,M5)       10 : 54 : 45         handle = - 1
JP       0        запись в файл (EURUSD,M5)       10 : 54 : 45         Ошибка № - 5004 открытия файла
CI       0        запись в файл (EURUSD,M5)       10 : 54 : 45         Открываем файл Фаил_1000008_EURUSD.csv
PN       0        запись в файл (EURUSD,M5)       10 : 54 : 45         handle = - 1
LI       0        запись в файл (EURUSD,M5)       10 : 54 : 45         Ошибка № - 5004 открытия файла
QR       0        запись в файл (EURUSD,M5)       10 : 54 : 45         Открываем файл Фаил_1000008_EURUSD.csv
FQ       0        запись в файл (EURUSD,M5)       10 : 54 : 45         handle = - 1
FS       0        запись в файл (EURUSD,M5)       10 : 54 : 45         Ошибка № - 5004 открытия файла
JL       0        запись в файл (EURUSD,M5)       10 : 54 : 46         Открываем файл Фаил_1000008_EURUSD.csv
MK       0        запись в файл (EURUSD,M5)       10 : 54 : 46         handle = - 1
IM       0        запись в файл (EURUSD,M5)       10 : 54 : 46         Ошибка № - 5004 открытия файла
DF       0        запись в файл (EURUSD,M5)       10 : 54 : 46         Открываем файл Фаил_1000008_EURUSD.csv
OM       0        запись в файл (EURUSD,M5)       10 : 54 : 46         handle = - 1
OF       0        запись в файл (EURUSD,M5)       10 : 54 : 46         Ошибка № - 5004 открытия файла
MO       0        запись в файл (EURUSD,M5)       10 : 54 : 47         Открываем файл Фаил_1000008_EURUSD.csv
JD       0        запись в файл (EURUSD,M5)       10 : 54 : 47         handle = - 1
FP       0        запись в файл (EURUSD,M5)       10 : 54 : 47         Ошибка № - 5004 открытия файла
MI       0        запись в файл (EURUSD,M5)       10 : 54 : 49         Открываем файл Фаил_1000008_EURUSD.csv
JN       0        запись в файл (EURUSD,M5)       10 : 54 : 49         handle = - 1
JI       0        запись в файл (EURUSD,M5)       10 : 54 : 49         Ошибка № - 5004 открытия файла
KR       0        запись в файл (EURUSD,M5)       10 : 54 : 50         Открываем файл Фаил_1000008_EURUSD.csv
HQ       0        запись в файл (EURUSD,M5)       10 : 54 : 50         handle = - 1
LS       0        запись в файл (EURUSD,M5)       10 : 54 : 50         Ошибка № - 5004 открытия файла
QL       0        запись в файл (EURUSD,M5)       10 : 54 : 50         Открываем файл Фаил_1000008_EURUSD.csv
FK       0        запись в файл (EURUSD,M5)       10 : 54 : 50         handle = - 1
FM       0        запись в файл (EURUSD,M5)       10 : 54 : 50         Ошибка № - 5004 открытия файла
HF       0        запись в файл (EURUSD,M5)       10 : 54 : 51         Открываем файл Фаил_1000008_EURUSD.csv
KM       0        запись в файл (EURUSD,M5)       10 : 54 : 51         handle = - 1
OF       0        запись в файл (EURUSD,M5)       10 : 54 : 51         Ошибка № - 5004 открытия файла
NO       0        запись в файл (EURUSD,M5)       10 : 54 : 51         Открываем файл Фаил_1000008_EURUSD.csv
ID       0        запись в файл (EURUSD,M5)       10 : 54 : 51         handle = - 1
IP       0        запись в файл (EURUSD,M5)       10 : 54 : 51         Ошибка № - 5004 открытия файла
EI       0        запись в файл (EURUSD,M5)       10 : 54 : 52         Открываем файл Фаил_1000008_EURUSD.csv
RN       0        запись в файл (EURUSD,M5)       10 : 54 : 52         handle = - 1
FJ       0        запись в файл (EURUSD,M5)       10 : 54 : 52         Ошибка № - 5004 открытия файла
GS       0        запись в файл (EURUSD,M5)       10 : 54 : 52         Открываем файл Фаил_1000008_EURUSD.csv
LP       0        запись в файл (EURUSD,M5)       10 : 54 : 52         handle = - 1
LS       0        запись в файл (EURUSD,M5)       10 : 54 : 52         Ошибка № - 5004 открытия файла
RL       0        запись в файл (EURUSD,M5)       10 : 54 : 53         Открываем файл Фаил_1000008_EURUSD.csv
EK       0        запись в файл (EURUSD,M5)       10 : 54 : 53         handle = - 1
IM       0        запись в файл (EURUSD,M5)       10 : 54 : 53         Ошибка № - 5004 открытия файла
DF       0        запись в файл (EURUSD,M5)       10 : 54 : 53         Открываем файл Фаил_1000008_EURUSD.csv
OM       0        запись в файл (EURUSD,M5)       10 : 54 : 53         handle = - 1
OF       0        запись в файл (EURUSD,M5)       10 : 54 : 53         Ошибка № - 5004 открытия файла
OO       0        запись в файл (EURUSD,M5)       10 : 54 : 54         Открываем файл Фаил_1000008_EURUSD.csv
DD       0        запись в файл (EURUSD,M5)       10 : 54 : 54         handle = - 1
PP       0        запись в файл (EURUSD,M5)       10 : 54 : 54         Ошибка № - 5004 открытия файла
MI       0        запись в файл (EURUSD,M5)       10 : 54 : 54         Открываем файл Фаил_1000008_EURUSD.csv
JN       0        запись в файл (EURUSD,M5)       10 : 54 : 54         handle = - 1
JJ       0        запись в файл (EURUSD,M5)       10 : 54 : 54         Ошибка № - 5004 открытия файла
DS       0        запись в файл (EURUSD,M5)       10 : 54 : 55         Открываем файл Фаил_1000008_EURUSD.csv
OP       0        запись в файл (EURUSD,M5)       10 : 54 : 55         handle = - 1
KS       0        запись в файл (EURUSD,M5)       10 : 54 : 55         Ошибка № - 5004 открытия файла
OL       0        запись в файл (EURUSD,M5)       10 : 54 : 56         Открываем файл Фаил_1000008_EURUSD.csv
DK       0        запись в файл (EURUSD,M5)       10 : 54 : 56         handle = - 1
DM       0        запись в файл (EURUSD,M5)       10 : 54 : 56         Ошибка № - 5004 открытия файла
IF       0        запись в файл (EURUSD,M5)       10 : 54 : 56         Открываем файл Фаил_1000008_EURUSD.csv
NM       0        запись в файл (EURUSD,M5)       10 : 54 : 56         handle = - 1
JG       0        запись в файл (EURUSD,M5)       10 : 54 : 56         Ошибка № - 5004 открытия файла
DP       0        запись в файл (EURUSD,M5)       10 : 54 : 57         Открываем файл Фаил_1000008_EURUSD.csv
OG       0        запись в файл (EURUSD,M5)       10 : 54 : 57         handle = - 1
OP       0        запись в файл (EURUSD,M5)       10 : 54 : 57         Ошибка № - 5004 открытия файла
NI       0        запись в файл (EURUSD,M5)       10 : 54 : 57         Открываем файл Фаил_1000008_EURUSD.csv
IN       0        запись в файл (EURUSD,M5)       10 : 54 : 57         handle = - 1
EJ       0        запись в файл (EURUSD,M5)       10 : 54 : 57         Ошибка № - 5004 открытия файла
MS       0        запись в файл (EURUSD,M5)       10 : 54 : 58         Открываем файл Фаил_1000008_EURUSD.csv
JP       0        запись в файл (EURUSD,M5)       10 : 54 : 58         handle = - 1
JS       0        запись в файл (EURUSD,M5)       10 : 54 : 58         Ошибка № - 5004 открытия файла
CL       0        запись в файл (EURUSD,M5)       10 : 54 : 58         Открываем файл Фаил_1000008_EURUSD.csv
PK       0        запись в файл (EURUSD,M5)       10 : 54 : 58         handle = - 1
DM       0        запись в файл (EURUSD,M5)       10 : 54 : 58         Ошибка № - 5004 открытия файла
JF       0        запись в файл (EURUSD,M5)       10 : 54 : 59         Открываем файл Фаил_1000008_EURUSD.csv
MM       0        запись в файл (EURUSD,M5)       10 : 54 : 59         handle = - 1
MG       0        запись в файл (EURUSD,M5)       10 : 54 : 59         Ошибка № - 5004 открытия файла
PP       0        запись в файл (EURUSD,M5)       10 : 54 : 59         Открываем файл Фаил_1000008_EURUSD.csv
CG       0        запись в файл (EURUSD,M5)       10 : 54 : 59         handle = - 1
GP       0        запись в файл (EURUSD,M5)       10 : 54 : 59         Ошибка № - 5004 открытия файла
QI       0        запись в файл (EURUSD,M5)       10 : 55 : 00         Открываем файл Фаил_1000008_EURUSD.csv
FN       0        запись в файл (EURUSD,M5)       10 : 55 : 00         handle = - 1
FJ       0        запись в файл (EURUSD,M5)       10 : 55 : 00         Ошибка № - 5004 открытия файла
GS       0        запись в файл (EURUSD,M5)       10 : 55 : 00         Открываем файл Фаил_1000008_EURUSD.csv
LP       0        запись в файл (EURUSD,M5)       10 : 55 : 00         handle = - 1
HD       0        запись в файл (EURUSD,M5)       10 : 55 : 00         Ошибка № - 5004 открытия файла
FM       0        запись в файл (EURUSD,M5)       10 : 55 : 01         Открываем файл Фаил_1000008_EURUSD.csv
QJ       0        запись в файл (EURUSD,M5)       10 : 55 : 01         handle = - 1
QM       0        запись в файл (EURUSD,M5)       10 : 55 : 01         Ошибка № - 5004 открытия файла
LF       0        запись в файл (EURUSD,M5)       10 : 55 : 01         Открываем файл Фаил_1000008_EURUSD.csv
GM       0        запись в файл (EURUSD,M5)       10 : 55 : 01         handle = - 1
CG       0        запись в файл (EURUSD,M5)       10 : 55 : 01         Ошибка № - 5004 открытия файла
GP       0        запись в файл (EURUSD,M5)       10 : 55 : 02         Открываем файл Фаил_1000008_EURUSD.csv
LG       0        запись в файл (EURUSD,M5)       10 : 55 : 02         handle = - 1
LP       0        запись в файл (EURUSD,M5)       10 : 55 : 02         Ошибка № - 5004 открытия файла
QI       0        запись в файл (EURUSD,M5)       10 : 55 : 02         Открываем файл Фаил_1000008_EURUSD.csv
FN       0        запись в файл (EURUSD,M5)       10 : 55 : 02         handle = - 1
RJ       0        запись в файл (EURUSD,M5)       10 : 55 : 02         Ошибка № - 5004 открытия файла
LS       0        запись в файл (EURUSD,M5)       10 : 55 : 03         Открываем файл Фаил_1000008_EURUSD.csv
GP       0        запись в файл (EURUSD,M5)       10 : 55 : 03         handle = - 1
GD       0        запись в файл (EURUSD,M5)       10 : 55 : 03         Ошибка № - 5004 открытия файла
FM       0        запись в файл (EURUSD,M5)       10 : 55 : 03         Открываем файл Фаил_1000008_EURUSD.csv
QJ       0        запись в файл (EURUSD,M5)       10 : 55 : 03         handle = - 1
MM       0        запись в файл (EURUSD,M5)       10 : 55 : 03         Ошибка № - 5004 открытия файла
MF       0        запись в файл (EURUSD,M5)       10 : 55 : 04         Открываем файл Фаил_1000008_EURUSD.csv
JM       0        запись в файл (EURUSD,M5)       10 : 55 : 04         handle = - 1
JG       0        запись в файл (EURUSD,M5)       10 : 55 : 04         Ошибка № - 5004 открытия файла
DP       0        запись в файл (EURUSD,M5)       10 : 55 : 05         Открываем файл Фаил_1000008_EURUSD.csv
OG       0        запись в файл (EURUSD,M5)       10 : 55 : 05         handle = - 1
CQ       0        запись в файл (EURUSD,M5)       10 : 55 : 05         Ошибка № - 5004 открытия файла
GJ       0        запись в файл (EURUSD,M5)       10 : 55 : 06         Открываем файл Фаил_1000008_EURUSD.csv
LI       0        запись в файл (EURUSD,M5)       10 : 55 : 06         handle = - 1
LJ       0        запись в файл (EURUSD,M5)       10 : 55 : 06         Ошибка № - 5004 открытия файла
QS       0        запись в файл (EURUSD,M5)       10 : 55 : 06         Открываем файл Фаил_1000008_EURUSD.csv
FP       0        запись в файл (EURUSD,M5)       10 : 55 : 06         handle = - 1
JD       0        запись в файл (EURUSD,M5)       10 : 55 : 06         Ошибка № - 5004 открытия файла
DM       0        запись в файл (EURUSD,M5)       10 : 55 : 07         Открываем файл Фаил_1000008_EURUSD.csv
OJ       0        запись в файл (EURUSD,M5)       10 : 55 : 07         handle = - 1
OM       0        запись в файл (EURUSD,M5)       10 : 55 : 07         Ошибка № - 5004 открытия файла
GF       0        запись в файл (EURUSD,M5)       10 : 55 : 08         Открываем файл Фаил_1000008_EURUSD.csv
LM       0        запись в файл (EURUSD,M5)       10 : 55 : 08         handle = - 1
HG       0        запись в файл (EURUSD,M5)       10 : 55 : 08         Ошибка № - 5004 открытия файла
EP       0        запись в файл (EURUSD,M5)       10 : 55 : 08         Открываем файл Фаил_1000008_EURUSD.csv
RG       0        запись в файл (EURUSD,M5)       10 : 55 : 08         handle = - 1
RQ       0        запись в файл (EURUSD,M5)       10 : 55 : 08         Ошибка № - 5004 открытия файла
LJ       0        запись в файл (EURUSD,M5)       10 : 55 : 09         Открываем файл Фаил_1000008_EURUSD.csv
GI       0        запись в файл (EURUSD,M5)       10 : 55 : 09         handle = - 1
CJ       0        запись в файл (EURUSD,M5)       10 : 55 : 09         Ошибка № - 5004 открытия файла
JS       0        запись в файл (EURUSD,M5)       10 : 55 : 09         Открываем файл Фаил_1000008_EURUSD.csv
MP       0        запись в файл (EURUSD,M5)       10 : 55 : 09         handle = - 1
MD       0        запись в файл (EURUSD,M5)       10 : 55 : 09         Ошибка № - 5004 открытия файла
PM       0        запись в файл (EURUSD,M5)       10 : 55 : 09         Открываем файл Фаил_1000008_EURUSD.csv
CJ       0        запись в файл (EURUSD,M5)       10 : 55 : 09         handle = - 1
ON       0        запись в файл (EURUSD,M5)       10 : 55 : 09         Ошибка № - 5004 открытия файла
FG       0        запись в файл (EURUSD,M5)       10 : 55 : 10         Открываем файл Фаил_1000008_EURUSD.csv
QL       0        запись в файл (EURUSD,M5)       10 : 55 : 10         handle = - 1
QG       0        запись в файл (EURUSD,M5)       10 : 55 : 10         Ошибка № - 5004 открытия файла
LP       0        запись в файл (EURUSD,M5)       10 : 55 : 10         Открываем файл Фаил_1000008_EURUSD.csv
GG       0        запись в файл (EURUSD,M5)       10 : 55 : 10         handle = - 1
CQ       0        запись в файл (EURUSD,M5)       10 : 55 : 10         Ошибка № - 5004 открытия файла
Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
sergey1294 :

여기에서 표준 파일 열기 기능과 함께 작동하는 테스트 코드를 작성했는데 항상 오류를 반환합니다. 개발자의 의견을 듣고 싶습니다.

로그 항목



FILE_READ 플래그로 열고 쓰기를 시도하시겠습니까?
 
mql5 :
FILE_READ 플래그로 열고 쓰기를 시도하시겠습니까?

추가할 것입니다 - 파일 열기를 위한 플래그 섹션이 있습니다.

읽기 및 쓰기 플래그를 지정할 때 몇 가지 특징이 있습니다.

  • FILE_READ 가 지정되면 기존 파일을 열려고 시도합니다. 파일이 존재하지 않으면 파일을 열 수 없으며 새 파일이 생성되지 않습니다.
  • FILE_READ|FILE_WRITE인 경우 동일한 이름의 파일이 없으면 새 파일이 생성됩니다.
  • FILE_WRITE인 경우 - 파일이 0 크기로 다시 생성됩니다.

파일을 열 때 FILE_WRITE 플래그 및/또는 FILE_READ 플래그를 지정해야 합니다.

 
mql5 :
FILE_READ 플래그로 열고 쓰기를 시도하시겠습니까?
젠장, 레코드를 읽기 위해 줄을 복사했습니다. 죄송합니다.
 
표준 FileOpenHistory 기능이 구현됩니까?
 
Urain :
표준 FileOpenHistory 기능이 구현됩니까?
아니요, 이력은 CopyXXX 기능을 통해 직접 사용할 수 있습니다. 더 이상 원본 기록 파일에 대한 액세스 권한을 부여하지 않습니다.
사유: