2009-11-30 2 views
4

델파이 2009 및 유니 코드는 유니 코드를 지원합니다. 필자는 Delphi 2009/2010과 Delphi 2007 이하에서 컴파일 할 수있는 기존 파스칼 소스 파일이 거의 없습니다.파스칼 소스 파일에서 "string"을 "AnsiString"으로 변환 할 수있는 도구/유틸리티가 있습니까?

빠르고 안전한 방법은 유틸리티를 사용할 수 있습니까

을는 AnsiChar하는

  • 숯불을 PAnsiChar가하는
  • 를 PChar를 AnsiString을 위해

    • 문자열을 대체하다를 .pas 파일을 구문 분석 할 수 그 그런 대체품을 만드나요?

  • +4

    빠를 수도 있지만 확실히 안전하지는 않습니다. – mghie

    +0

    Yikes! 그것은 /하지 않거나 당신이하고 싶은 무엇인가입니다. –

    답변

    1

    sed을 사용할 수 있습니다.

     
    sed -i bak -e "s/string/AnsiString/g" *.pas 
    

    매우 나쁜 생각입니다. 코드가 컴파일되지 않아야 할 이유가 없습니다 모두 Delphi 버전입니다. "문자열"의 의미가 변경되었지만 무엇을 의미합니까? 귀하의 델파이 2007 코드는 델파이 2009 코드를 함께 사용할 필요가 없습니다. DCU 파일 형식이 다르므로 변경하는 내용은 다시 컴파일해야합니다.

    모든 것을 AnsiString으로 변경하면 기본적으로 Delphi 2009에서 제공하는 모든 새로운 기능을 거부하게됩니다. 이것이 당신이 원하는 것이라면 델파이 2009로 업그레이드하지 않고 많은 비용을 절약 할 수 있습니다. 왜 제품을 구입하고 그 제품의 기능을 사용하지 않습니까? 제품의 다른 모든 부분은 유니 코드이므로 프로그램의 성능은 연속적으로 문자열 형식을 변환 할 때 튜브 아래로 내려갑니다. 또한 모든 변환에서 컴파일러 경고를받습니다.

    둥근 구멍에 정사각형 페그를 넣지 마십시오. 특히 옆에 앉아있는 둥근 나무못을 완벽하게 사용할 때 특히 그렇습니다.

    +0

    감사합니다. 필자는 레거시 코드를 Delphi 2009/2010으로 완전히 업그레이드하고 모든 버전의 Delphi로 컴파일 할 수 있도록 노력할 것입니다. –

    +1

    그러면 가장 먼저해야 할 일은 전혀 변경하지 않는 것입니다. 새 컴파일러로 프로그램을 테스트하십시오. 실제 문제가 무엇인지 알아보십시오. –

    2

    주의를해야 할 부분을 지적하기위한 도구가있다 : 그것은, GREP 그렇게 할 것입니다 자동으로 변환하지 않습니다

    http://cc.embarcadero.com/Item/27398

    하지만, mghie 말했듯이 그것은 그렇게 간단하지 않습니다.

    관련 문제