::: µ¨ÆÄÀÌ Tip&Trick :::

µ¨ÆÄÀÌ Tip&Trick ¼º°Ý¿¡ ¸ÂÁö ¾Ê´Â ±¤°í,ºñ¹æ,Áú¹®ÀÇ ±ÛÀº Áï½Ã »èÁ¦Çϸç
³»¿ëÀ» º¹»çÇÏ¿© »ç¿ëÇÒ °æ¿ì ¹Ýµå½Ã À̰÷(http://www.howto.pe.kr)À» Ãâó·Î ¸í½ÃÇÏ¿© ÁÖ¼¼¿ä


Category

  ±è¿µ´ë(2004-08-03 13:03:40, Hit : 5536, Vote : 1263
 http://www.howto.pe.kr
 Zlib ¸¦ ÀÌ¿ëÇÑ ¾ÐÃà°ú ÇØÁ¦

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Zlib, ComCtrls, DbiTypes, DbiProcs, DbiErrs;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    RichEdit1: TRichEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure CompressStream(inpStream, outStream: TStream);
var
  InpBuf, OutBuf: Pointer;
  InpBytes, OutBytes: Integer;
begin
  InpBuf := nil;
  OutBuf := nil;
  try
    GetMem(InpBuf, inpStream.Size);
    inpStream.Position := 0;
    InpBytes := inpStream.Read(InpBuf^, inpStream.Size);
    CompressBuf(InpBuf, InpBytes, OutBuf, OutBytes);
    outStream.Write(OutBuf^, OutBytes);
  finally
    if InpBuf <> nil then FreeMem(InpBuf);
    if OutBuf <> nil then FreeMem(OutBuf);
  end;
end;

procedure DecompressStream(inpStream, outStream: TStream);
var
  InpBuf, OutBuf: Pointer;
  OutBytes, sz: Integer;
begin
  InpBuf := nil;
  OutBuf := nil;
  sz := inpStream.Size - inpStream.Position;
  if sz > 0 then
    try
      GetMem(InpBuf, sz);
      inpStream.Read(InpBuf^, sz);
      DecompressBuf(InpBuf, sz, 0, OutBuf, OutBytes);
      outStream.Write(OutBuf^, OutBytes);
    finally
      if InpBuf <> nil then FreeMem(InpBuf);
      if OutBuf <> nil then FreeMem(OutBuf);
    end;
  outStream.Position := 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ms1, ms2: TMemoryStream;
begin
  ms1 := TMemoryStream.Create;
  try
    ms2 := TMemoryStream.Create;
    try
      RichEdit1.Lines.SaveToFile('C:\zzz\original.dat'); // ¿øº»

      RichEdit1.Lines.SaveToStream(ms1);
      CompressStream(ms1, ms2);
      ShowMessage(Format('¾ÐÃâÀ²: %d %%', [round(100 / ms1.Size * ms2.Size)]));
      ms2.SaveToFile('C:\zzz\compressed.dat');
      RichEdit1.Clear;
    finally
      ms1.Free;
    end;
  finally
    ms2.Free;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  ms1, ms2: TMemoryStream;
begin
  ms1 := TMemoryStream.Create;
  try
    ms2 := TMemoryStream.Create;
    try
      ms1.LoadFromFile('C:\zzz\compressed.dat');
      DecompressStream(ms1, ms2);
      RichEdit1.Lines.LoadFromStream(ms2);
    finally
      ms1.Free;
    end;
  finally
    ms2.Free;
  end;
end;

// ¾Æ·¡´Â ¿¹Á¦ ¹®ÀÚ¿­À» ¸¸µé±â À©ÇÑ °ÍÀÔ´Ï´Ù
procedure TForm1.FormCreate(Sender: TObject);
var
  Category: byte;
  Code: byte;
  ResultCode: word;
  ErrorString: array[0..DBIMAXMSGLEN + 1] of char;
  OutString: string;
begin
  // BDE ȯ°æÀ» ÃʱâÈ­ ÇÑ´Ù
  DbiInit(nil);

  RichEdit1.Lines.Clear;

  for Category := ERRCAT_NONE to ERRCAT_RC do
    for Code := 0 to 255 do
    begin
      ResultCode := (Category shl 8) + Code;
      // error code ¿¡ ÇØ´çÇÏ´Â ¸Þ½ÃÁö¸¦ ±¸ÇÑ´Ù
      DbiGetErrorString(ResultCode, ErrorString);
      if StrLen(ErrorString) > 0 then // ÁÖ¾îÁø ¿¡·¯ÄÚµåÀÇ ¼³¸íÀÌ Àִ°͸¸ ¹ßÃë
      begin
        OutString := Format('%6d  %0.4x  %s', [ResultCode, ResultCode, ErrorString]);
        RichEdit1.Lines.Add(OutString);
      end;
    end;

  // BDE ·Î ºÎÅÍ Á¢¼ÓÀ» ÇØÁ¦ÇÏ¿© »ç¿ëÇÑ ÀÚ¿øÀ» ¹Ý³³ÇÑ´Ù
  DbiExit;
end;

end.





171   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Ç¥ÁØ TListBox ¿¡ Radio ¹öư ¿Ã¸®±â  ±è¿µ´ë 2004/07/27 4306 1166
170   [½Ã½ºÅÛ] ½ÇÇàÁßÀÎ ¸ðµç ÇÁ·Î¼¼½ºÀÇ Domain, User ±¸ÇÏ±â  ±è¿µ´ë 2004/07/27 5467 1288
169   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit ÀÇ ¸¶¿ì½º Ä¿¼­ ¾Æ·¡ÀÇ ±ÛÀÚ ±¸ÇÏ±â  ±è¿µ´ë 2004/07/27 4851 1117
168   [½Ã½ºÅÛ] Keyboard hook À» »ç¿ëÇÑ OnKeyDown ±¸Çö  ±è¿µ´ë 2004/07/27 5465 1379
167   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TListBox ÀÇ ¸¶¿ì½º Ä¿¼­ ¾Æ·¡ÀÇ ¾ÆÀÌÅÛ ±¸ÇÏ±â  ±è¿µ´ë 2004/07/27 4010 1072
166   [COM/OLE] ƯÁ¤ À¥ÆäÀÌÁöÀÇ ¸ðµç Link URL ±¸ÇÏ±â  ±è¿µ´ë 2004/07/27 5946 1555
165   [COM/OLE] PDF ActiveX »ç¿ëÇÏ±â  ±è¿µ´ë 2004/08/02 5454 1260
164   [COM/OLE] ƯÁ¤ »çÀÌÆ®ÀÇ ³»¿ëÀ» JPG ·Î ÀúÀåÇÏ±â  ±è¿µ´ë 2004/08/02 5486 1218
163   [COM/OLE] ƯÁ¤ »çÀÌÆ®ÀÇ form À» °­Á¦ submit ÇÏ±â  ±è¿µ´ë 2004/08/02 6127 1492
162   [COM/OLE] IE ¿¡ Á÷Á¢ ÀÔ·ÂÇÑ URL ¸ñ·Ï ±¸ÇÏ±â  ±è¿µ´ë 2004/08/02 4613 1127
161   [½Ã½ºÅÛ] ¿ÜºÎ ÇÁ·Î±×·¥ Á¾·á ½ÃŰ±â  ±è¿µ´ë 2004/08/02 9829 1259
160   [½Ã½ºÅÛ] DOS (¸í·É ÇÁ·ÒÇÁÆ®) âÀÇ »ö»ó, È­¸é ¸ðµå ¹Ù²Ù±â  ±è¿µ´ë 2004/08/02 5841 1689
159   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Search and Select  ±è¿µ´ë 2004/08/03 5996 1645
  [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Zlib ¸¦ ÀÌ¿ëÇÑ ¾ÐÃà°ú ÇØÁ¦  ±è¿µ´ë 2004/08/03 5536 1263
157   [½Ã½ºÅÛ] ÀÏÁ¤½Ã°£ °æ°ú ÈÄ À©µµ¿ìÁî Á¾·áÇÏ±â  ±è¿µ´ë 2004/08/03 4878 1176
156   [½Ã½ºÅÛ] DOS ¸í·É¾î ½ÇÇàÇÏ°í °á°ú ¹Þ¾Æ¿À±â (Win2k,XP)  ±è¿µ´ë 2004/08/03 5908 1420
155   [½Ã½ºÅÛ] À©µµ¿ìÁî È­¸é Àá±×±â  ±è¿µ´ë 2004/08/03 5368 1356
154   [½Ã½ºÅÛ] À©µµ¿ìÁî »ç¿ëÀÚ °èÁ¤ Á¤º¸ ±¸ÇÏ±â  ±è¿µ´ë 2004/08/03 5538 1475
153   [½Ã½ºÅÛ] ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚ¿Í µµ¸ÞÀÎ ±¸ÇÏ±â  ±è¿µ´ë 2004/08/04 4463 1220
152   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Hex Viewer  ±è¿µ´ë 2004/08/04 4466 1114
151   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit ¿¡ URL link ¸¸µé±â  ±è¿µ´ë 2004/08/04 6165 1435
150   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] µ¿ÀûÀ¸·Î »ý¼ºÇÑ TLabel ¸¶¿ì½º·Î À̵¿½ÃŰ±â  ±è¿µ´ë 2004/08/04 6614 1926
149   [À©µµ¿ìÁî API] ¼¼·Î ŸÀÌÆ²¹Ù ¸¸µé±â  ±è¿µ´ë 2004/08/04 5346 1417
148   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TPanel ·Î ¸¸µç ÈùÆ®  ±è¿µ´ë 2004/08/05 4704 1196
147   [½Ã½ºÅÛ] À©µµ¿ìÁî ºÎÆÃ ¸ðµå(Á¤»ó, ¾ÈÀü)  ±è¿µ´ë 2004/08/05 4380 1232
146   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ListView ³»¿ëÀ» ÆÄÀÏ·Î ÀúÀåÇÏ°í ºÒ·¯¿À±â  ±è¿µ´ë 2004/08/05 4767 1132
145   [À©µµ¿ìÁî API] ÈÞÁöÅëÀÌ ºñ¾îÀÖ´ÂÁö È®ÀÎÇÏ±â  ±è¿µ´ë 2004/08/05 5126 1274
144   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TreeView ÀÇ ³ëµå¸¦ º¼µå(Bold)·Î °­Á¶ÇÏ±â  ±è¿µ´ë 2004/08/05 7722 1744
143   [½Ã½ºÅÛ] ÇÁ·Î±×·¥ Á¦°Å(Uninstall) ¸ñ·Ï ±¸ÇÏ±â  ±è¿µ´ë 2004/08/05 5090 1330
142   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Adobe Acrobat ÀÌ ¼³Ä¡µÇ¾ú´ÂÁö °Ë»çÇÏ±â  ±è¿µ´ë 2004/08/06 4702 1174
141   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Shockwave Flash °¡ ¼³Ä¡µÇ¾ú´ÂÁö °Ë»çÇÏ°í ¹öÀüÁ¤º¸ Àоî¿À±â  ±è¿µ´ë 2004/08/06 6195 1556
140   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Title bar ¿¡ ¹®ÀÚ ¿Ã¸®±â  ±è¿µ´ë 2004/08/06 4840 1298
139   [À©µµ¿ìÁî API] Type Library ¸ñ·Ï ±¸ÇÏ±â  ±è¿µ´ë 2004/08/06 4705 1259
138   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] º®¿¡ µé·¯ºÙ´Â ÀÚ¼®Æû ¸¸µé±â  ±è¿µ´ë 2004/08/06 4888 1219
137   [COM/OLE] Shockwave Flash ActiveX »ç¿ëÇϱ⠿¹Á¦  ±è¿µ´ë 2004/08/09 5196 1375
136   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¼ö½Ä(Expression) °è»ê±â  ±è¿µ´ë 2004/08/09 6365 1167
135   [³×Æ®¿÷/ÀÎÅͳÝ] Ping ¼Ò½º  ±è¿µ´ë 2004/08/09 7228 1304
134   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] µµ³Ó(Doughnut) ¸ð¾çÀÇ Æû ¸¸µé±â  ±è¿µ´ë 2004/08/09 4977 1235
133   [½Ã½ºÅÛ] Sleep Áß¿¡µµ ŸÀÌ¸Ó À̺¥Æ® ¹ß»ý½ÃŰ±â  ±è¿µ´ë 2004/08/09 6111 1444
132   [À©µµ¿ìÁî API] IE Àӽà ÀÎÅÍ³Ý ÆÄÀÏ Æú´õ ºñ¿ì±â2  ±è¿µ´ë 2004/08/11 5112 1321

[ÀÌÀü 10°³] [1].. 21 [22][23][24][25]
 

Copyright 1999-2023 Zeroboard / skin by zero