텍스트 파일의 내용이 다음과 같습니다
sdafasfaf-aaa saadsgdsgsd
dfgsgggggdsfg-aaa fdsgsgfdsh
fdagdfs-aaa sdagfsdfgjhg
adsggs-AAA sadgfdsfg
각 레코드 길이는 일정치 않습니다
각 레코드에는 일정하게 aaa 또는 AAA(대소문자 다 있음) 있습니다
삭제하고자 하는 부분은 aaa 또는 AAA 뒤에 잇는 모든 문자를 삭제하고자 합니다
도움을 주신분에게는 미리 감사 말씀 드립니다 ^.^
> 텍스트 파일의 내용이 다음과 같습니다
> sdafasfaf-aaa saadsgdsgsd
> dfgsgggggdsfg-aaa fdsgsgfdsh
> fdagdfs-aaa sdagfsdfgjhg
> adsggs-AAA sadgfdsfg
>
> 각 레코드 길이는 일정치 않습니다
> 각 레코드에는 일정하게 aaa 또는 AAA(대소문자 다 있음) 있습니다
> 삭제하고자 하는 부분은 aaa 또는 AAA 뒤에 잇는 모든 문자를 삭제하고자 합니다
> 도움을 주신분에게는 미리 감사 말씀 드립니다 ^.^
>
흐음... 그냥 머 이런 방법도 있구나 정도로만 보시면 되요.....
위의 텍스트 내용 위주로만 하였기에 ... 님이 원하고자하는 방법이 아닐수 있어요...
아래 소스를 카피하고 폼에다 메모 하나 버튼 하나 놓으면 바로 볼수 있어여
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure memoCut(); // <== 파싱할 프로시저 추가
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.memoCut(); // <== 내용을 파싱할 프로시저
var
memo : TStringList;
i, len : Integer;
strKey1, strKey2, key1, key2 : String;
keyIndex1, keyIndex2 : Integer;
begin
memo := TStringList.Create(); // <=== 스트링 리스트를 Create 함
memo.Text := memo1.Text; // <==== 스트링 리스트라는 함수에 파일내용을 넣음
memo1.Clear;
strKey1 := '-aaa';
strKey2 := '-AAA';
for i := 0 to memo.Count-1 do begin // <== 한 줄 한 줄 -aaa 나 -AAA를 찾음
keyIndex1 := pos(strKey1, memo[i]);
if keyIndex1 > 0 then begin
len := Length(memo[i]);
key1 := Copy(memo[i], 0, len-(len-keyIndex1-4));
memo1.Lines.Add(key1);
end;
keyIndex2 := pos(strKey2, memo[i]);
if keyIndex2 > 0 then begin
len := Length(memo[i]);
key2:= Copy(memo[i], 0, len-(len-keyIndex2-4));
memo1.Lines.Add(key2);
end;
end;
memo.Free; // <=== 마지막으로 Free를 함
end;
procedure TForm1.Button1Click(Sender: TObject); // <==== 메모에다 내용을 넣음
begin
memo1.Lines.Add('sdafasfaf-aaa saadsgdsgsd');
memo1.Lines.Add('dfgsgggggdsfg-aaa fdsgsgfdsh');
memo1.Lines.Add('fdagdfs-aaa sdagfsdfgjhg');
memo1.Lines.Add('adsggs-AAA sadgfdsfgp');
memoCut();
end;
end.