아래 소스는 인터넷에서 찾은 건데, 앞에 있는공백 없애고, 뒤에 있는 공백 없애는 게 있는데,
제가 원하는 건 앞에도 뒤에서 문자열 사이에도 있는 공백을 없애고 싶은데.... 잘 코딩이 안 되네요.. 고수님들 좀 알려주세요~~
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
Space = #$20;
var
Form1: TForm1;
implementation
{$R *.DFM}
function LTrim(const Str: String): String;
var
len: Byte;
i: Integer;
begin
len := Length(Str);
i := 1;
while (i <= len) and (Str[i] = Space) do
Inc(i);
LTrim := Copy(Str,i,len)
end;
function RTrim(Str: String): String;
var
len: Byte;
begin
len := Length(Str);
while (Str[len] = Space) do
Dec(len);
RTrim := Str
end;
function Trim(Str: String): String;
begin
Trim := LTrim(RTrim(Str))
end;
function RightStr(const Str: String; Size: Word): String;
var
len: Byte;
begin
len := Length(Str);
if Size > len then
Size := len;
RightStr := Copy(Str,len-Size+1,Size)
end;
function LeftStr(const Str: String; Size: Word): String;
begin
LeftStr := Copy(Str,1,Size)
end;
function MidStr(Const Str: String; Size: Word): String;
var
len: Byte;
begin
len := Length(Str);
if Size > len then
Size := len;
MidStr := Copy(Str,((len - Size) div 2)+1,Size)
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
{
LTrim() - 문자열 왼쪽의 모든 공백을 제거
RTrim() - 문자열 오른쪽의 모든 공백을 제거
Trim() - LTrim & RTrim
RightStr() - 문자열의 오른쪽에서 부분문자열
LeftStr() - 문자열의 왼쪽에서 부분문자열
MidStr() - 문자열의 중간에서 부분문자열
}
ShowMessage(LTrim(Edit1.Text));
ShowMessage(RTrim(Edit1.Text));
ShowMessage(Trim(Edit1.Text));
ShowMessage(RightStr(Edit1.Text, 3));
ShowMessage(LeftStr(Edit1.Text, 2));
ShowMessage(MidStr(Edit1.Text, 4));
end;
end.
--- 아 래 ------
이 아래 부분은 Kelly라는 함수를 제 나름대로 만들어서 공백을 제거 해보려고 했는데, 도저히 원하는 값을 얻을 수가 없네요..
도움 부탁드립니다.~~!!
function Kelly(const Str: String): String;
var
len: Byte;
i: Integer;
j: Integer;
begin
len := Length(Str);
i := 1;
j := 1;
if i <= len then
if (Str[i] = Space) then
Inc(i);
if i <= len then
if (Str[i] <> Space) then
begin
Kelly := Copy(Str[j],i,i);
Inc(j);
Inc(i);
end;
end;
공백은 무조건 제거합니다.