当前位置: 首页 > article >正文

一些小笔记(Delphi)

工具:Delphi10.4

用Delphi写了一个解析json文件的小程序,

需求是能解析整个文件夹中的所有文件,也能只解析某一个文件,文件或者文件夹的路径能够直接填写,也能够通过选择的方式去填充。

我的解决办法如下:

1.先用下面的代码进行目录的选择或输入,可以自己定义默认选择的目录,我写的默认是空

var
  vPath: string;
begin
  //默认选择的目录
  vPath := '';
  //显示列表的根目录,空时显示全部
  //sdNewUI  可调整大小,显示右键菜单
  //sdNewFolder 显示“新建文件夹”按钮
  //sdShowEdit 显示“文件夹”输入框
  //sdValidateDir  验证插入编辑框中的文件夹/文件的名称
  SelectDirectory('弹出的标题', '', vPath, [sdNewUI, sdNewFolder, sdShowEdit, sdValidateDir], Self);
  EditFilePath.Text:=vPath;
end;

2.遍历文件夹获取文件名并用列表返回

var
  SearchRec: TSearchRec;
begin
  Result := TStringList.Create;
  //FindFirst函数寻找目标目录下的第一个文件,成功返回0; faAnyFile参数表示任意文件(所有文件)
  if FindFirst(FolderPath + '\*', faAnyFile, SearchRec) = 0 then
  begin
    repeat
      //SearchRec.Name取文件名
      if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
        Result.Add(FolderPath + '\' + SearchRec.Name);
    until FindNext(SearchRec) <> 0;
    FindClose(SearchRec);
  end;
end;

3.用if...else if...else,

  • 先用DirectoryExists(Path)判断目录路径是否存在,其中Path是自己输入的路径,如果存在那么遍历之前返回的文件列表获取文件名,一个文件一个文件地去解析文件夹下对应的文件;
  • 如果不是那么用FileExists(Path);判断文件路径是否存在,如果存在那么解析对应文件,
  • 如果不存在那么给出提示信息'文件路径不存在'

另一个问题

就是我解析到的数据是需要插入到数据库表中的,但是有一个要求是:当解析的是文件夹且文件夹中包含有多个文件的时候,数据要么全部插入成功,要么全部插入失败,不能有的文件中的数据插入成功,而有的文件中的数据插入失败。那么在遍历的时候写的sql语句是需要全部一起执行的,可以用Tstringlist来存储sql语句,并且将其作为参数,以传址的方式传入解析json文件的过程中。那么它就可以保存之前的历史值,并将值带入下一次循环。


http://www.kler.cn/a/152343.html

相关文章:

  • cephadm部署ceph quincy版本,使用ceph-csi连接
  • [读论文][跑代码]BK-SDM: A Lightweight, Fast, and Cheap Version of Stable Diffusion
  • 设计模式总目录
  • 17.PIL报错`AttributeError: module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘`
  • NX二次开发UF_MTX2_copy 函数介绍
  • 数学建模-基于脑出血患者院前指标的多种机器学习预测模型构建及比较研究
  • 双向ESD保护 汽车级TVS二极管 ESD9B3.3ST5G工作原理、特性参数、封装形式
  • 数据结构-04-队列
  • 单片机AVR单片机病房控制系统设计+源程序
  • 阶段三:Web开发(学习如何使用Cookie和Session进行用户认证)
  • POJ P1088动规的三种解法
  • Android系统源码中添加可编译运行执行程序,java
  • 使用 TypeScript 改进异步操作和错误处理的策略
  • 【上海大学数字逻辑实验报告】一、基本门电路
  • 【虚拟机】Docker基础 【二】
  • EI级 | Matlab实现TCN-LSTM-Multihead-Attention多头注意力机制多变量时间序列预测
  • WP采集插件的进阶功能:输入关键词采集及定向采集实现精准筛选
  • 无mac电脑生成uniapp云打包私钥证书的攻略
  • webpack优化打包速度
  • 基于AT89C51单片机的节日彩灯门设计