Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    188

    [VB6 sp6] Creazione file csv

    Buongiorno a tutti.

    premetto che mi rendo conto che non sto chiedendo una cosa esplicita riferita a Vb, ma io la applico ad un programa VB, per cui, spero di non essere nel posto sbagliato (altrimenti me ne scuso immediatamente)

    Mi � stato richiesto di creare un file csv relativo alle fatture. Non capisco perch� mi � stato anche 'comunicato' la lunghezza dei vari campi(!), i campi non sono identificati esclusivamente dal ";" nel caso del CSV. Forse la dimensione riguarda la struttura dell'archivio nel quale verr� poi importato il CSV.
    Questo perch�, trattandosi di crca 200 campi, con un recordset, opero meglio, specie quando devo andare a piazzare il carattere ";". Atrimenti con il type, come posso fare?
    dovrei iventarmi n campi fillern di un carattere da valorizzare con il ";
    oppure
    creare i campi della dimensione +1 carattere e quando vado a popolarli, aggiungo il ";" gi� sulla stringa.
    Il fatto � che molti di questi campi non li devo neanche popolare, per cui con il recordset, ho fatto una semplice routine che mi legge tutti i campi (da 0 al .fields.count) e a mano a mano, li memorizzo in una stringa aggiungendo il fatidico ";"

    o potete darmi qualche dritta?

    Anche perch�, in rete, non sono riuscito a trovare un esempio di file (gi� riempito da confrontare. Trattasi di un file per commercialisti che hanno Teamsystem)

    grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Purtroppo la spiegazione non è molto chiara, almeno io non ci ho capito quasi nulla.

    Ci puoi dire come dovrebbe essere un esempio di riga di output del file csv (con dati inventati) ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    188
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Purtroppo la spiegazione non è molto chiara, almeno io non ci ho capito quasi nulla.

    Ci puoi dire come dovrebbe essere un esempio di riga di output del file csv (con dati inventati) ?
    Chiedo scusa per il non essere stato chiaro.

    Allora, mi hanno richiesto un file csv, con, esempio, 10 campi
    nome 30 caratteri
    codiceditta 5 caratteri
    indirizzo 40 caratteri
    partitaiva 11 caratteri
    telefono 10 caratteri
    fax 10 caratteri
    email 30 caratteri
    datadocumento 8 caratteri
    numerodocumento 5 caratteri
    importo 12 caratteri
    iva 11 caratteri
    totale 12 caratteri
    etc.

    La prima domanda che mi sono fatto e per cui ho chiesto supporto è:
    Ma se la prerogativa del csv è che i campi sono divisi da ";" (o "," a seconda della 'lingua'(?)), perchè mi danno una lunghezza del campo? Forse per il fatto che è la lunghezza del campo in teamsystem e quindi se il nome fosse 35 caratteri mi viene troncato?
    Se fosse così, posso non preoccuparmi.

    Altrimenti, se in fase di creazione del csv, devo anche stare attendo a passare i campi con i caratteri giusti mi si complica un pò la vita, visto che, in questo secondo caso, devo per forza prevedere 10 spazi bianchi tra il campo telefono ed email se non ho il fax e così via per altri 100-150 campi che mi compongono il record che è di 200, circa. Sì perchè nel record di 200 campi, al centro ci sono campi per uso contabilità (ratei, percentuali iva agricola, etc. etc.) che nel mio caso non hanno valore, ma gli ultimi campi sono i totali di fattura, che invece popolo.

  4. #4
    sicuro che non vogliano un file con record a lunghezza fissa? e se anche così fosse, fare una funzione per PADdare i campi è abbastanza banale...

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    188
    Quote Originariamente inviata da optime Visualizza il messaggio
    sicuro che non vogliano un file con record a lunghezza fissa? e se anche così fosse, fare una funzione per PADdare i campi è abbastanza banale...
    Purtroppo Teamsystem pubblicizza la funzione, ma poi nessuno sa dare ulteriori spiegazioni. la pagina che sono riuscito ad avere con il tracciato record parla di file .csv (common separated value).

    Per quanto riguara la funzione per PAD..., scusa la mia ignoranza 'teorica', ma cosa intendi?

    E' un qualcosa che già nell'ambito della type mi permette di valorizzare dei campi in maniera che non sono costretto a leggermi campo per campo e aggiungere il ";" quando sono in creazione del file finale?

  6. #6
    1. per il tipo di file: puoi solo sentire TeamSystem o uno dei loro rivenditori
    2. PAD: riempire con spazi (a destra o a sinistra) fino al max della lunghezza -- es., per fare il padding a destra di un campo da 20 caratteri fai cosi: PaddedField = Left(Field & Space(20), 20)
    3. non ho capito la domanda sulla type...

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    188
    2. PAD: riempire con spazi (a destra o a sinistra) fino al max della lunghezza -- es., per fare il padding a destra di un campo da 20 caratteri fai cosi: PaddedField = Left(Field & Space(20), 20)
    Come immaginavo, mia ignoranza 'teorica', visto che lo faccio

    non ho capito la domanda sulla type...
    Provo a spiegarmi:
    nel modulo definisco il file con la type
    codice:
    Type team_syst
        
        ditn             As String * 5
        versn            As String * 1 
        tarcn            As String * 1 
        cd_clfor         As String * 5 
        ragsoc           As String * 32
        ind              As String * 30
    end type
    Esiste un metodo che permetta di inserire un campo attribuendogli già un valore?
    invento
    codice:
    Type team_syst
        
        ditn             As String * 5
        versn            As String * 1 
        tarcn            As String * 1 
        cd_clfor         As String * 5 
        campofisso    as string *1  che deve contenere ";"
        ragsoc           As String * 32
        ind              As String * 30
    end type
    comunque, mi confermi che se .csv, la lunghezza campi non 'interessa', giusto? se non magari al momento della reimportazione per evitare troncature, forse?!

    Saluti

  8. #8
    1. per la type: no, non puoi attribuire un valore di default
    2. csv: no, non ci sono limiti; per tranquillità, racchiudi le stringhe tra doppi apici (es.: "Mario Rossi"; 42312,67; "Materiale vario"; .....)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.