PRG缩排程序INDENT.PRG

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

  *********************************
  * INDENT.PRG - 格式化 .PRG 文件为缩进格式 Ver 1.0
  * (C) M.L.Y 2003.2.3
  *
  * 在 WIN98 + VFP 6.0 环境测试通过
  *********************************
  SET TALK OFF
  SET SAFETY ON
  LOCAL lcInFile, lcOutFile
  LOCAL lcCRLF, lcOutStr, lnLevel1, lnLevel2, lnFileHandle, lcLine
  IF MESSAGEBOX([INDENT.PRG - 格式化 .PRG 文件为缩进格式 Ver 1.0] + CHR(13) + ;
  CHR(13) + ;
  [是否继续?], 4 + 32 + 256, [.PRG Indent]) <> 6
  RETURN
  ENDIF
  lcInFile = GETFILE([PRG], [PRG file:], [Open])
  IF EMPTY(lcInFile)
  RETURN
  ENDIF
  IF RAT("/", lcInFile) > 0
  lcOutFile = SUBSTR(lcInFile, RAT("/", lcInFile ) + 1)
  ENDIF
  lcOutFile = SUBSTR(lcOutFile, 1, RAT(".", lcOutFile)) + "PR3"
  lcOutFile = PUTFILE("Output:", lcOutFile, "PR3")
  IF EMPTY(lcOutFile)
  RETURN
  ENDIF
  lcCRLF = CHR(13) + CHR(10)
  * 输出字符串:
  lcOutStr = []
  * 当前缩进级数:
  lnLevel1 = 0
  * 下一行缩进级数:
  lnLevel2 = 0
  lnFileHandle = FOPEN(lcInFile)
  IF lnFileHandle <= 0
  = MESSAGEBOX([打开文件出错!])
  RETURN 0
  ENDIF
  DO WHILE .T.
  IF FEOF(lnFileHandle)
  EXIT
  ENDIF
  * 读1行
  lcLine = FGETS(lnFileHandle, 10000)
  * TAB 统一换为 4 个空格
  lcLine = ALLTRIM(STRTRAN(lcLine, CHR(9), SPACE(4)))
  * 判断缩进级数
  lnLevel1 = IndentLevel(lcLine, lnLevel1, @lnLevel2)
  * 每级为 4 个空格:
  IF !EMPTY(lcLine)
  lcOutStr = lcOutStr + SPACE(4*lnLevel1) + lcLine + lcCRLF
  ELSE
  lcOutStr = lcOutStr + lcCRLF
  ENDIF
  * 下一行缩进级数:
  lnLevel1 = lnLevel2
  ENDDO
  = FCLOSE(lnFileHandle)
  * 输出字符串写到输出文件:
  = StrToFile(lcOutStr, lcOutFile)
  RETURN
  *********************************
  * FUNCTION IndentLevel(tcLine, tnLevel1, @tnLevel2)
  * 计算缩进级数
  *
  * tcLine - .PRG 当前行
  * tnLevel1 - 本行缩进级数
  * tnLevel2 - 下一行缩进级数
  * 函数返回tnLevel1, tnLevel2 通过引用返回
  *********************************

上一页123下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答