CsvToListConversionOptions

<< Fare clic per visualizzazione il sommario >>

Percorso:  Gli oggetti del mondo Jamio > I tipi strutturati >

CsvToListConversionOptions

Definisce le opzioni di conversione di una stringa contenente i dati in formato CSV in una lista.

 

Il tipo è una struttura composta dalle seguenti proprietà:

 

Nome

Descrizione

Tipo

Delimiter

Carattere per la separazione dei campi. Di default la proprietà assume il valore '',''

String

QuotedFields

Indica se i campi del CSV sono racchiusi tra virgolette, ad esempio "1981","Fiat","E350". Il valore true specifica che i campi del CSV sono racchiusi tra virgolette, altrimenti utilizzare il valore false. Di default la proprietà è false.

Boolean

ListOfDataset

Specifica se la lista, ottenuta dalla conversione, è costituita da dati strutturati, liste o singoli campi. E' uguale a true se ogni elemento della lista restituita è un dato strutturato contenente una riga di campi, false se ogni elemento della lista restituita è un campo o una lista di campi. Di default la proprietà è false.

Boolean

IgnoreLineBreaks

Specifica se nella lista, ottenuta dalla conversione, deve essere ignorato il separatore di riga. E' uguale a true se ogni elemento della lista restituita è una riga del CSV (una lista contenente i campi della riga), false se ogni elemento della lista restituita è un campo del CSV, indipendentemente dai separatori di riga. Di default la proprietà è false. L'impostazione IgnoreLineBreaks viene ignorata se la proprietà ListOfDataset è uguale a true.

Boolean

HeaderRow

Indica il numero della riga del CSV contenente i nomi dei campi. Se la proprietà è impostata a 0 implica che non vi è una riga di intestazione. Le righe prima della riga di intestazione non verranno considerate nella conversione. Di default la proprietà è uguale a 0.

Integer

ColumnHeaders

Lista utile a specificare i nomi dei campi del CSV; se null o vuoto, vengono utilizzati i nomi dei campi nella riga di intestazione; se non è presente alcuna riga di intestazione, vengono utilizzati i nomi di campo predefiniti secondo il template Col_{Prog}, dove {Prog} è un numero progressivo (Col_1, Col_2, etc.). L'impostazione ColumnHeaders viene ignorata se la proprietà ListOfDataset è uguale a false.

La sostituzione delle intestazioni viene eseguita seguendo l'ordine posizionale, per cui, se il loro numero è minore di quello delle intestazioni originarie, vengono sostituite le prime, mentre le restanti rimangono invariate.

ArrayValue

ColumnTypes

Dato strutturato composto da:

la chiave, che rappresenta il nome della colonna, così come risultante dal calcolo sulle proprietà HeaderRow e ColumnHeaders;

il valore, che rappresenta il tipo di dato contenuto nella colonna. Sono ammessi solo i seguenti tipi:

oTypes.String (testo breve)

oTypes.Memo (testo lungo)

oTypes.Integer (numerico intero)

oTypes.Float (numerico a virgola mobile)

oTypes.Decimal (numerico decimale)

oTypes.Datetime (data e data/ora)

oTypes.Boolean (booleano)

DataSetValue

ColumnFormats

Dato strutturato che specifica il formato con cui interpretare i valori di tipo Datetime presenti nel CSV che si sta leggendo. Il parametro si applica solo ai campi di tipo Datetime ed è composto da:

la chiave, che rappresenta il nome della colonna, così come risultante dal calcolo sulle proprietà HeaderRow e ColumnHeaders;

il valore, una stringa che rappresenta il formato con cui la data è rappresentata nel CSV (per il formalismo da utilizzare nella definizione del formato vedi Formato data e ora personalizzato e Formato data e ora standard).

DataSetValue

DefaultValues

Dato strutturato composto da:

la chiave, che rappresenta il nome della colonna, così come risultante dal calcolo sulle proprietà HeaderRow e ColumnHeaders;

il valore, rappresenta il valore che deve essere assegnato quando esso non è presente nel CSV. I DefaultValues possono essere forniti come testo breve o già nel tipo di output, se diverso da String.

La proprietà è applicabile a tutti i campi di tipo:

Testo breve

Testo lungo

Numerico Intero

Numerico a virgola mobile

Numerico decimale

Date e ora

Booleano

DataSetValue

CultureInfo

Stringa che rappresenta le informazioni culturali con cui trattare il file CSV in presenza di colonne formattate come data o numero (per il formalismo da utilizzare vedi CultureInfo code).

String

 

Commenti

A seconda delle funzioni utilizzate, alcune delle proprietà elencate non vengono richiamate, ad esempio se si usa la funzione CreateFromCsv del Plug Elastic Storage, IgnoreLineBreaks e ListOfDataset (se valorizzato come False) vengono ignorati.

Alcune combinazioni di ColumnTypes, CultureInfo e valori dei campi non rilevano certi errori, ma generano risultati errati, per esempio, se CultureInfo è “it-IT”:

oun campo (Types.Float) con valore “123,4” verrà interpretato correttamente, ma un valore di “123.4” verrà interpretato come 1234;

oun campo (Types.Datetime) con un valore di “abc” genererà errore, mentre un valore numerico, come ad esempio “123.4” verrà interpretato come data.

I campi presenti nel CSV di tipo Datetime con valore 01/01/0001, importati in un indice del Plug Elastic Storage, sono riportati come valore null.

La sostituzione delle stringhe passate al parametro ColumnHeaders nelle intestazioni del CSV viene eseguita seguendo l'ordine posizionale, per cui, se il loro numero è minore di quello delle intestazioni originarie, vengono sostituite le prime, mentre le restanti rimangono invariate. Questo comportamento può portare a commettere un errore di duplicazione del valore di una o più intestazioni e, quindi, a ricevere il messaggio  "E' stato già aggiunto un elemento con la stessa chiave". Ad esempio:

dato un file CSV contiene le intestazioni A, B, C, D, E, al parametro ColumnHeaders vengono passate le stringhe P, D, le nuove intestazioni saranno P, D, C, D, E, con duplicazione dell'intestazione D.