Q&A

  • 방법좀 가르쳐 주세요(스트일그리드 관련(
//

T01-000005,강원 강릉시 견소동 202,(주)가디안,지오타운 입점료,2001.10,210-150

T01-000006,강원 삼척시 남양동 24-10,인켈 (삼척점),지오타운 입점료,2001.10,245-010

T01-000009,강원 영월군 영월읍 덕포리 486-64호,speed 래프팅,지오타운 입점료,2001.10,230-800

T02-000001,경기 성남시 중원구 중동 2500,피자24시,지오타운 입점료,2001.10,462-170

T02-000003,경기 성남시 수정구 복정동 268,에덴 꽃 직매장,지오타운 입점료,2001.10,461-200

//

이런 데이터를 스트링 그리드에 넣을려구 하는데 쉽지가 않네요..

방법좀 가르쳐 주세요



처음엔 구분자 없어서

While Not Eof(filename) Do Begin

ReadLn(filename, MyStr);

ShowMessage(MyStr);

count:=(length(MyStr));

showmessage(inttostr(count));

for i:= 1 to 10 do

begin

StringGrid1.Cells[0,i] := copy(MyStr,1,10);

StringGrid1.Cells[1,i] := copy(MyStr,11,22);

StringGrid1.Cells[2,i] := copy(MyStr,33,10);

StringGrid1.Cells[3,i] := copy(MyStr,43,15);

StringGrid1.Cells[4,i] := copy(MyStr,58,7);

StringGrid1.Cells[5,i] := copy(MyStr,65,7);

이런 식로 짯는데

모든 스트링그리드에 같은라인 결국에는 맨 마지막 라인에 있는 값만 다 들어가더라구요

스트링그리드 각 라인마다 텍스트데이타 각 라인이 들어가야 되는데..



4  COMMENTS
  • Profile
    데빠이 2001.10.17 00:52
    스트링 그리드의 rowcount가 증가하는게 없네요..



    > While Not Eof(filename) Do Begin

    > ReadLn(filename, MyStr);

    > ShowMessage(MyStr);

    > count:=(length(MyStr));

    > showmessage(inttostr(count));

    > for i:= 1 to 10 do

    > begin

    > StringGrid1.Cells[0,i] := copy(MyStr,1,10);

    > StringGrid1.Cells[1,i] := copy(MyStr,11,22);

    > StringGrid1.Cells[2,i] := copy(MyStr,33,10);

    > StringGrid1.Cells[3,i] := copy(MyStr,43,15);

    > StringGrid1.Cells[4,i] := copy(MyStr,58,7);

    > StringGrid1.Cells[5,i] := copy(MyStr,65,7);

    //-- 이런 식으로 스트링그리드의 row count를 증가해야 될 듯 싶네요..

    StringGrid1.RowCount := StringGrid1.RowCount+1;



    end;



    즐프~~

  • Profile
    이성훈 2001.10.17 00:42
    이렇게 합 해보세요

    그럼 즐프하세요..



    i := 0 ;

    While Not Eof(filename) Do Begin

    ReadLn(filename, MyStr);

    ShowMessage(MyStr);

    count:=(length(MyStr));

    showmessage(inttostr(count));

    i := i + 1

    StringGrid1.Cells[0,i] := copy(MyStr,1,10);

    StringGrid1.Cells[1,i] := copy(MyStr,11,22);

    StringGrid1.Cells[2,i] := copy(MyStr,33,10);

    StringGrid1.Cells[3,i] := copy(MyStr,43,15);

    StringGrid1.Cells[4,i] := copy(MyStr,58,7);

    StringGrid1.Cells[5,i] := copy(MyStr,65,7);

    end;







    이쁜이 wrote:

    > //

    > T01-000005,강원 강릉시 견소동 202,(주)가디안,지오타운 입점료,2001.10,210-150

    > T01-000006,강원 삼척시 남양동 24-10,인켈 (삼척점),지오타운 입점료,2001.10,245-010

    > T01-000009,강원 영월군 영월읍 덕포리 486-64호,speed 래프팅,지오타운 입점료,2001.10,230-800

    > T02-000001,경기 성남시 중원구 중동 2500,피자24시,지오타운 입점료,2001.10,462-170

    > T02-000003,경기 성남시 수정구 복정동 268,에덴 꽃 직매장,지오타운 입점료,2001.10,461-200

    > //

    > 이런 데이터를 스트링 그리드에 넣을려구 하는데 쉽지가 않네요..

    > 방법좀 가르쳐 주세요

    >

    > 처음엔 구분자 없어서

    > While Not Eof(filename) Do Begin

    > ReadLn(filename, MyStr);

    > ShowMessage(MyStr);

    > count:=(length(MyStr));

    > showmessage(inttostr(count));

    > for i:= 1 to 10 do

    > begin

    > StringGrid1.Cells[0,i] := copy(MyStr,1,10);

    > StringGrid1.Cells[1,i] := copy(MyStr,11,22);

    > StringGrid1.Cells[2,i] := copy(MyStr,33,10);

    > StringGrid1.Cells[3,i] := copy(MyStr,43,15);

    > StringGrid1.Cells[4,i] := copy(MyStr,58,7);

    > StringGrid1.Cells[5,i] := copy(MyStr,65,7);

    > 이런 식로 짯는데

    > 모든 스트링그리드에 같은라인 결국에는 맨 마지막 라인에 있는 값만 다 들어가더라구요

    > 스트링그리드 각 라인마다 텍스트데이타 각 라인이 들어가야 되는데..

    >

  • Profile
    이쁜이 2001.10.17 01:05
    고맙습니다..

    그런데 한가지 더 알고 싶은게 있는데요..

    구분자를 콤마로 주었는데 끊어서 스트링 그리드에 넣는 방법도 알려주면 고맙겠습니다.

    이렇게 자리수맞춰서 할려면 얼마나 긴 데이터가 들어올지 몰라서요..

    꼭.......







    이성훈 wrote:

    > 이렇게 합 해보세요

    > 그럼 즐프하세요..

    >

    > i := 0 ;

    > While Not Eof(filename) Do Begin

    > ReadLn(filename, MyStr);

    > ShowMessage(MyStr);

    > count:=(length(MyStr));

    > showmessage(inttostr(count));

    > i := i + 1

    > StringGrid1.Cells[0,i] := copy(MyStr,1,10);

    > StringGrid1.Cells[1,i] := copy(MyStr,11,22);

    > StringGrid1.Cells[2,i] := copy(MyStr,33,10);

    > StringGrid1.Cells[3,i] := copy(MyStr,43,15);

    > StringGrid1.Cells[4,i] := copy(MyStr,58,7);

    > StringGrid1.Cells[5,i] := copy(MyStr,65,7);

    > end;

    >

    >

    >

    > 이쁜이 wrote:

    > > //

    > > T01-000005,강원 강릉시 견소동 202,(주)가디안,지오타운 입점료,2001.10,210-150

    > > T01-000006,강원 삼척시 남양동 24-10,인켈 (삼척점),지오타운 입점료,2001.10,245-010

    > > T01-000009,강원 영월군 영월읍 덕포리 486-64호,speed 래프팅,지오타운 입점료,2001.10,230-800

    > > T02-000001,경기 성남시 중원구 중동 2500,피자24시,지오타운 입점료,2001.10,462-170

    > > T02-000003,경기 성남시 수정구 복정동 268,에덴 꽃 직매장,지오타운 입점료,2001.10,461-200

    > > //

    > > 이런 데이터를 스트링 그리드에 넣을려구 하는데 쉽지가 않네요..

    > > 방법좀 가르쳐 주세요

    > >

    > > 처음엔 구분자 없어서

    > > While Not Eof(filename) Do Begin

    > > ReadLn(filename, MyStr);

    > > ShowMessage(MyStr);

    > > count:=(length(MyStr));

    > > showmessage(inttostr(count));

    > > for i:= 1 to 10 do

    > > begin

    > > StringGrid1.Cells[0,i] := copy(MyStr,1,10);

    > > StringGrid1.Cells[1,i] := copy(MyStr,11,22);

    > > StringGrid1.Cells[2,i] := copy(MyStr,33,10);

    > > StringGrid1.Cells[3,i] := copy(MyStr,43,15);

    > > StringGrid1.Cells[4,i] := copy(MyStr,58,7);

    > > StringGrid1.Cells[5,i] := copy(MyStr,65,7);

    > > 이런 식로 짯는데

    > > 모든 스트링그리드에 같은라인 결국에는 맨 마지막 라인에 있는 값만 다 들어가더라구요

    > > 스트링그리드 각 라인마다 텍스트데이타 각 라인이 들어가야 되는데..

    > >

  • Profile
    이성훈 2001.10.17 03:40
    나타낼 필드가 6개이라 가정할때...제가 임의로 함 짜 봤습니다..

    참고하세요.....

    그럼...20000



    procedure TForm1.Button1Click(Sender: TObject);

    var F:TextFile;

    Str_len, Pos1_len, Pos2_Len, Pos3_len, Pos4_len, Pos5_len, Pos6_len,i: Integer;

    S,S1,S2,S3,S4,S5 : String;

    begin

    AssignFile(F, 'C:11.Txt');

    Reset(F);

    i := 0;

    While Not eof(F) do begin

    Readln(F,S);

    i := i+1;



    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;



    S4 := Copy(S3,Pos4_len+2,Str_len);

    Pos5_len := Pos(',',Copy(S4,0, Str_len))-1;



    S5 := Copy(S4,Pos5_len+2,Str_len);

    Pos6_len := Pos(',',Copy(S4,0, Str_len))-1;



    SG1.Cells[0,i] := Copy(S,0,Pos1_len);

    SG1.Cells[1,i] := Copy(S1,0,Pos2_len);

    SG1.Cells[2,i] := Copy(S2,0,Pos3_len);

    SG1.Cells[3,i] := Copy(S3,0,Pos4_len);

    SG1.Cells[4,i] := Copy(S4,0,Pos5_len);

    SG1.Cells[5,i] := Copy(S5,0,Pos6_len);



    showmessage(SG1.Cells[0,i]);

    showmessage(SG1.Cells[1,i]);

    showmessage(SG1.Cells[2,i]);

    showmessage(SG1.Cells[3,i]);

    showmessage(SG1.Cells[4,i]);

    showmessage(SG1.Cells[5,i]);

    end;

    end;







    이쁜이 wrote:

    > 고맙습니다..

    > 그런데 한가지 더 알고 싶은게 있는데요..

    > 구분자를 콤마로 주었는데 끊어서 스트링 그리드에 넣는 방법도 알려주면 고맙겠습니다.

    > 이렇게 자리수맞춰서 할려면 얼마나 긴 데이터가 들어올지 몰라서요..

    > 꼭.......

    >

    >

    >

    > 이성훈 wrote:

    > > 이렇게 합 해보세요

    > > 그럼 즐프하세요..

    > >

    > > i := 0 ;

    > > While Not Eof(filename) Do Begin

    > > ReadLn(filename, MyStr);

    > > ShowMessage(MyStr);

    > > count:=(length(MyStr));

    > > showmessage(inttostr(count));

    > > i := i + 1

    > > StringGrid1.Cells[0,i] := copy(MyStr,1,10);

    > > StringGrid1.Cells[1,i] := copy(MyStr,11,22);

    > > StringGrid1.Cells[2,i] := copy(MyStr,33,10);

    > > StringGrid1.Cells[3,i] := copy(MyStr,43,15);

    > > StringGrid1.Cells[4,i] := copy(MyStr,58,7);

    > > StringGrid1.Cells[5,i] := copy(MyStr,65,7);

    > > end;

    > >

    > >

    > >

    > > 이쁜이 wrote:

    > > > //

    > > > T01-000005,강원 강릉시 견소동 202,(주)가디안,지오타운 입점료,2001.10,210-150

    > > > T01-000006,강원 삼척시 남양동 24-10,인켈 (삼척점),지오타운 입점료,2001.10,245-010

    > > > T01-000009,강원 영월군 영월읍 덕포리 486-64호,speed 래프팅,지오타운 입점료,2001.10,230-800

    > > > T02-000001,경기 성남시 중원구 중동 2500,피자24시,지오타운 입점료,2001.10,462-170

    > > > T02-000003,경기 성남시 수정구 복정동 268,에덴 꽃 직매장,지오타운 입점료,2001.10,461-200

    > > > //

    > > > 이런 데이터를 스트링 그리드에 넣을려구 하는데 쉽지가 않네요..

    > > > 방법좀 가르쳐 주세요

    > > >

    > > > 처음엔 구분자 없어서

    > > > While Not Eof(filename) Do Begin

    > > > ReadLn(filename, MyStr);

    > > > ShowMessage(MyStr);

    > > > count:=(length(MyStr));

    > > > showmessage(inttostr(count));

    > > > for i:= 1 to 10 do

    > > > begin

    > > > StringGrid1.Cells[0,i] := copy(MyStr,1,10);

    > > > StringGrid1.Cells[1,i] := copy(MyStr,11,22);

    > > > StringGrid1.Cells[2,i] := copy(MyStr,33,10);

    > > > StringGrid1.Cells[3,i] := copy(MyStr,43,15);

    > > > StringGrid1.Cells[4,i] := copy(MyStr,58,7);

    > > > StringGrid1.Cells[5,i] := copy(MyStr,65,7);

    > > > 이런 식로 짯는데

    > > > 모든 스트링그리드에 같은라인 결국에는 맨 마지막 라인에 있는 값만 다 들어가더라구요

    > > > 스트링그리드 각 라인마다 텍스트데이타 각 라인이 들어가야 되는데..

    > > >