공부를 하다가 문제가 있어 이렇게 질문을 올립니다.
아무나 아시는 분은 저에게 메일을 보내주십시요....
다름이 아니라, 특수문자를 공백으로 인식을 하게 해서 공백을 기준으로 문자를 자르는 것을 하고 있는 중에. 문제가 발생합니다.
특수문자는 배열에 넣어서 처리를 하면 되는데, 엔터키를 치면 그것을 공백으로 인식을 하지 않는관계로 그 다음 문자와 같이 연결이 되어서 처리가 됩니다.
그래서 엔터키를 공백으로만 바꿀수 있다면 해결이 될 것 같은데.....
아시는 분은 빠르면 빠를수록 좋습니다.
답장을 부탁합니다.
> 공부를 하다가 문제가 있어 이렇게 질문을 올립니다.
> 아무나 아시는 분은 저에게 메일을 보내주십시요....
> 다름이 아니라, 특수문자를 공백으로 인식을 하게 해서 공백을 기준으로 문자를 자르는 것을 하고 있는 중에. 문제가 발생합니다.
> 특수문자는 배열에 넣어서 처리를 하면 되는데, 엔터키를 치면 그것을 공백으로 인식을 하지 않는관계로 그 다음 문자와 같이 연결이 되어서 처리가 됩니다.
> 그래서 엔터키를 공백으로만 바꿀수 있다면 해결이 될 것 같은데.....
> 아시는 분은 빠르면 빠를수록 좋습니다.
> 답장을 부탁합니다.
김미정님 안녕하세요?
일전에 제가 쓰려고 작성해둔 함수가 생각나서 올려봅니다.
아래 함수를 DelChar(True, '11-11-11-11', '-')형태로 호출하면,
결과는 '-'문자가 삭제되어 '11111111' 로 돌아오게 되며,
DelChar(False, '11-11-11-11', '-')로 호출하면,
결과는 '-' 문자가 공백이 되어 '11 11 11 11'형태로 돌려줍니다.
아래 예제는 메모 컴포넌트 두개를 올려두고,
Memo1의 텍스트에 있는 엔터값을 공백으로 바꾸어 Memo2의 텍스트로
복사하는 간단히 테스트 해본 예제입니다.
응용하시면 충분히 해결 가능하실겁니다.
그럼.. 즐거운 프로그래밍 되시길~
function DelChar(Del:Boolean; Source: String; Ch: Char ): string;
var i, Position, SrcLen, DelLen : integer;
begin
Position := Pos( Ch, Source );
i := 0;
while(Position > 0)do
begin
i := i + 1;
if Del then Delete( Source, Position, 1 )
else Source[Position]:= ' ';
Position := Pos( Ch, Source );
end;
Result := Source;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,j: integer;
Temp:String;
begin
Temp:= Memo1.Lines.Text;
Temp:= DelChar(False, Temp, #10);
Temp:= DelChar(True, Temp, #13 );
Memo2.Lines.Clear;
Memo2.Lines.Text:= Temp;
end;