Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Riscrittura file CSV

  1. #1
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848

    Riscrittura file CSV

    Ciao a tutti,
    ho un file CSV che è composto da un primo record di 2 campi (separati da ,
    seguito da una moltitudini di record composti da 5 campi (sempre separati da
    .

    Codice1;Codice2
    Valore1;Valore2;Valore3;Valore4;Valore5
    Valore1;Valore2;Valore3;Valore4;Valore5
    Valore1;Valore2;Valore3;Valore4;Valore5
    Valore1;Valore2;Valore3;Valore4;Valore5
    Valore1;Valore2;Valore3;Valore4;Valore5

    Il mio problema è che dovendo usare una bulk insert per popolare una
    tabella, questa struttura non va bene, e vorrei poter crearmi un secondo file
    txt contenente solo il primo record, in modo da darlo in pasto alla sua bulk
    insert in maniera corretta, e lasciare il file originale senza il primo
    record.
    Servirebbe quindi un taglia&incolla via codice.
    Oppure, altra soluzione, riscrivere questo file aggiungengo alla prima riga tutti i ; mancanti.
    Come è possibile fare?
    Grazie

  2. #2

  3. #3
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    C#

  4. #4
    Lo scrivo direttamente qui:
    codice:
    protected void Page_Load(object sender, EventArgs e)
    {
         StreamReader sr = new StreamReader("c:\\file.csv");
         string primaRiga = sr.ReadLine();
         string tuttoResto = sr.ReadToEnd();
         sr.Close();
         WriteToFile("c:\\solo-prima-riga.csv", primaRiga);
         WriteToFile("c:\\tutto-il-resto.csv", tuttoResto);
    }
    
    private void WriteToFile(string fileName, string text)
    {
         StreamWriter sw = new StreamWriter(fileName, false);
         sw.Write(text);
         sw.Close();
    }
    Una cosa del genere potrebbe funzionare?


  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    vabbè, sono arrivato tardi comunque, dato che ci ho lavorato:
    codice:
            'apro il file per lettura
            Dim sr1 As New StreamReader("c:\tmp\prova1.txt")
            
            'apro il file per scrittura
            Dim sr2 As New StreamWriter("c:\tmp\prova2.txt")
            Dim sr3 As New StreamWriter("c:\tmp\prova3.txt")
    
            'leggo l'intero file una riga per volta
            Dim riga$ = ""
            Dim n% = 0
            Do While Not sr1.Peek = -1
                riga = sr1.ReadLine
                n += 1
                If n = 1 Then
                    sr2.WriteLine(riga)
                Else
                    sr3.WriteLine(riga)
                End If
            Loop
    
            'chiudo il file
            sr1.Close()
            sr2.Close()
            sr3.Close()
            
        End Sub
    Pietro

  6. #6
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    Perfetto, mi riallaccio a quello di ZofM, dato che VB lo conosco poco.
    Ho dovuto solo agigungere il pezzetto:

    primaRiga = primaRiga + ";;";

    in modo da aggiungere ad un file i ; mancanti.
    Grazie ancora.

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.