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

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


Category

  ±è¿µ´ë(2003-03-07 09:12:17, Hit : 4530, Vote : 1131
 WideString À» String À¸·Î ¹Ù²Ù±â

uses sysutils, windows;

const Ccol = 24;

function ansiToWide(s: String): pWideChar;
var
  wideStrSize: integer;
  j: integer;
  p: pChar absolute result;
begin
  wideStrSize := 2*(length(s)+1);
  getmem(result, wideStrSize);
  stringToWideChar(s, result, wideStrSize);
end;

function wideAsString(p: pWideChar): String;
var
  wideStrSize: integer;
  j: integer;
begin
  wideStrSize := 2*lstrlenw(p);
  setLength(result, wideStrSize);
  move(p[0], result[1], wideStrSize);
end;

function widePos(sKey, sTarget: String): integer;
begin
  result := (pos(sKey, sTarget) + 1) div 2;
end;

procedure checkMargin(j: integer);
const
  Cline = (80-Ccol) div 3;
begin
  if j mod Cline = 0 then
  begin
    writeln;
    write(' ': Ccol);
  end;
end;

procedure showAnsi(s: String);
var
  j: integer;
begin
  writeln('Ansi string: ':Ccol, s);
  write('Ansi bytes: ':Ccol);
  for j := 1 to length(s) do
  begin
    checkMargin(j);
    write (ord(s[j]), ' ');
  end;
  writeln;
end;


Procedure showUnicode(p: PwideChar);
Var
  j: integer;
Begin
  write('Unicode bytes: ':Ccol);
  for j:=0 to 2*lstrLenw(p)+1 do begin
      checkMargin(j+1);
      write (ord(pchar(p)[j]), ' ');
      end;
  writeln;
End;

Procedure showWideString(s: string);
Var
  j: integer;
Begin
  write('Wide-as-string bytes: ':Ccol);
  for j:=1 to length(s) do begin
      checkMargin(j);
      write (ord(s[j]), ' ');
      end;
  writeln;
End;


Var
  s1, s2, s1w, s2w: string;
  p1, p2: pWideChar;
  n: integer;
  f: file;
Begin
  s1:='abcdefghijklm';
  s2:='ef';
  p1:=ansiToWide(s1);
  p2:=ansiToWide(s2);
  s1w:=wideAsString(p1);
  s2w:=wideAsString(p2);

  showAnsi(s1);
  showUnicode(p1);
  showWideString(s1w);
  writeln;

  showAnsi(s2);
  showUnicode(p2);
  showWideString(s2w);
  writeln;

  writeln('String pos: ':Ccol, pos(s2, s1));
  writeln('Wide-string pos: ':Ccol, widePos(s2w, s1w));
  writeln;

  freemem(p1);
  freemem(p2);

  write('String to put in Test.txt: ');
  readln(s2);
  p2:=ansiToWide(s2);
  s2w:=wideAsString(p2);
  write('Position to put it at (from 0): ');
  readln(n);

  assignFile(f, 'test.txt');
  reset(f, 1);
  seek(f, n);

  blockWrite(f, p2[0], 2*lstrLenw(p2));
  close(f);

  reset(f, 1);
  setLength(s1, fileSize(f));
  blockRead(f, s1[1], length(s1));
  close(f);

  writeln('Pos of ', s2, ' in Text.txt = ', pos(s2w, s1)-1);

  freemem(p2);
end.





411   [À©µµ¿ìÁî API] ¸ð¼­¸®°¡ µÕ±Ù(rounded ends) TEdit ¸¸µé±â  ±è¿µ´ë 2003/03/07 4988 1289
410   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TOpenDialog ÀÇ '¼±ÅÃ','Ãë¼Ò' ¹öư À̸§ ¹Ù²Ù±â  ±è¿µ´ë 2003/03/07 4383 1336
409   [À©µµ¿ìÁî API] ·¹Áö½ºÆ®¸® Àüü °Ë»öÇÏ±â  ±è¿µ´ë 2003/03/07 4229 1144
408   [À©µµ¿ìÁî API] ALT_F4 hot key °¡·Îä±â  ±è¿µ´ë 2003/03/07 5665 1621
407   [µ¥ÀÌÅͺ£À̽º] µ¿ÀûÀ¸·Î SELECTÀÇ GROUP BY ¹® ¸¸µé±â  ±è¿µ´ë 2003/03/07 4208 947
406   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ListView ÀÇ item À» °­Á¦·Î ÆíÁý»óÅ·Π¸¸µé±â  ±è¿µ´ë 2003/03/07 4677 1227
405   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] MessageDlg()ÀÇ ÆùÆ®¸¦ ¹Ù²Ù¾î¼­ ¶ç¿ì±â  ±è¿µ´ë 2003/03/07 3920 1072
404   [À©µµ¿ìÁî API] À©µµ¿ìÁî Ž»ö±âÀÇ ÆÄÀÏ, ÄÄÇ»ÅÍ Ã£±â È­¸é ¶ç¿ì±â  ±è¿µ´ë 2003/03/07 6196 1632
  [ÀϹÝ/ÄÄÆ÷³ÍÆ®] WideString À» String À¸·Î ¹Ù²Ù±â  ±è¿µ´ë 2003/03/07 4530 1131
402   [À©µµ¿ìÁî API] ´Ù¸¥ ApplicationÀÇ È­¸é¿¡ ±ÛÀÚ,±×¸²À» Ãâ·ÂÇÏ±â  ±è¿µ´ë 2003/03/07 3409 870
401   [À©µµ¿ìÁî API] À©µµ¿ìÁî '½ÃÀÛ' ¸Þ´º Refresh ½ÃŰ±â  ±è¿µ´ë 2003/03/07 4632 1420
400   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ¿¡¼­ ÇÁ·Î±×·¥À¸·Î MultiSelect ½ÃŰ±â  ±è¿µ´ë 2003/03/06 5497 1195
399   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ÀÇ ¼±Åÿµ¿ª¸¸ Ŭ¸³º¸µå·Î º¹»çÇÏ±â  ±è¿µ´ë 2003/03/06 4922 1093
398   [À©µµ¿ìÁî API] RichEdit¿¡ ÀÔ·ÂÇÑ ¹®ÀåÀÇ ½ÇÁ¦ ³ôÀÌ ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 5082 1432
397   [À©µµ¿ìÁî API] DDE ¾²Áö ¾Ê°í IEÀÇ ÇöÀç URL °¡Á®¿À±â  ±è¿µ´ë 2003/03/06 6013 1684
396   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] MemoÀÇ ÇàÀÇ ¹®ÀÚ¼ö¸¦ Á¦ÇÑÇϰí WordWrap½ÃŰ±â  ±è¿µ´ë 2003/03/06 5273 1317
395   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] OEM conversion  ±è¿µ´ë 2003/03/06 4355 1267
394   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ASCII printing  ±è¿µ´ë 2003/03/06 5353 1226
393   [COM/OLE] DelphiÀÇ OCX¸¦ InstallShield·Î ¹èÆ÷ÇÏ´Â ¹æ¹ý  ±è¿µ´ë 2003/03/06 8412 5649
392   [µ¥ÀÌÅͺ£À̽º] Save DBGrid To Excel  ±è¿µ´ë 2003/03/06 7147 1967
391   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ÀÇ ³»¿ëÀ» Ŭ¸³º¸µå·Î º¹»çÇÏ±â  ±è¿µ´ë 2003/03/06 4508 1063
390   [À©µµ¿ìÁî API] ·¹Áö½ºÆ®¸®ÀÇ º¯°æ¿©ºÎ ¾Ë¸®´Â 2°¡Áö ¹æ¹ý  ±è¿µ´ë 2003/03/06 4803 1289
389   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] desktop ¹è°æÈ­¸éÀ» ÆûÀÇ ¹è°æÈ­¸éÀ¸·Î ±×¸®±â  ±è¿µ´ë 2003/03/06 3731 1040
388   [¸ÖƼ¹Ìµð¾î] JPEG, WAVE ¸¦ resource ÆÄÀÏ¿¡ ³Ö°í Àоî¿À±â  ±è¿µ´ë 2003/03/06 5377 1231
387   [½Ã½ºÅÛ] ¸¶ÀÌÅ© º¼·ý Á¶ÀýÇÏ±â  ±è¿µ´ë 2003/03/06 4692 1291
386   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] À©µµ¿ìÁî "³¯Â¥/½Ã°£" ¼³Á¤È­¸é ¶ç¿ì±â  ±è¿µ´ë 2003/03/06 6230 1828
385   [½Ã½ºÅÛ] ¿Àµð¿À CDÀÇ º¼·ý Á¶ÀýÇÏ±â  ±è¿µ´ë 2003/03/06 3670 1029
384   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¹®ÀÚ¿­ ¼ö½Ä¹®Àå(expression)ÀÇ °á°ú ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 3446 896
383   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ƯÁ¤ ColorÀÇ Invert Color ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 4339 1323
382   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] µÎ°³ÀÇ RichEdit »çÀÌ¿¡ ³»¿ë º¹»çÇÏ±â  ±è¿µ´ë 2003/03/06 5926 1379
381   [½Ã½ºÅÛ] Redirecting DOS Application Output  ±è¿µ´ë 2003/03/06 4743 1226
380   [½Ã½ºÅÛ] How do I use SetWindowsHookEx ?  ±è¿µ´ë 2003/03/06 6961 964
379   [À©µµ¿ìÁî API] KeyDownÀÇ BeepÀ½À» ¾ø¾ÖÀÚ...  ±è¿µ´ë 2003/03/06 4693 1218
378   [µ¥ÀÌÅͺ£À̽º] ƯÁ¤ ÆûÀÇ ÇöÀç ÆíÁýÁßÀÎ DB Field ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 4113 1118
377   [À©µµ¿ìÁî API] ÇÁ·Î±×·¥À¸·Î Screensaver µî·ÏÇÏ´Â µÎ°¡Áö ¹æ¹ý  ±è¿µ´ë 2003/03/06 4538 1275
376   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TObjectÀÇ ÇÁ·ÎÆÛƼ¸¦ ¹®ÀÚ¿­·Î ÂüÁ¶ÇÏ±â  ±è¿µ´ë 2003/03/06 5249 1600
375   [À©µµ¿ìÁî API] ¿ÜºÎ ÇÁ·Î±×·¥À» ÃÖ»óÀ§·Î ¼³Á¤ÇÏ±â  ±è¿µ´ë 2003/03/06 5279 1240
374   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] À̹ÌÁö¸¦ ¸¶¿ì½º·Î drag ÇØ¼­ zoom ÇÏ±â  ±è¿µ´ë 2003/03/06 3644 1030
373   [À©µµ¿ìÁî API] Æú´õ³ª ÆÄÀÏÀÇ À©µµ¿ìÁî µî·ÏÁ¤º¸ dialog ¶ç¿ì±â  ±è¿µ´ë 2003/03/06 5124 1483
372   [³×Æ®¿÷/ÀÎÅͳÝ] How to bring a network down - "Win Nuke"  ±è¿µ´ë 2003/03/06 7353 2002

[ÀÌÀü 10°³] [1]..[11][12][13][14] 15 [16][17][18][19][20]..[25] [´ÙÀ½ 10°³]
 

Copyright 1999-2023 Zeroboard / skin by zero