Q&A

  • 긴 csv 파일을 한라인씩만 읽는방법
FLT.ID,AC.TYP,AC.ID,MOV.TYP,AIRPT1,DEP.DAT,DEP.TIM,AIRPT2,ARR.DAT,ARR.TIM,FLT.TYP,FLT.RUL,P.O.B,REMARK,MSG.ID,WGT.MCTOW
RLK334    ,SF34    ,          ,D,NZPM  ,28/02/2002,23:02,NZAA  ,01/03/2002,00:01,S   ,I ,   0,                         ,    13419184,    12700
RLK704    ,SF34    ,          ,A,NZCH  ,28/02/2002,23:16,NZPM  ,01/03/2002,00:21,S   ,I ,  19,                         ,    13419204,    12700
NZM617    ,AT72    ,          ,D,NZPM  ,01/03/2002,00:17,NZWN  ,01/03/2002,00:43,S   ,I ,  16,                         ,    13419240,    22500
OGN303    ,SW4C    ,          ,A,NZAA  ,01/03/2002,00:20,NZPM  ,01/03/2002,01:14,N   ,I ,  10,                         ,    13419245,     7257
EAG424    ,B190    ,          ,A,NZWN  

참고로 위와 같은 파일을 한라인씩 읽을려고 하는데,
ReadLn(ImportFile,MyRecordString); 을 사용하면 MyRecordString안에 모든 파일내용이 다 들어가는데 도무지 이유를 알수가 없군요.
라인간에 엔터키가 들어있는거는 분명히 확인했구요...

고수님, 이것 땜시 며칠을 고민중이네요, 꼭좀 부탁드리겠습니다....
1  COMMENTS
  • Profile
    머슴 2002.04.11 18:58

    제경우에는 이렇게 해결을 했습니다......

    그냥 CSV를 TextEdit  Tool로 보면 1라인으로 안보이는 경우가
    많습니다....

    델파이 컴퍼넌트중에 memo와 Richedit로  이런 화일을 열수가 있는데..
    memo는 한라인으로 안보이고요..Richedit는 한라인으로 보입니다...

    일단 CSV를 Richedit로 읽어서 ..... 라인단위로 보시면 될것 같습니다..


    for i := 0 to Richedit1.Lines.Count-1 do    // 데이타 건수만큼 반복
        TmpStr  := Richedit1.Lines[i];


    그런데 여기서 주의하실점은 제것을 ','로 구분하는 화일이 아니였으므로
    ','가 필요 없으실경우에는

       TmpStr := StringReplace(TmpStr, ',', '","', [rfReplaceAll]);  

      StringReplace로 ','를 제거해야겠지요...

      필요하신 필드는 Copy(TmpStr,1,4) 이런식으로 자르시면 될것 같구요...

      도움이 되셨으면 합니다... 행복하세요...