::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2004-09-11 15:59:28, Hit : 5352, Vote : 1142
 http://www.howto.pe.kr
 StringGrid 를 텍스트파일(csv)로 저장하고 불러오기

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    Opendialog1: TOpendialog;
    SaveDialog1: TSaveDialog;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure LoadToGrid(strgrid: TStringGrid; FileName: String);
var
  I, ColumnCount: Integer;
  List: TStrings;
begin
  ColumnCount := 1;
  
  try
    Screen.Cursor := crHourGlass;
    List := TStringList.Create;
    List.LoadFromFile(FileName);

    for i := 0 To Length(List.Strings[0]) do
      if List.Strings[0][I] = ',' then Inc(ColumnCount);

    if ColumnCount = 0 then
    begin
      Screen.Cursor := crDefault;
      ShowMessage('The file wasn''t a CSV file');
      List.Free;
      Exit;
    end;

    with strgrid do
    begin
      RowCount := List.Count;
      ColCount := ColumnCount;

      for I := 0 To List.Count - 1 Do
        Rows[I].CommaText := List.Strings[I];
    end;
  finally
    Screen.Cursor := crDefault;
    List.Free;
  end;
end;

procedure SaveGridToFile(strgrid: TStringGrid; FileName: String);
var
  GridStrings: TStrings;
  I: Integer;
begin
  try
     GridStrings := TStringList.Create;
     with strgrid do
     begin
        for I := 0 to RowCount - 1 do
          GridStrings.Add(Rows[I].CommaText);
     end;
     GridStrings.SaveToFile(FileName);
  finally
    GridStrings.Free;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i, j: Integer;
begin
  // Column의 title을 만든다
  for i := 1 to StringGrid1.ColCount - 1 do
   StringGrid1.Cells[i, 0] := Char(Ord('A')+i-1);

  // Row의 title을 만든다
  for i := 1 to StringGrid1.RowCount - 1 do
   StringGrid1.Cells[0, i] := IntToStr(i);;

  // 임의의 자료를 만들어서 각 cell에 입력합니다
  for i := 1 to StringGrid1.ColCount - 1 do
    for j := 1 to StringGrid1.RowCount - 1 do
      StringGrid1.Cells[i, j] := Format('%.0n', [i * j * 10000.0]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not Opendialog1.Execute then
    System.Exit;
  SaveGridToFile(StringGrid1, Opendialog1.FileName);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to pred(StringGrid1.RowCount) do
    StringGrid1.Rows[i].Clear;

  if not Opendialog1.Execute then
    System.Exit;
  LoadToGrid(StringGrid1, Opendialog1.FileName);
end;

end.





371   [네트웍/인터넷] TClientSocket 에 Local IP 바인딩하기  김영대 2008/11/25 6720 1559
370   [일반/컴포넌트] TCanvas or TBitmap -> TGIFImage  김영대 2003/03/07 4719 1113
369   [데이터베이스] TBlobField에 대한 사용법  김영대 2003/03/04 4940 1260
368   [윈도우즈 API] TaskBar의 다양한 기능제어  김영대 2003/03/07 5027 1355
367   [윈도우즈 API] Taskbar 의 특정 위치에 popup 메뉴 띄우기  김영대 2004/07/24 4444 1160
366   [윈도우즈 API] Taskbar 의 위치 추적하기  김영대 2004/07/24 3837 1023
365   [윈도우즈 API] Taskbar 감추기/보이기  김영대 2003/03/05 4520 1170
364   [윈도우즈 API] Task bar 에 나타나지 않는 프로그램 만들기  김영대 2003/03/07 5009 1457
363   [윈도우즈 API] Task bar 에 나타나지 않는 프로그램 만들기  김영대 2003/03/07 5682 1458
362   [일반/컴포넌트] Task bar 에 나타나는 프로그램 아이콘 바꾸기  김영대 2004/08/11 4939 1172
361   [데이터베이스] table packing 하기  김영대 2003/03/07 3318 954
360   [일반/컴포넌트] Tab, Shift+Tab 키 이벤트 사용하기  김영대 2008/11/21 5253 1441
359   [시스템] System의 Idle 상태를 알아내는 API  김영대 2006/02/28 6401 1485
358   [시스템] System, User, GDI Resource  김영대 2003/03/07 4634 1340
357   [일반/컴포넌트] System Menu 의 닫기 메뉴 disable 시키기  김영대 2003/03/07 3614 958
356   [윈도우즈 API] System Images  김영대 2003/03/07 6147 1777
355   [일반/컴포넌트] StrToFloatDef  김영대 2003/11/13 4810 1214
354   [일반/컴포넌트] String과 Case문의 사용  김영대 2003/03/06 3702 1029
353   [일반/컴포넌트] StringGrid의 특정 cell에 그림 올리기  김영대 2003/03/05 3296 913
352   [일반/컴포넌트] StringGrid의 중간에 제목 Cell 두기  김영대 2003/03/07 5310 1333
351   [일반/컴포넌트] StringGrid의 선택된 Cell을 버튼으로 보이기  김영대 2003/03/07 4349 1073
350   [일반/컴포넌트] StringGrid의 모든 Cell 선택/해제하기  김영대 2004/09/25 4703 1133
349   [일반/컴포넌트] StringGrid의 Column의 크기(width) 자동 조절  김영대 2003/03/04 6173 1159
348   [일반/컴포넌트] StringGrid의 Cell을 강제로 다중 선택/해제 시키기  김영대 2003/03/07 3807 959
347   [일반/컴포넌트] StringGrid의 Cell을 left, center, right 정렬하기  김영대 2003/03/05 4388 1053
346   [일반/컴포넌트] StringGrid의 Cell에 입력 값 제한 하기  김영대 2003/03/04 5981 1279
345   [일반/컴포넌트] StringGrid에서 Enter Key를 Tab Key와 같은 효과  김영대 2003/03/04 5144 1186
344   [일반/컴포넌트] StringGrid 의 선택영역만 클립보드로 복사하기  김영대 2003/03/06 4613 984
343   [일반/컴포넌트] StringGrid 의 내용을 클립보드로 복사하기  김영대 2003/03/06 4233 1012
342   [일반/컴포넌트] StringGrid 의 각 Cell의 정렬  김영대 2003/03/04 4691 1054
341   [일반/컴포넌트] StringGrid 의 Cell에 여러줄의 한글문장 넣기  김영대 2003/03/05 5122 1141
340   [일반/컴포넌트] StringGrid 의 BeginUpdate/EndUpdate ?  김영대 2003/03/07 5172 1116
339   [일반/컴포넌트] StringGrid 에서 프로그램으로 MultiSelect 시키기  김영대 2003/03/06 5018 1132
338   [일반/컴포넌트] StringGrid 에 ReadOnly 컬럼두기  김영대 2003/03/05 4442 1074
337   [일반/컴포넌트] StringGrid 에 ReadOnly 제한두기  김영대 2003/03/05 4440 1248
336   [일반/컴포넌트] StringGrid 수직 스크롤바의 크기를 임의로 바꾸기  김영대 2003/03/07 5063 1071
  [일반/컴포넌트] StringGrid 를 텍스트파일(csv)로 저장하고 불러오기  김영대 2004/09/11 5352 1142
334   [일반/컴포넌트] StringGrid - multiline text  김영대 2003/03/07 5819 1351
333   [알고리즘] String Hash 함수  김영대 2004/09/17 4392 1152
332   [알고리즘] String ELF Hash 함수  김영대 2004/09/17 4510 1146

[이전 10개] [1]..[11][12][13][14][15] 16 [17][18][19][20]..[25] [다음 10개]
 

Copyright 1999-2020 Zeroboard / skin by zero