Oppure

Loading
21/11/19 13:29
xamm
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
aaa
21/11/19 14:47
nessuno
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

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à.
21/11/19 15:39
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
aaa
21/11/19 16:57
Thejuster
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.




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.
mire.forumfree.it/ - Mire Engine
C# UI Designer
21/11/19 17:22
xamm
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:
aaa
22/11/19 11:19
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.


aaa
22/11/19 11:37
Thejuster

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

mire.forumfree.it/ - Mire Engine
C# UI Designer
22/11/19 12:26
nessuno
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

docs.microsoft.com/it-it/dotnet/api/…


NON è che hai scritto Readline senza la s finale?


Ultima modifica effettuata da nessuno 22/11/19 12: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à.