Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Conteggio record in file txt
Forum - C# / VB.NET - Conteggio record in file txt

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
xamm (Normal User)
Rookie


Messaggi: 23
Iscritto: 30/09/2015

Segnala al moderatore
Postato alle 14:29
Giovedì, 21/11/2019
Buongiorno a tutti.

Avrei bisogno di un aiuto se possibile.

Ho in rete una cartella dove ci sono SEMPRE al suo interno n file.tif ed un solo file txt da dare in pasto ad una procedura.
Il numero dei file .tif e i il numero di record del file txt, deve sempre essere lo stesso, altrimenti la procedura va in errore ... da qui la necessità di verificare in automatico se è veramente così.

Certo, basterebbe aprire il txt e vedere il numero dei record e poi verificare quanti tif ci sono ed in meno di 30 secondi avrei fatto il controllo, ma automatizzarlo è più bello.

Esempio: nella cartella pippo ci sono 100 file.tif e nel file pippo.txt 100 record.

Trovando del codice in rete sono arrivato al punto in cui cliccando su un bottone, riesco a selezionare una cartella in una directory e a contarne il numero dei file contenuti in essa.

Vorrei, se possibile e sempre facendo click sul suddetto bottone, di riuscire a contare i record dell'unico file txt presente nella cartella selezionata e arrivare al message box che dica ...."trovati 100 file tif e 100 record nel file pippo.txt"

Spero di essere stato abbastanza chiaro, ma temo che non sia così.
---------------------------------------------------------------------------------------

Il codice attuale è il seguente:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim di As DirectoryInfo
        Dim folder As FolderBrowserDialog = New FolderBrowserDialog
        folder.SelectedPath = ("\\192.XXX.XX.X\X\XXXXX\XXXXXXX\")

      
        If folder.ShowDialog() = DialogResult.OK And folder.SelectedPath IsNot Nothing Then
            di = New DirectoryInfo(folder.SelectedPath)

            Dim DI1 As New IO.DirectoryInfo(folder.SelectedPath)
            MessageBox.Show("Presenti" & " " & DI1.GetFiles.GetLength(0).ToString - 2 & " " & "file .tif + pippo.txt", "Conteggio file")

        End If


    End Sub

Grazie e buon pomeriggio a tutti :k:.

Massimo

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5940
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:47
Giovedì, 21/11/2019
Scusa ma cosa hai cercato in rete? Se non sai come fare, esistono mille esempi ...

In ogni caso, il modo più semplice è con una linea

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim nLinee As Integer = File.ReadLines("NomeFile.txt").Count()



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
xamm (Normal User)
Rookie


Messaggi: 23
Iscritto: 30/09/2015

Segnala al moderatore
Postato alle 16:39
Giovedì, 21/11/2019
Ringrazio nessuno per l'attenzione.

Quello che vorrei riuscire a fare una volta selezionata la cartella, sarebbe, visto che nella cartella c'è il pippo.txt, senza specificarne il percorso, contare i record contenuti in esso.

Grazie

Massimo

PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1968
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 17:57
Giovedì, 21/11/2019
Testo quotato

Postato originariamente da xamm:

Ringrazio nessuno per l'attenzione.

Quello che vorrei riuscire a fare una volta selezionata la cartella, sarebbe, visto che nella cartella c'è il pippo.txt, senza specificarne il percorso, contare i record contenuti in esso.

Grazie

Massimo




:noway:

credo che nessuno si sia espresso benissimo.

per contare il numero di linee nel file "pippo.txt" occorre utilizzare quella procedura.


Codice sorgente - presumibilmente C# / VB.NET

  1. Dim nLinee As Integer = File.ReadLines("NomeFile.txt").Count()



A patto che il termine "record" che intendi, sia inteso come n di linee nel file txt.


PM Quote
Avatar
xamm (Normal User)
Rookie


Messaggi: 23
Iscritto: 30/09/2015

Segnala al moderatore
Postato alle 18:22
Giovedì, 21/11/2019
Buonasera a tutti,

si, per record intendo le linee del file txt perché ogni linea corrisponde, in un altro DB, ad un record.

Ok grazie mille proverò allora con il codice che mi avete suggerito e se ho difficoltà vi romperò di nuovo le scatole.

Grazieee :k:

PM Quote
Avatar
xamm (Normal User)
Rookie


Messaggi: 23
Iscritto: 30/09/2015

Segnala al moderatore
Postato alle 12:19
Venerdì, 22/11/2019
Buongiorno,

ho inserito il codice suggerito nell'evento click di un bottone:

Dim nLinee As Integer = File.ReadLines("NomeFile.txt").Count()

e mi dice:

'ReadLines non è un membro di 'System.IO.File'

ma l'Imports System.IO è dichiarato.

Quale altro imports devo aggiungere ?

Grazie.



PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1968
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 12:37
Venerdì, 22/11/2019
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim lines As String() = File.ReadAllLines("pippo.txt")
  2. Console.WriteLine("Linee: {0}", lines.Length)



PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5940
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:26
Venerdì, 22/11/2019
Testo quotato

Postato originariamente da xamm:

Buongiorno,

ho inserito il codice suggerito nell'evento click di un bottone:

Dim nLinee As Integer = File.ReadLines("NomeFile.txt").Count()

e mi dice:

'ReadLines non è un membro di 'System.IO.File'

ma l'Imports System.IO è dichiarato.

Quale altro imports devo aggiungere ?

Grazie.





Con quale versione di framework stai lavorando?

Il metodo ReadLines è di System.IO.File praticamente da sempre

https://docs.microsoft.com/it-it/dotnet/api/system.io.file. ...


NON è che hai scritto Readline senza la s finale?



Ultima modifica effettuata da nessuno il 22/11/2019 alle 13:36


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
xamm (Normal User)
Rookie


Messaggi: 23
Iscritto: 30/09/2015

Segnala al moderatore
Postato alle 14:31
Lunedì, 25/11/2019
Buonasera a tutti,

sostituito File.ReadLines con File.ReadAllLines tutto funziona.

Grazie

Massimo

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo