Q&A

  • 스트링그리드1에서 체크된 파일들 스트링그리드2에... ㅡㅡ;
스트링그리드1에 텍스트 파일명들을 보여 줍니다...
거기서 더블클릭해서 'C'라고 체크된 파일들의 내용들을(데이타들을) 모두.. 스트링그리드2 에 insert 하려고 하는데여..
아래의 소스를 실행하면...
스트링그리드1에서 체크된 맨~ 마지막 파일만 RichEdit1에 나타나고..
RichEdit1에 뿌려진 그 마지막파일의 첫번째 데이타만 스트링 그리드2 에 뿌려 집니다..
어떻해 수정을 해야 할지.. ㅡㅡ
스트링그리드1에 체크된 모든 파일들의 데이타들을 모두 스트링그리드2에 insert 하려는건 어케 해야 할지... (__) 많은 조언 부탁드려염...

procedure TfrmMnuE1.BtnsaveClick(Sender: TObject);
var i,J,k,f :integer;
    str : string;
    startrow,endrow : integer;
begin
    for k := 1 to 50 do
if   StringGrid1.Cells[1, k] = 'C' then
     begin
      RichEdit1.Lines.LoadFromFile('C:프로젝트  BarReaderTXTDATA' + StringGrid1.Cells[2, k]);
      for  i:=1 to StringGrid2.RowCount-1 do
         StringGrid2.Rows[i].Clear;
      StringGrid2.RowCount:=2;

      J := 0;
      for i:=0 to RichEdit1.Lines.Count-1 do
      begin
         str:= RichEdit1.Lines.Strings[i];
          J := J + 1;
          StringGrid2.Cells[1,J]:=copy(str,1,3);
          StringGrid2.Cells[2,J]:=copy(str,4,3);
          StringGrid2.Cells[3,J]:=copy(str,7,6);
          StringGrid2.Cells[4,J]:=copy(str,42,13);
          StringGrid2.Cells[5,J]:=copy(str,56,20);
          StringGrid2.Cells[6,J]:=copy(str,85,40);
          StringGrid2.Cells[7,J]:=copy(str,209,10);
          StringGrid2.Cells[8,J]:=copy(str,221,20);
          StringGrid2.Cells[9,J]:=copy(str,261,8);
          StringGrid2.Cells[10,J]:=copy(str,269,8);
          StringGrid2.Cells[11,J]:=copy(str,277,8);
          StringGrid2.Cells[12,J]:=copy(str,292,15);
          StringGrid2.Cells[13,J]:=copy(str,305,25);
          StringGrid2.Cells[14,J]:=copy(str,317,25);
          StringGrid2.Cells[15,J]:=copy(str,328,25);
          StringGrid2.Cells[16,J]:=copy(str,348,25);
          StringGrid2.Cells[17,J]:=copy(str,362,25);

          StringGrid1.RowCount:=StringGrid1.RowCount+1;
      end;
   end;
end;
2  COMMENTS
  • Profile
    KDDG_Check 2002.09.05 03:37
    procedure TfrmMnuE1.BtnsaveClick(Sender: TObject);
    var
      i,j: integer;
      inxRow: integer;
      str: string;
    begin
      StringGrid2.RowCount := 2;
      StringGrid2.Rows[1].Clear; //그리드 지우기
      inxRow := 0; //입력될 Row번호 초기화
      for i:=1 to StringGrid1.RowCount do
      begin
      
        if StringGrid1.Cells[1, i] = 'C' then
        begin
          //선택된 줄일경우
          RichEdit1.Lines.LoadFromFile('C:BarReaderTXTDATA' + StringGrid1.Cells[2, k]);
          //파일의 라인수(데이터수) 만큼 그리드2의 라인수 증가
          StringGrid2.RowCount := StringGrid2.RowCount + RichEdit1.Lines.Count;
          for j:=0 to RichEdit1.Lines.Count-1 do
          begin
            inc(inxRow); //입력될 Row번호 증가
            str := RichEdit1.Lines[j];
            StringGrid2.Cells[1,inxRow] := copy(str,1,3);
            //중략
            StringGrid2.Cells[17,inxRow] := copy(str,362,25);

          end; // j루프
        end; //end if
      end; //i 루프
    end; //프로시져

    ******************************************************
    이렇게 하면 될거 같네여
    간단한 건데 순서가 획갈리신거 같네여

    테스트 안해봤습니다.
    에러가 있을지도 모르겠습니다. 양해 바랍니다.
    ******************************************************

  • Profile
    짱아 2002.09.05 23:20
    답변 감사합니다.. 근데..
    richedit1에는 데이타가 처음과 같아염...
    체크된 맨~~~~마지막 데이타만 뿌려주네염.. .ㅡㅡ;
    우앙~~~~~~~~~~ ㅠ.ㅜ