• Delphi第九天学习笔记


    Delphi中PChar转换到string是自动进行的,没必要用StrPas
    '#0'终结符:读到#0后就不会往后查看了
    PChar类型可以看成一个字符数组指针,类似于C语音中的数组指针
    StrPCopy(P, str):将str的内容复制给P(PChar)
    StrCopy(P1, P2):把P2指向的内容复制给P1
    P1 := P2;将P2的指向的地址赋值给P1
    Inc(P)等于P + 1;
    PChar写操作有三种方式:1,GetMem申请内存;2,指向一个用SetLength预设长度的string;3,指向一个数组


    有序类型的序号:
    Pred:前一个序号
    Ord:自己的序号
    Succ:后一个的序号


    日期类型实际上是一个Double类型,意义是从1989年12月30日开始的天数。
    整数部分表示天数,小数部分表示时间占一天的比值

    日期类型:TDate,’2021-09-11’
    时间类型:TTime, ‘23:59:59 999’
    日期时间类型:TDateTime ‘2021-09-11 23:59:59 999’

    获取当前时间:
    Date:获取当前的日期部分。'YYYY-MM-dd'
    Time:获取当前的时间部分。'hh-mm-ss zzz'
    Now:获取当前的日期和时间

    解码日期(Now是日期类型,其它参数为Word类型):
    DecodeDate(Now, Year, Month, day)
    DecodeTime(Now, Hour, Minute,second. MillionSecond)
    编码日期(都是Integer类型):
    EncodeDate(year, month, day);
    EncodeTime(....)

    IncMonth:返回日期增加一个月的日期
    其它类似的Inc需要引用System.DateUtils单元

    StartofYear/Month/Day..开始时间.
    EndOfYear/Month/Day...结束时间(毫秒部分精确到999,但SQL中毫秒部分为997)

    DateUtils中的日期函数 :
    YearOf
    MonthOf
    DayOf

    获取时间间隔:Years/Months/Days/Hours/Minutes/Seconds/MilliSecondsBetween
    获取毫秒间隔是准确的。
    其它的都用到了Div来计算
    Trunc(Now) = DaysBetween(Now, 0)


    StrToIntDef等有默认值的转换可以用try strToInt.. Except ... end;替换

    Str(Num[, Width[, Decimal]]; var Str);将数值类型Num转换为String并保存到Str中。其中Width长度、Decimal精度是可选的。
    Val(Str, var Num, Index;):将Str中前面的合法数值字符串转化为数值保存在Num中,如果有不合法的字符,则用Index保存第一个不合法字符的位置(第Index个)。


    文件函数:
    FileExists(FilePath):判断文件是否存在
    DeleteFile(FilePath): 删除文件,成功则返回True
    Extract函数:解析文件全路径,返回某部分(例C:Path/Hello/a.txt)
    ExtractFileName(FilePath):返回文件名(含扩展名),如a.txt
    ExtractExt(FilePath):返回文件扩展名(包含.),如.txt
    ExtractFilePath(FilePath):返回该文件所在文件夹路径(含/),如C:Path/Hello/
    ExtractFileDir(FilePath):返回该文件所在文件夹路径(不含/),如C:Path/Hello
    ExtractFileDrive(FilePath):返回该文件所在的驱动器盘符,如C
    ChangeFileExt(FilePath):返回修改扩展名后的文件名(没有修改文件实体)
    ReNameFile(FilePath):修改文件的扩展名
    例: ReNameFile(FilePath, ChangeFileExt(FilePath, ‘.Doc’));


    设有一个指针P指向一个对象O,P.Free只是将O释放了,但P依旧指向O原本所在的空间,此时P成为非法指针,很容易报错。FreeAndNil(P)则是将O释放并将P重置为Nil,是安全的。

    Assigned()判断变量是否为空

  • 相关阅读:
    App开发Native.js入门指南
    C# Dapper 基本使用 增删改查事务等
    特殊字符码
    assert
    俩个高斯分布之间的KL散度
    np.random.normal(loc=0,scale=1e-2,size=shape)
    解决Github加载ipynb文件缓慢/失败
    画出8个高斯分布散点图
    解决tensorflow报错ValueError: Variable conv1/weights already exists, disallowed.原因:第二次使用的是第一次的就的变量
    互信息
  • 原文地址:https://www.cnblogs.com/wuchangxing/p/15262101.html
Copyright © 2020-2023  润新知