Delphi FormatDateTime исключение - PullRequest
       20

Delphi FormatDateTime исключение

0 голосов
/ 19 октября 2011

Для каждой строки 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;

Это прекрасно работает, за исключением того, что мне также нужно сгенерировать ReverseDate из штампа DateTime в формате ггггммдд. Однако любая попытка использовать переменную timestamp снова приводит к исключению, например

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.

Спасибо

1 Ответ

0 голосов
/ 20 октября 2011

Метод, который я использовал, чтобы прочитать следующую переменную из CSV, прочитать символы до следующей запятой. Последняя переменная в CSV не сопровождалась запятой. Так как последняя переменная в любом случае мне не нужна, я просто решил не читать ее.

...