죄송한 질문이지만... string의 일부 글을 삭제할려구..(앞의)했는데...
잠시 밑의 예제를 봐주세요...
참고... edit의 맨앞에 글을 없앨려구...
예제)
var
a,b,c : string;
begin
a := edit1.text;
b := 'abc';
if StrPos(pchar(a),pchar(b)) <> nil then
begin
c := pos(b,a);
delete(a,c,3);
label1.caption:=a;
end;
첫번째 발견 하는 'abc'를 지우더라구요..
그런데 앞에 abc가 없고 중간에 있어도 지우더리고요...
그래서. 이렇게 바꿨는데
예제)
var
a,b : string;
begin
a := edit1.text;
b := 'abc';
if StrPos(pchar(a),pchar(b)) <> nil then
begin
delete(a,1,3);
label1.caption:=a;
end;
이렇게 바꿨더니... 앞에 abc가 있으면 문제가 없는데
중간에 있으면 맨 앞부터 지우더라구요...
그래서 생각했는데......
if 문에서 StrPos(pchar(a),pchar(b)) <> nil 이고(and)
edit의 text의 첫번째 포인터부터 있으면
실행하면 되겠구나 했는데
어떻게 해야 될지 모르겠습니다.
도움 부탁 드립니다. 제발.....
글구, 제 글에 답변 주신 분들 감사합니다.
> 죄송한 질문이지만... string의 일부 글을 삭제할려구..(앞의)했는데...
> 잠시 밑의 예제를 봐주세요...
> 참고... edit의 맨앞에 글을 없앨려구...
>
> 예제)
> var
> a,b,c : string;
> begin
> a := edit1.text;
> b := 'abc';
> if StrPos(pchar(a),pchar(b)) <> nil then
> begin
> c := pos(b,a);
> delete(a,c,3);
> label1.caption:=a;
> end;
>
> 첫번째 발견 하는 'abc'를 지우더라구요..
> 그런데 앞에 abc가 없고 중간에 있어도 지우더리고요...
> 그래서. 이렇게 바꿨는데
>
> 예제)
> var
> a,b : string;
> begin
> a := edit1.text;
> b := 'abc';
> if StrPos(pchar(a),pchar(b)) <> nil then
> begin
> delete(a,1,3);
> label1.caption:=a;
> end;
>
> 이렇게 바꿨더니... 앞에 abc가 있으면 문제가 없는데
> 중간에 있으면 맨 앞부터 지우더라구요...
>
> 그래서 생각했는데......
> if 문에서 StrPos(pchar(a),pchar(b)) <> nil 이고(and)
> edit의 text의 첫번째 포인터부터 있으면
> 실행하면 되겠구나 했는데
> 어떻게 해야 될지 모르겠습니다.
> 도움 부탁 드립니다. 제발.....
>
> 글구, 제 글에 답변 주신 분들 감사합니다.
>
정말 고생 많으신것 같군요 어제부터
a := edit1.text; // abcdeabcde
b := 'abc';
if (pos(b, a) = 1) then begin
delete(a,1,length(b));
end;
showmessage(a); // deabcde