Delphi在向文件写入内容时,经常需要判断文件是否存在,如果存在,用TStringList读取内容,并将新加入的内容加入容器中。如果文件不存在,就创建文件,而后写入,可是经常会碰到文件正在使用的错误报警,因为调用的是一个方法,为了减少代码,在文件创建后,选择关闭名柄。

下面所有方法实现的前提都是当前主程序工作的文件夹下,如果实现其他路径的方法,应该需要进一步修改,尤其多层路径的文件夹判断,需要好好设计。

下面是判断文件是否存在过程:

procedure TFrmMain.Button1Click(Sender: TObject);
varfh1:THandle;
beginif fileexists('Data\my.txt') thenbeginWriteFile(Sender);                  //调用向文件写入内容的过程endelsebeginfh1 := FileCreate('Data\my.txt');FileClose(fh1);                     //释放名柄,WriteFile(Sender);end;
end;

向文件写入的过程,当然,这里加入了内容是否重复的检查。

procedure TFrmMain.WriteFile(Sender: TObject);
varsList:TStringList;s:string;i:integer;judge:Boolean;
beginjudge:=True;sList:=TStringList.Create;sList.LoadFromFile('Data\my.txt');s:=Edit1.Text;for i:=0 to sList.Count-1 dobeginif s= sList[i] thenbeginjudge := False;end;end;if judge = True thenbeginsList.Add(s);sList.SaveToFile('Data\my.txt');end;FreeAndNil(sList);
end;

当然还可以加入判断文件夹是否存在,加在判断文件之前。

if not FileExists('Data') thentrybeginCreateDir('Data');end;exceptraise Exception.Create('不能创建Data文件夹');end;

转载于:https://my.oschina.net/zyyhhh/blog/1579678

Delphi 创建文件并写入内容,以及FileCreate释放的方法相关推荐

  1. Linux 快速创建文件并写入内容

    Linux 创建文件并写入内容 1.自动创建 test.txt 文件 2.自动写入 "Raspberry" > 创建并写入 >> 追加写入 其他方法: vi vi ...

  2. ASP.NET创建文件并写入内容

    本文从最基本的操作开始,解释在ASP.NET中文件处理的概念,包括如从一个文件中读取内容.如何向一个文件中写入内容和如何删除一个文件. 前面已经提到,要想在ASP.NET 页面中进行文件处理,必须要有 ...

  3. 文件——创建文件并写入内容

    package main import ( "os" "fmt" "bufio" ) /* 基本介绍 func OpenFile(name ...

  4. Java创建文件并写入内容

    以下代码可以创建一个文件,并使用FileWriter向文件中写入内容,若路径不存在则自动创建路径,若文件已经存在,则不再创建 public void createFile() throws IOExc ...

  5. 【PHP】创建文件并写入内容

    /*** 1.文件不存在,创建并写入内容* 2.文件存在,比较新内容与文件已有内容,* 不同->覆盖文件内容;* 相同->不操作文件;*/function createAndWrite($ ...

  6. 用C语言创建文件并写入内容

    目录 一.概念须知 1.1.相关库函数 1.1.1.打开指定文件的模式选择 详见: 二.创建一个.c文件,并写入Hello ​ 三.加入一些流程 一.概念须知 1.1.相关库函数 FILE *fope ...

  7. linux用vi写文件内容,Linux下利用vi编辑器创建文件并写入内容 专家详解

    Linux系统作为一款以命令行操作为主的系统,vi编辑器无疑大大扩展了命令行的功能,使用户在命令行下可以进行文件的各种操作,学会vi编辑器的使用无疑是非常必要的.而且vi的使用和vim的使用非常相似, ...

  8. Android手机SD卡创建文件并写入内容

    在Android开发过程中,经常需要在手机中写入并存储一些文件,下面是写入文件代码部分,带注释可直接使用. /*** 写入文件方法* @param content*/public static voi ...

  9. windows批处理命令:创建文件并写入内容的bat脚本

    @echo off title 创建日志文件 cls echo. echo ********************************************** echo. echo 正在创建 ...

最新文章

  1. matlab编写识别手写数字_用于图像识别的五大最佳编程语言!
  2. 中医药可投期刊推荐-24本-2021版
  3. php mysql生成excel文件,PHP导出MySQL数据到Excel文件简单示例
  4. 【Java】 获取当前项目所有的线程
  5. 概率与统计在计算机应用,计算机技术在概率论和数理统计中的应用
  6. 程序员面试金典 - 面试题 08.05. 递归乘法(位运算)
  7. Java中Error和Exception的异同
  8. 面试官问我如何做产品分析
  9. mysql命令详细解_mysql命令详解
  10. 人际沟通最忌讳一脸死相【转】
  11. Windows平台下的session0创建进程的问题与解决办法
  12. 电脑不识别移动硬盘怎么办_U盘插入电脑后不识别无法读取的解决方法
  13. 清华大学开源用于网络嵌入的工具包 OpenNE
  14. java应用程序必须有主类_2020最新版Java基础知识面试题
  15. mac idea svn配置
  16. pcb地线应该不应该做成环路_电源PCB设计流程及要点全解析
  17. 常见泰勒展开公式及复杂泰勒展开求法
  18. 2018年1月西邻雪山自驾游攻略
  19. java计算机毕业设计酒店管理系统设计与实现源码+mysql数据库+系统+lw文档+部署
  20. 原料奶巨头在下一盘中国乳业资本大棋

热门文章

  1. 关于 Chrome 谷歌浏览器 安装未封装插件的问题
  2. CentOS——更换系统主界面壁纸
  3. 安装 vue-konva 后提示组件未安装
  4. 程序员带娃福利:金宝贝全套资料(音乐、教材、视频)
  5. php一个中文占几个字节,php中一个字符占用几个字节?
  6. 哈尔滨理工大学21级新生程序设计竞赛(同步赛)错题笔记
  7. 事务的隔离级别(未提交读、提交读、可重复读、可串行化)
  8. gluLookAt、glViewport()、glOrtho和gluPerspective参数分析
  9. 探索Apache Camel Core – Seda组件
  10. MySQL登录验证码原理_三:验证码的原理、作用及实现