Q&A

  • 텍스트 파일에서 레코드의 일정부분 삭제하는 방법좀 가르쳐...
텍스트 파일의 내용이 다음과 같습니다

sdafasfaf-aaa saadsgdsgsd

dfgsgggggdsfg-aaa fdsgsgfdsh

fdagdfs-aaa sdagfsdfgjhg

adsggs-AAA sadgfdsfg



각 레코드 길이는 일정치 않습니다

각 레코드에는 일정하게 aaa 또는 AAA(대소문자 다 있음) 있습니다

삭제하고자 하는 부분은 aaa 또는 AAA 뒤에 잇는 모든 문자를 삭제하고자 합니다

도움을 주신분에게는 미리 감사 말씀 드립니다 ^.^



2  COMMENTS
  • Profile
    초보일세 2001.11.17 00:34
    커피맨 wrote:

    > 텍스트 파일의 내용이 다음과 같습니다

    > 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.



  • Profile
    커피맨 2001.11.17 01:44
    초보일세 wrote:

    > 커피맨 wrote:

    > > 텍스트 파일의 내용이 다음과 같습니다

    > > 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.

    >

    자세히두 가르쳐 주셧네여

    큰도움이 되었습니다

    대단히 감사합니다