텍스트 파일에서 CSV를 구문 분석하는 데 문제가있어 도움을 줄 수 있는지 궁금합니다. 지금까지 필자는 다음을 가지고 있습니다.REXX - CSV 파일에서 구문 분석
CSV 파일 (DATA.txt)은 이와 같이 보입니다. 항상 15 개의 필드가 모두 쉼표로 구분됩니다. 일부 필드는 필수 필드가 아니므로 일부 필드는 채워지고 일부 필드는 비어 있습니다.
Seattle,Lastname,Firstname,DOB,SEX,etc,etc
Seattle,Lastname,Firstname,DOB,,etc,etc
Portland,Lastname,Firstname,DOB,SEX,,,etc
Portland,Lastname,Firstname,DOB,SEX,etc,etc
그리고 여기가 구문 분석 할 때 내가 ARG 또는 VAR을 이용해야하는지 잘 모르겠어요 내 REXX 코드
SOURCEFILE = "C:\DATA\DATA.TXT"
IF A=2 THEN DO COUNTER=1 TO LINES(SOURCEFILE)
PARSE VALUE LINEIN(SOURCEFILE) WITH CITY "," LAST_NAME "," FIRST_NAME "," MOM_NAME "," MIDDLE_NAME "," DAD_NAME "," DOB "," etc "," etc "," etc "," etc "," SEX "," etc "," etc
CALL SETCURSOR 4,23
CALL CREATEDATA
END
CREATEDATA:
CALL TYPE CITY
CALL PRESS TAB
CALL TYPE LAST_NAME
CALL PRESS TAB
CALL TYPE DATE(U)
CALL PRESS TAB
CALL TYPE FIRST_NAME
CALL PRESS TAB
CALL PRESS ENTER
RETURN
또는 내가 제대로 처음 두 행을 작성합니다. 나는 "CITY"를 파싱 된 값으로 입력했기 때문에 CREATEDATA 함수가 올바르게 작동한다는 것을 알고 있습니다. 어떤 도움이라도 대단히 감사 할 것입니다. 고맙습니다!
Cowlishaw의 Rexx 서적에 따르면 LINES builtin 함수는 참조 된 파일의 줄 수를 반환하거나, 결정할 수없는 경우 0이 아닌 수의 '1'을 반환합니다. 적절하다면, 그렇지 않으면 '0'이다. 나는 윈도우즈에서 ooRexx를 꽤 많이 사용하며 ooRexx가 모든 라인을 계산하지 않는다는 것을 확인할 수있다. 단지 0/1을 반환한다. 한 번에 한 줄씩 파일을 읽으려면 다음을 사용하십시오. LINES (filename)> 0; PARSE VALUE LINEIN (파일 이름) ...; END – NealB
'Lines()'의 결과는 구현에 따라 다릅니다. 일부 구현은 개수를 반환하고 다른 구현은 관찰 한대로 1 또는 0을 반환합니다. 또한 줄기를 위로 올리는 것을 선호하는 이유입니다.'Lines.0'은 실제 수입니다. –