고수님들, 정말 많은 조언 감사합니다.
그런데도 애석하게 제가 원하는 답이 아직 없어서 이렇게 한자....
제가 설명을 잘 못해서 그런가 보네요...
지금 불러 들일 파일은 일정크기로 필드가 나누어 져 있는것이 아니어서 그냥 잘라서 불러 오기도 애매하고요, 엔터가 있는것은 분명히 확인했구요. 근데도 Reanln은 않먹고, 뭐가 잘못된건지 답답해 죽것네요. 이걸 불러 들려야 다른일을 할수 있는데... 제발이지 고수님 저 한번 살려 주십시요..
현재 윈도우 환경에서 작성한 텍스트파일(csv)은 Readln으로 읽어 들이면
아무 문제가 없습니다.
그러나 도스환경에서 작성한 파일들은 그렇지 못한 경우가 있습니다.
소스 올립니다..
procedure TFrmMed_Jung.Button1Click(Sender: TObject);
var
F: Textfile;
F_Str : String;
B_buffer : array[1..101] of char;
FH1 : integer;
i_Count : integer;
i,j : integer;
begin
for i := 1 to Sg1.RowCount - 1 do
for j := 0 to Sg1.ColCount - 1 do
Sg1.Cells[j,i] := '';
Sg1.RowCount := 2;
i := 1;
{== 특정 길이만큼 읽어서 뿌리기.. ==}
if OpenDialog1.Execute then begin
FH1 := FileOpen(OpenDialog1.FileName, fmShareDenyNone);
if FH1 <> - 1 then begin
i_Count := FileRead(FH1, B_buffer, Sizeof(B_buffer));
while i_Count <> 0 do
begin
Sg1.Cells[0,i] := B_buffer;
i := i + 1;
Sg1.RowCount := Sg1.RowCount + 1;
i_Count := FileRead(FH1, B_buffer, Sizeof(B_buffer));
end;//while
if Sg1.RowCount > 2 then
Sg1.RowCount := Sg1.RowCount - 1;
end;//if
FileClose(FH1);
end;//if
Find_Psncd;
{== 한줄씩 있는 데이타 읽기... ==}
{ if OpenDialog1.Execute then
begin
AssignFile(F, OpenDialog1.FileName);
Reset(F);
while not EOF(F) do
begin
Readln(F, F_Str);
Sg1.Cells[0,i] := F_Str;
i := i + 1;
Sg1.RowCount := Sg1.RowCount + 1;
end;//while
CloseFile(F);
if Sg1.RowCount > 2 then
Sg1.RowCount := Sg1.RowCount - 1;
end;//if
}
end;
안녕하세요, 고수님들. 긴 csv 파일을 엔터들어가기전 한라인만 읽는방법 좀 갈쳐 주세요. While not Eof(ImportFile) do Begin ReadLn(ImportFile,MyRecordString); ...... 다음과 같이 했더니, MyRecordString에 파일 전부가 입력 되드...
Seung Hun Lee
•
2002.03.26 15:57
고수님들, 정말 많은 조언 감사합니다.
그런데도 애석하게 제가 원하는 답이 아직 없어서 이렇게 한자.......
이추형
•
2002.03.25 19:44
트릭을 쓰자면 RICHEDIT로 파일로드하여 한라인만
읽으면 어떨까요?
Seung Hun Lee
•
2002.03.25 18:06
고수님, 엔터키가 들어있는걸 확인했는데, 이런 문제가 발생하네요.
또 다른 답변 부탁드리겠습니다
윤창준
•
2002.03.25 21:23
안녕하십니까?
저두 초보라
읽어 올때 문제라면 그건 리턴값(13)이랑 캐리지 값(10)이 모두 들어 있지 않...
그런데도 애석하게 제가 원하는 답이 아직 없어서 이렇게 한자....
제가 설명을 잘 못해서 그런가 보네요...
지금 불러 들일 파일은 일정크기로 필드가 나누어 져 있는것이 아니어서 그냥 잘라서 불러 오기도 애매하고요, 엔터가 있는것은 분명히 확인했구요. 근데도 Reanln은 않먹고, 뭐가 잘못된건지 답답해 죽것네요. 이걸 불러 들려야 다른일을 할수 있는데... 제발이지 고수님 저 한번 살려 주십시요..
뉴질랜드에서