2011-10-19 3 views
0

CSV 파일의 각 행에 대해 내 응용 프로그램은 각 변수를 읽고 GetDataItem 메서드를 사용하여 테이블에 일부를 쓰는 메서드를 호출해야합니다. 예 :Delphi FormatDateTime 예외

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 형식의 DateTime 스탬프에서 ReverseDate를 생성해야하는 경우를 제외하고는 정상적으로 작동합니다. 그러나 timestamp 변수를 다시 사용하려고 시도하면 예외가 발생합니다.

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

또는 나는 날짜 시간 변수 복제 대신 그 작업 또는 날짜 시간 문자열을 분할 시도했습니다

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

만의 더 이상 조작 할 때 예외 실행을 던져 것처럼입니다.

편집 : 때까지 문자를 읽어,

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

감사

+3

예외는 무엇입니까? – ain

+0

예외 유형 및 오류 메시지없이 "실행될 때 예외를 throw합니다"는 절대 의미가 없습니다. "내 컴퓨터가 작동하지 않습니다. 어떻게 해결할 수 있습니까?" - 예, USB 케이블이라면 문제가 HDD 또는 고장난 축전지보다 훨씬 쉽습니다. 오류나 예외가 발생하면 * 정확한 * 오류 코드와 메모리 주소를 포함한 오류 메시지를 제공하십시오. 도움이 필요하면 문제를 해결하는 데 도움이되는 정보를 더 빨리 제공 할 수 있습니다. –

+0

죄송합니다. Delphi을 처음 사용하고 있으며이 경우 예외를 인쇄하는 방법을 알지 못했습니다. 이제는 다른 CSP 및 데이터베이스 파일과 함께 컴파일 된 Win2000 PC에서 정상적으로 작동합니다. 편집으로 최신 예외가 포함되었지만 여기에 있습니다 : 001097DA의 'ImpWintacs.exe'모듈에서 EAccessViolation. 모듈 'ImpWintacs.exe'에서 주소 "000749DA"의 액세스 위반. 주소 00C1FDF8 읽기. – notidaho

답변

0

나는 CSV에서 다음 변수를 읽기 위해 사용 된 방법 : 죄송합니다, 내 XP 머신에 나는 이제 예외가 다음 쉼표. CSV의 마지막 변수 뒤에는 쉼표가 없습니다. 어쨌든 마지막 변수가 필요 없기 때문에 나는 그것을 읽지 않기로했습니다.