StreamReader 및 StreamWriter를 사용하여 텍스트 파일 (고정 폭)을 열고 데이터의 특정 열을 수정하려고합니다. 압축 된 COMP-3 필드로 변환 될 다음 형식의 날짜가 있습니다. 내가 날짜를 읽을 수 있어야합니다StreamReader 및 StreamWriter를 사용하여 파일 수정
020100718F
020100716F
020100717F
020100718F
020100719F
가에서는 StreamReader를 사용하여 파일을 형성 한 후 포장 분야 (5 자), 그들을에서는 StreamWriter를 사용하여 다음 출력으로 변환. 그러나 StreamWriter를 사용하여 특정 위치로 이동하는 방법을 찾지 못했고 가능한 경우 궁금해하기 시작했습니다.
나는 다음과 같은 코드를 가지고있다.
After:
[email protected]#$%0718F
020100716F
020100717F
020100718F
020100719F
[email protected]#$% = Ascii Characters SO can't display
어떤 아이디어 :
System.IO.StreamWriter writer;
this.fileName = @"C:\Test9.txt";
reader = new System.IO.StreamReader(System.IO.File.OpenRead(this.fileName));
currentLine = reader.ReadLine();
currentLine = currentLine.Substring(30, 10); //Substring Containing the Date
reader.Close();
...
// Convert currentLine to Packed Field
...
writer = new System.IO.StreamWriter(System.IO.File.Open(this.fileName, System.IO.FileMode.Open));
writer.Write(currentLine);
현재 내가 가지고있는 것은 다음과 같은 작업을 수행? 감사! 포장 필드 COMP-3
포장 필드에
UPDATE 정보 필드가 파일에 필요 바이트의 수를 줄이기 위해 COBOL 시스템에 의해 사용됩니다. 자세한 내용은 다음 SO 게시물을 참조하십시오. Here
다음 그림은 COMP-3에 포장 된 다음 날짜 "20120123"입니다. 이것이 나의 최종 결과이며 가능한 답을 얻는 지 확실치 않아 포함 시켰습니다.
내 질문은 StreamWriter를 동적으로 행의 길이를 파일 내부에 데이터를 교체하고 변경합니까 어떻게?
실제 질문이 무엇인지 찾을 수 없습니다. 압축 된 COMP-3 데이터 필드가 무엇인지 설명하면 도움이됩니다. 예상되는 결과를 알려 주시면 도움이 될 수 있습니다. –
제목 앞에 "C#"등을 붙이지 마십시오. 그것이 바로 태그입니다. –
BCD 인코딩 후 ** 바이너리 ** 데이터를 얻을 수 있습니다. StreamWriter를 사용하여 파일에 쓰지 마십시오. 대신 FileStream을 사용하십시오. –