CSVRecord 스테레오타입

CSVRecord 스테레오타입은 결국 쉼표로 분리된 값(CSV) 파일과 관련된 변수의 기초인 레코드 파트를 사용자 정의합니다.

CSV 파일의 각 레코드에는 데이터 행이 있습니다. 행 내의 각 열에 있는 정보는 쉼표(기본값)와 같은 구분 기호로 시작됩니다. CSV 파일은 스프레드시트 또는 데이터베이스의 데이터를 저장하기 위해 사람이 읽을 수 있는 단순한 표준 방법을 제공합니다.

예제

다음 예제는 세 개의 행과 네 개의 열이 있는 스프레드시트를 나타냅니다. 열에는 순서대로 INT, CHAR(3), DATE? 및 STRING이 포함됩니다.
123,yes,3/9/2007,Rahima
-1,no ,9/9/1999,Jorge
92,yes,,Ludmilla
다음 레코드는 EGL에서 이 데이터를 보유하도록 설계되었습니다.
record CsvRec type CSVRecord 
	{
	  fileName = "empfile", 
	  delimiter = ",",
	  textQualifier = "\"",
	  style = CsvStyle.quoted,
	  labels = [ "Job Code", "Permanent?", "Hire Date", "First Name" ]
	}
	jobCode int;
	permStatus char(3);
	hireDate date?;
	firstName string;
end

텍스트 규정자

EGL이 텍스트 규정자를 사용하는 방법은 style 특성의 값에 따라 다릅니다. EGL은 get next 문으로 읽을 때 텍스트 규정자 문자를 해석하고 add 문으로 쓸 때 텍스트 규정자 문자를 추가합니다. 규정자는 CSVRecord의 일부로 저장되지 않습니다.

Ludmilla 대신 위의 CSVRecord에 다음 값이 포함되었다고 가정하십시오.
Steve "Sparky"
EGL은 이 firstName 변수를 쓰려고 준비할 때 문자열에 임베드된 텍스트 규정자 문자(큰따옴표)를 발견합니다. style 특성이 CSVStyle.quoted로 설정되었으므로 EGL은 문자열의 처음과 끝에 추가적인 텍스트 규정자 문자를 배치합니다. 또한 문자열 내에서는 텍스트 규정자의 인스턴스를 두 배로 사용합니다. 그런 다음 CSV 파일에 다음 행을 씁니다.
92,yes,,"Steve ""Sparky"""
style 특성만 CSVStyle.escaped로 설정되고 다른 모든 사항이 동일한 경우, EGL은 다음 행을 씁니다.
92,yes,,Steve ""Sparky""
style 특성이 CSVStyle.escaped로 설정되고 textQualifier 특성이 "\\"(단일 백슬래시. 이스케이프 문자로 추가 백슬래시가 필요함)로 설정된 경우, EGL은 다음 행을 씁니다.
92,yes,,Steve \"Sparky\"
EGL이 읽는 경우 역 프로세스가 발생합니다. 원래 예제로 돌아가서, EGL이 CSV 파일에서 다음 행을 위에 나타낸 CSVRecord로 읽는다고 가정하십시오.
92,yes,,"Steve ""Sparky"""
EGL은 첫 번째 및 마지막 따옴표를 텍스트 규정자로 인식하고 제거합니다. 또한 여분의 따옴표를 제거하고 firstName 변수에 다음을 저장합니다.
Steve "Sparky"

CSV 파일 읽기 및 쓰기에 대한 자세한 정보는 파일 I/O에 대한 add 고려사항파일 I/O에 대한 get 고려사항의 내용을 참조하십시오.

호환성

표 1. CSV 레코드에 대한 호환성 고려사항
플랫폼 문제
Java™ 생성 및 디버그 CSVRecord의 자원 연관 유형은 seqws여야 합니다. CSVRecord는 자원 연관에서 formFeedOnClosetext 필드를 사용하지 않습니다. 다른 필드에는 일반적인 의미가 있습니다.
COBOL 생성 CSVRecord 스테레오타입은 지원되지 않습니다.