Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303

    [VB.Net] leggere un file di testo dalla fine all'inizio

    ciao,
    dovrei loggere un file txt dalla fine all'inizio, ma non riesco a capire come dovrei procedere, per leggere l'ultima riga faccio così:

    codice:
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim leggi As New System.IO.StreamReader(Application.StartupPath + "\log.txt")
            While Not leggi.EndOfStream
                TextBox1.Text = leggi.ReadLine
            End While
            leggi.Close()
        End Sub
    ma per leggere tutte le righe?

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Con leggi.ReadToEnd carichi tutto il file.

    oppure per leggere una riga alla volta, vedi l'esempio indicato nella guida:
    Procedura: leggere testo da un file
    ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.it/dv_fxfund/html/ed180baa-dfc6-4c69-a725-46e87edafb27.htm


  3. #3
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    ciao,
    ma per leggere tutto il file non ci sono problemi!
    potrei anche scrivere:
    codice:
    My.Computer.FileSystem.ReadAllText("C:\Test.txt")
    il problema è leggerlo dalla fine all'inizio del file ed inserirlo in una txtbox!

    codice:
    TextBox1.Text = My.Computer.FileSystem.ReadAllText(Application.StartupPath + "\log.txt")
    però io nella txtbox dovrei caricare il file invertendo la posizione delle righe,
    cioè l'ultima diventa la prima riga la seconda diventa la penu'ultima e così via dicendo.

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da x69asterix
    però io nella txtbox dovrei caricare il file invertendo la posizione delle righe,
    cioè l'ultima diventa la prima riga la seconda diventa la penu'ultima e così via dicendo.
    Perchè non dirlo subito?
    Dobbiamo aspettarci qualcos'altro nella prossima puntata ?

    Carica tutto il file, poi usa il metodo Split per suddividere le righe in un'array, infine esegui un ciclo 'a ritroso' per caricare le righe invertite.


  5. #5
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    nuova puntata..
    dove posso trovare un'esempio?

  6. #6
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    allora sono andato avanti ma incontro un problema:
    praticamente mi inserisce due righe vuote all'inizio della txtbox.
    così il file mi viene visualizzato nella txtbox dall'ultima riga fino all'inizio(giusto per me)
    codice:
            
            Dim fileContents As String
            fileContents = My.Computer.FileSystem.ReadAllText(Application.StartupPath + "\log.txt")
    
            Dim TestString As String = fileContents
            Dim TestArray() As String = Split(TestString, ",", -1, CompareMethod.Text)
    
            For i As Integer = TestArray.Length - 1 To 0 Step -1
                TextBox1.Text += TestArray(i) + vbCrLf
            Next

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Io modificherei il tuo codice così:

    codice:
    Dim TestArray() As String = fileContents.Split(CChar(Chr(10) + Chr(13)))
    Dim s As String = ""
    
    For i = TestArray.Length - 1 To 0 Step -1
        If TestArray(i) <> "" Then ' copio solo righe non vuote.
            s = s + TestArray(i) + Environment.NewLine
        End If
    Next
    ' solo alla fine assegno la stringa al controllo
    TextBox1.Text = s

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    10
    ma se io ho un file txt con all'interno piu righe -ad esempio:
    --------
    pippo
    pluto
    carlo
    franco
    ..

    --------
    dovrei fare una ricerca all'interno di questo file,se esiste inserisco il nome in una TextBox (per intenderci, vorrei partire dal primo con un cliclo credo, e se esiste lo iserisco nella textform se no passo avanti al prossimo nome)

    come potrei scriverlo?

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.