Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848

    Controllo file riga per riga

    Ciao a tutti,
    avrei bisogno di ricopiare dei file di testo di tipo csv (con separatore punto e virgola) in un altro file temporaneo per effettuare dei controlli formali.
    Ovvero, ho un file csv del tipo:

    Campo1;Campo2;Campo3;Campo4;Campo5
    Campo1;Campo2;Campo3;Campo4;Campo5
    Campo1;Campo2;Campo3;Campo4;Campo5
    Campo1;Campo2;Campo3;Campo4;Campo5
    Campo1;Campo2;Campo3;Campo4;Campo5

    Vorrei ricopiare, riga per riga, tali record in un file temporaneo, ed effettuare dei controlli del tipo:
    - in questo record (numero riga) ci sono 3 punti e virgola invece dei 4 consentiti
    - in questo record (numero riga) ci sono 6 punti e virgola invece dei 4 consentiti

    e così via.
    Come è possibile fare una cosa del genere?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    Ho iniziato in questo modo (ad esempio):

    // Ricavo il percorso del file
    string percorso = PercorsoFile();
    //Ricavo il file che l'utente vuole controlalre
    string flusso = DropDownList1.SelectedValue.ToString();
    string fileflusso = percorso + @"\" + flusso;

    // Creo un file vuoto
    FileStream fs = File.Create(Server.MapPath("output.txt"));
    fs.Close();

    // Leggo il flusso
    string riga = "";
    TextReader tr = File.OpenText(fileflusso);
    riga = tr.ReadLine();
    //Scrivo nel file vuoto
    TextWriter tw = File.AppendText(Server.MapPath("output.txt"));
    tw.WriteLine(riga);
    tw.Close();


    A questo punto ho un file (output.txt) che contiene una riga del file.
    Adesso dovrei verificare che contenga il numero esatto di punti e virgola previsti, e segnalare se sono meno o più.
    Ma qua mi sono bloccato

  3. #3
    Utente di HTML.it L'avatar di Miscio
    Registrato dal
    Oct 2003
    Messaggi
    132
    Apri il file
    Scorri con un ciclo for usando iln° di righe
    splitti la riga in un array con Split usando ";" come separatore
    con Ubound(nomearray) sai quanti ; ci sono su quella riga

    Mandi
    Yama ... Mille Anni in Montagna

  4. #4
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    Ho aggiunto questo pezzetto:

    string recordSingolo;
    TextReader tr2 = File.OpenText(Server.MapPath("output.txt"));
    recordSingolo = tr2.ReadLine();
    char delimiter = ";";
    string[] RigaSplit = null;
    RigaSplit = recordSingolo.Split(delimiter,1);

    ma non funziona.

  5. #5
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    In questo modo funziona:


    TextReader tr2 = File.OpenText(Server.MapPath("output.txt"));
    string recordSingolo = tr2.ReadLine();

    string[] split = recordSingolo.Split(new Char[] {';'});
    int numero = split.GetUpperBound(0);
    if (numero < 10)
    {
    //Ci sono meno punti e virgola del previsto
    // Scrivi nella tabella
    // InsertError(riga)
    }
    else
    {
    //Ci sono più punti e virgola del previsto
    // Scrivi nella tabella
    // InsertError(riga)
    }

    Il mio problema ora è ciclare su tutto il file (questo funziona solo per la prima riga).

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.