안녕하십니까..!!어느덧 크리스마스도 지나고 올한해도 몇일 안남은거 같습니다..!!
모든분들 새해에도..항상좋은 일만 있기를 기원합니다..!!
본론으로 들어가겠습니다..!!^^
다름이 아니오라..전에도 여차 질문을 드렸던 델파이 초보입니다..!!^^
Text 에 있는 내용을 파라독스 DB로 저장시키는 내용중에 하나입니다..!!
DB화 시키는데는 성공을 했습니다..!!
근데..맨 마지막 필드에는 데이타 값이 저장이 안되더라구요..!!
많은 고민을 해보았지만..잘 안되더라구요..!!
내용은 아래와 같습니다..!! 함 보시고 무엇때문인지 고수님들의 지적 바라겠습니다..!!^^
데이타 내용...!!
-----------------------------------------------
A B C D
1111 22222 33333 44444
aaaa bbbbb ccccc ddddd --> 예를 들어
-------------------------------------------------
소스 내용...
----------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
f : TextFile;
s, s1, s2, s3 : String;
Str_len, Pos1_len, Pos2_len, Pos3_len, Pos4_len, i : Integer;
begin
OpenDialog1.Execute;
if OpenDialog1.FileName <> '' then
begin
Assignfile(F, OpenDialog1.FileName);
reset(F);
while Not eof(F) do
begin
readln(F,S);
Table1.Append;
Table1.Edit;
Str_len := length(S);
Pos1_len := Pos(' ', S)-1;
S1 := Copy(S, Pos1_len+2, Str_len);
Pos2_len := Pos(' ', Copy(S1, 0, Str_len))-1;
S2 := Copy(S1, Pos2_len+2, Str_len);
Pos3_len := Pos(' ', Copy(S2, 0, Str_len))-1;
S3 := Copy(S2,Pos3_len+2,Str_len);
Pos4_len := Pos(' ', Copy(S3, 0, Str_len))-1;
Table1.FieldByName('a').asString := Copy(S , 0, Pos1_len);
Table1.FieldByName('b').asString := Copy(S1, 0, Pos2_len);
Table1.FieldbyName('c').asString := Copy(S2, 0, Pos3_len);
Table1.FieldByName('d').AsString := Copy(S3, 0, Pos4_len);
Table1.Post;
Table1.Next;
end;
closefile(F);
end;
end;
---------------------------------------------------------------------------------
필드 A,B,C 까지는 정상적으로 이상이 없이 저장이 되는데..필드 D에는 아무값도
확인할수 가 없더군요(빈칸)..!! 제가 볼때는 이상이 없는거 같은데...!!
고수님의 의견 기다리겠습니다..!!
> 안녕하십니까..!!어느덧 크리스마스도 지나고 올한해도 몇일 안남은거 같습니다..!!
> 모든분들 새해에도..항상좋은 일만 있기를 기원합니다..!!
>
> 본론으로 들어가겠습니다..!!^^
>
> 다름이 아니오라..전에도 여차 질문을 드렸던 델파이 초보입니다..!!^^
> Text 에 있는 내용을 파라독스 DB로 저장시키는 내용중에 하나입니다..!!
> DB화 시키는데는 성공을 했습니다..!!
> 근데..맨 마지막 필드에는 데이타 값이 저장이 안되더라구요..!!
> 많은 고민을 해보았지만..잘 안되더라구요..!!
> 내용은 아래와 같습니다..!! 함 보시고 무엇때문인지 고수님들의 지적 바라겠습니다..!!^^
> 데이타 내용...!!
> -----------------------------------------------
> A B C D
> 1111 22222 33333 44444
> aaaa bbbbb ccccc ddddd --> 예를 들어
> -------------------------------------------------
>
> 소스 내용...
> ----------------------------------------------------------------------------------
> procedure TForm1.Button1Click(Sender: TObject);
> var
> f : TextFile;
> s, s1, s2, s3 : String;
> Str_len, Pos1_len, Pos2_len, Pos3_len, Pos4_len, i : Integer;
> begin
> OpenDialog1.Execute;
> if OpenDialog1.FileName <> '' then
> begin
> Assignfile(F, OpenDialog1.FileName);
> reset(F);
>
>
> while Not eof(F) do
> begin
> readln(F,S);
> Table1.Append;
> Table1.Edit;
>
> Str_len := length(S);
> Pos1_len := Pos(' ', S)-1;
>
> S1 := Copy(S, Pos1_len+2, Str_len);
> Pos2_len := Pos(' ', Copy(S1, 0, Str_len))-1;
>
> S2 := Copy(S1, Pos2_len+2, Str_len);
> Pos3_len := Pos(' ', Copy(S2, 0, Str_len))-1;
>
> S3 := Copy(S2,Pos3_len+2,Str_len);
> Pos4_len := Pos(' ', Copy(S3, 0, Str_len))-1;
>
>
> Table1.FieldByName('a').asString := Copy(S , 0, Pos1_len);
> Table1.FieldByName('b').asString := Copy(S1, 0, Pos2_len);
> Table1.FieldbyName('c').asString := Copy(S2, 0, Pos3_len);
> Table1.FieldByName('d').AsString := Copy(S3, 0, Pos4_len);
> Table1.Post;
> Table1.Next;
> end;
> closefile(F);
> end;
> end;
> ---------------------------------------------------------------------------------
> 필드 A,B,C 까지는 정상적으로 이상이 없이 저장이 되는데..필드 D에는 아무값도
> 확인할수 가 없더군요(빈칸)..!! 제가 볼때는 이상이 없는거 같은데...!!
> 고수님의 의견 기다리겠습니다..!!
///////////////////////////////////////////////////////////////////
Pos4_len를 구하지 못하는것 같은데요.
문자 S를 구할때 구문은 스페이스로 나눈것 같은데요
마지막 S3뒤에는 스페이스가 없어서 Pos4_len를 구하지못하는것 같습니다.
데이타 뒤에 스페이스가 있는지 없는지 구분하여야할것같습니다
1.방법 그냥
Table1.FieldByName('d').AsString := S3;
2.Pos4_len확인
if Pos4_len <= 0 then Pos4_len := length(s3);
Table1.FieldByName('d').AsString := Copy(S3, 0, Pos4_len);