Domanda

Per ogni linea di un file CSV, la mia domanda ha bisogno di chiamare un metodo in cui si legge in ogni variabili e scrive alcuni di loro a un tavolo utilizzando un metodo GetDataItem. per es.

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;

Questo funziona bene, tranne Ho anche bisogno di generare un ReverseDate dal timbro DateTime nel formato aaaammgg. Tuttavia ogni tentativo di utilizzare la variabile timestamp sembra ancora una volta un'eccezione per es.

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

o

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

Ho provato duplicare la variabile DateTime e lavorando su questo, invece, o suddivisione di un testo DateTime, ma è come se ogni ulteriore manipolazione genera un'eccezione quando corsa.

EDIT: Scuse, Sulla mia macchina XP ho ora ottenere l'eccezione:

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

Grazie

È stato utile?

Soluzione

Il metodo che stavo usando per leggere la successiva variabile dal CSV, leggere i caratteri fino al successivo comma. L'ultima variabile nel CSV non è stata seguita da una virgola. Come non ho avuto bisogno l'ultima variabile in ogni caso ho solo scelto di non leggerlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top