Q&A

  • text 화일을 열어 특정 문자 replace 하기
text 화일을 열어서 화일을 읽은 후에 특정문자를 치환하고 싶은데 할 수 있는 방법이 나요?
고수님의 한수 지도 바랍니다.

<!--CodeS-->

<aa.txt 화일 내용>
[ Made by map editor v.20040220 ]
[ Size width = 869, height = 504 ]
1067909764671|1|871|334|160|30|010200!type=a:code=ATS_.4.4!112.454!0.00!출력전류R!0!A$null$1.0|sansserif!0!11|0!0!0|224@224@224!255@0@0!255@128@192!0@64@128!0@0@0!128@64@64!0@128@64
1067909764671|1|872|300|160|30|010200!type=a:code=ATS_.4.3!212.637!0.00!출력전압T!0!V$null$1.0|sansserif!0!11|0!0!0|224@224@224!255@0@0!255@128@192!0@64@128!0@0@0!128@64@64!0@128@64
1067909764671|1|871|265|160|30|010200!type=a:code=ATS_.4.2!212.363!0.00!출력전압S!0!V$null$1.0|sansserif!0!11|0!0!0|224@224@224!255@0@0!255@128@192!0@64@128!0@0@0!128@64@64!0@128@64
1067909764671|1|871|229|160|30|010200!type=a:code=ATS_.4.1!211.538!0.00!출력전압R!0!V$null$1.0|sansserif!0!11|0!0!0|224@224@224!255@0@0!255@128@192!0@64@128!0@0@0!128@64@64!0@128@64
1067909764671|1|871|471|160|30|010200!type=a:code=ATS_.4.9!39.685!0.00!출력전력!0!KW$null$1.0|sansserif!0!11|0!0!0|224@224@224!255@0@0!255@128@192!0@64@128!0@0@0!128@64@64!0@128@64


var
i : Integer ;
MyFile : TextFile;

begin

         //화일을 열어야 한다.
        AssignFile(MyFile, 'c:\map\012300.txt');
       ReWrite(MyFile); //쓰는 작업
  try

    while not Eof(MyFile) do
    begin
          //여기서 어떻게 replac를 해야할지...막막하네요
          //화일을 열어  "100200"->"300000"으로 replace 하는 건데
         //한수 지도편달 바랍니다.
        

      CloseFile(MyFile);
    end;
  finally

  end;



end;


<!--CodeE-->
4  COMMENTS
  • Profile
    최용일 2005.05.24 21:34
    안녕하세요. 최용일입니다.

    파일이 그리 크지 않고 텍스트 파일이라면... StringReplace함수를 써보세요...

    <!--CodeS-->
    uses
        ...SysUtils;
    var
        StringList: TStringList;
    begin
        StringList := TStringList.Create;
        try
            StringList.LoadFromFile( 'c:\map\012300.txt' );
            StringReplace( StringList.Text, '100200', '300000', [rfReplaceAll]);
            StringList.SaveToFile( 'c:\map\012300.txt' );
        finally
            StringList.Free;
        end;
    end;
    <!--CodeE-->

    ^^ 항상 즐코하세요...

  • Profile
    세균맨 2005.05.24 23:08
    스티링리스를 하나 선언하고 로드시키 다음 replace하는 데
    문제가 치환이 안되는군요?
    왜 그렇지 이유를 모르겠네요?


  • Profile
    최용일 2005.05.25 01:46
    헛.. 죄송합니다.. ㅠㅠ

    아래와 같이 고치세요...

    StringList.Text := StringReplace( StringList.Text, '100200', '300000', [rfReplaceAll]);

    ^^

  • Profile
    세균맨 2005.05.25 04:29
    ㅌㅌㅌ
    • 허성수
    • 2005.05.26 18:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.05.26 20:42
      상위클래스에서 구현되어 있다면 에러가 나지 않습니다. 다만 상위 클래스에서 Abstract로 선언만 되어 ...
    • nilriri™
      2005.05.28 21:36
      function TfrmMain.DownloadURL(const aUrl: string): Boolean; var   hSession: HINTERNET;...
    • 정경철
    • 2005.05.26 01:17
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 권태훈
      2005.05.26 19:30
      이게 같은건지 다른건지는 모르겠으나 제가 사용하는것이 녹음/변환/저장등에서 제일 편한것 같습니다.-- ...
    • 정경철
      2005.05.26 20:52
      package (. dpk) 파일로 설치를 하는데 오류가 나옵니다. ASC 의 아래 부분에서 requires  &n...
    • 권태훈
      2005.05.27 03:45
      rtl.dcp $delphi/lib에 있네요 자동추가되면서 컴파일되고 잘 되는데... rtl이 왜 없다고 나오는지 ...
    • 정경철
      2005.05.28 01:54
      델파이 7 버젼에는 그 파일이 있는데 델파이 5 번젼에는 없는거 같은데... 혹시 버젼에 따라 다르지 않습...
    • 권태훈
      2005.05.28 22:21
      델파이 5에서 쓰던걸 7에서 쓰고 있습니다. 될것이라고 생각되구요... 시간나면 전화주시요.. 육칠구공영...
    • 박면
    • 2005.05.25 23:46
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 천마산
    • 2005.05.25 19:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.05.25 22:14
      안녕하세요. 최용일입니다. 님 프로그램에서 사용하는 OLE 클래스가 윈도우에 등록되지 않아서 생기는 ...
    • nilriri™
      2005.05.26 10:07
      이미지로 저장하시는건 팁란에 검색해 보시면 제가 올려 놓은 방법이 있습니다. 참고 하세요.
    • 오창화
    • 2005.05.25 07:22
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 데빠이
      2005.05.27 01:08
      OS가 윈도우 XP이면서 DB화일 확장자가 GDB일 경우는 처음 연결시 상당히 느립니다... GDB 라는 확장자 자...
    • 반영재
      2005.05.25 18:55
      혹시 CPU가 스레드를 지원하는 CPU이면 스레드를 끄고 해보세요. firebird는 싱글CPU용 입니다.
    • nilriri™
      2005.05.25 05:13
         <!--CodeS--> // 변수선언....         ...
    • 신재민
      2006.11.10 19:26
      저는 아래와 같이 했어요.. 아주 잘열리고 컷팅도 잘되요.. AssignFile(F, g_port); Rewrite(F); Wri...
    • 신재민
      2006.11.10 19:22
    • 이규하
      2005.05.26 14:15
      안녕하세요. 우선, TM88 Driver 를 설치 하셔야 되구요. 그 다음에, 전 아래와 같이 했었어요. <!...
    • 이종택
    • 2005.05.25 01:24
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 피터팬
      2005.05.28 20:42
      제가 예전에 많이 했던 고민인듯하네요. 모든 컨트롤들을 폼사이즈에 따라 줄어들고 늘어나도록 만든 프로...
    • 이중철
      2005.05.27 02:35
      너무 오래된 질문이어서 볼지 안볼지 모르지만.. 일단 align, anchors 만 가지고는 아무래도 원하는 결과 ...
    • 정찬희
      2005.05.25 06:17
      컨트롤의 Align과 Anchors 프로퍼티를 잘 이용하세요...
    • 이종택
      2005.05.25 19:09
      또 질문.. 죄송하지만..어떻게 이용하라는건지..자세히좀.. 이것 저것 해봐도..잘 안되네요.. 컨트롤...
    • 하얀까마귀
      2005.05.25 21:21
      안녕하세요 하얀까마귀 입니다. anchors 는  akleft, aktop, akRight, akBottom 이 있습니다....
    • 천마산
    • 2005.05.25 00:24
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 민스맘
      2005.05.25 19:33
      허걱...그 에러 메세지 라두 올리주세요
    • 황성욱
      2005.05.25 01:09
      질문이 너무 광범위한거 같습니다.^^ 에러가 어떤 에러라든지 덤프를 뜨시던지, 현상을 자세히 설명하셔...
    • 허성수
    • 2005.05.24 23:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 황성욱
      2005.05.25 01:06
      초보답변입니다. DCU를 이용해서 pas를 생성하는건 안되는 걸로 알고 있고여, 컴파일시에 에러는 환경설...
    • 남기문
    • 2005.05.24 22:47
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 도끼로이마까
      2005.05.27 20:11
      차일드 폼의 Constraints 속성을 한번 살펴보세요. MaxWidth, MaxHeight가 설정되어 있다면 0으로 세팅...
    • 천희택
      2005.05.25 17:58
      흐음... 소스를 올려달라.. 고 하시면 아마 안되겠죠? ^^...... 차일드 창 FormCreate 쪽을 보셔야 할 ...
    • 세균맨
    • 2005.05.24 20:23
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.05.24 21:34
      안녕하세요. 최용일입니다. 파일이 그리 크지 않고 텍스트 파일이라면... StringReplace함수를 써보세요...
    • 세균맨
      2005.05.24 23:08
      스티링리스를 하나 선언하고 로드시키 다음 replace하는 데 문제가 치환이 안되는군요? 왜 그렇지 이유를...
    • 최용일
      2005.05.25 01:46
      헛.. 죄송합니다.. ㅠㅠ 아래와 같이 고치세요... StringList.Text := StringReplace( StringList.Te...
    • 세균맨
      2005.05.25 04:29
      ㅌㅌㅌ
    • 허성수
    • 2005.05.24 18:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.05.25 17:52
      ㅋ 답이 안달리네요...허접한 저라도 나름데로 답변을 드리면 먼저 Desiner 라는 객체(포인터죠)가 주소...