【问题标题】:Delphi FormatDateTime exceptionDelphi FormatDateTime 异常
【发布时间】:2011-10-19 09:13:08
【问题描述】:

对于 CSV 文件的每一行,我的应用程序需要调用一个方法,该方法读取每个变量并使用 GetDataItem 方法将其中一些变量写入表中。例如

Var
Item: String;
Tmp: String;
Rdate: String;
TmpDateTime: TDateTime;

begin
Table1.Append'
Tmp := GetDataItem(Data, Item); {Ignore}
Tmp := GetDataItem(Data, Item); {Ignore}
Tmp := GetDataItem(Data, Item); {Members ID}
Table1.FieldByName('Member ID').AsString := UpperCase(Tmp);
TmpDateTime := StrToDateTime(etDataItem(Data, Item));
Table1.FieldByName('Arrival Date').AsString := FormatDateTime('dd/mm/yyyy',TmpDateTime);
Table1.FieldByName('Arrival Time').AsString := FormatDateTime('hh:mm:ss',TmpDateTime);
...
Table1.Post;

这很好用,除了我还需要从日期时间戳中生成 yyyymmdd 格式的 ReverseDate。然而,任何再次使用时间戳变量的尝试似乎都会引发异常,例如

RDate := FormatDateTime('yyyy',TmpDateTime) + FormatDateTime('mm',TmpDateTime) + FormatDateTime('dd',TmpDateTime);

RDate := FormatDateTime('yyyymmdd',TmpDateTime);

我已经尝试复制 DateTime 变量并改为处理它,或者拆分 DateTime 字符串,但好像任何进一步的操作都会在运行时引发异常。

编辑:抱歉,在我的 XP 机器上,我现在得到了异常:

EAccessViolation in the module 'ImpWintacs.exe' at 000749DA. Access violation at address "000749DA" in module 'ImpWintacs.exe'. Read of address 00C1FDF8.

谢谢

【问题讨论】:

  • 抛出了什么异常?
  • “运行时抛出异常”没有异常类型和错误信息绝对没有意义。这就像说“我的电脑坏了。我该如何修理它?” - 哎呀,如果它是 USB 电缆,则修复比问题是硬盘故障或电容器烧毁要容易得多。当您遇到错误或异常时,请给出 Exact 错误代码和错误消息,包括任何内存地址。如果您需要帮助,您越容易提供帮助,就会越快帮助您解决问题。
  • 抱歉,我是 Delphi 的新手,在这种情况下不知道如何打印异常。现在,它在我编译的 Win2000 PC 上运行良好,但在我的另一台 XP PC 上运行良好,具有相同的 CSV 和数据库文件。我已将最新的异常作为编辑包含在内,但这里是:模块“ImpWintacs.exe”中的 EAccessViolation,位于 000749DA。模块“ImpWintacs.exe”中地址“000749DA”的访问冲突。读取地址 00C1FDF8。

标签: delphi datetime csv formatdatetime


【解决方案1】:

我用来从 CSV 读取下一个变量的方法,读取字符直到下一个逗号。 CSV 中的最后一个变量后面没有逗号。因为我不需要最后一个变量,所以我只是选择不阅读它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-17
    • 2017-09-18
    • 1970-01-01
    • 2013-09-13
    • 2011-01-06
    相关资源
    最近更新 更多