Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    TextReader & TextWriter & ListBox

    Ragazzi, io ho un piccolo problemino.

    Allora supponiamo una piccola "Form" con
    1 ListBox
    3 Button
    1 OpenFileDialog
    1 SaveFileDialog
    1 TextBox

    Allora immaginiamo che con l'OpenFileDialog apra un file che ha questa struttura:
    codice:
    TEZ1
    0 1 7
    1 0 0 18 10
    1 19 0 29 10
    1 30 0 40 10
    ....................
    Io voglio che legga ogni riga di testo usando la classe StreamReader
    codice:
      
    Dim line As StreamReader
    E che aggiunga ogni riga alla ListBox

    Quindi avrebbe per esempio il 1° ListBox1.Item avrebbe questo testo
    codice:
    TEZ1
    Il 2° ListBox1.Item
    codice:
    0 1 7
    e così via.

    Il problema è come faccio a assegnare una ListBox1.Items usando la classe StramReader.

    E poi avevo una TextBox che volevo che come clicco una ListBox1.Items mostri il testo dell'Item selezionato nella TextBox.Text e da qua posso modificare la stringa che cliccando un Button viene aggiornata alla ListBox1.ItemSelected (qua nn so come fare).

    E poi volevo usando la classe TextWriter far si che crei un file nuovo con tutti i testi delle ListBox1.Items.
    codice:
      
    Dim file_esistenteD As StreamWriter
    Es. Se la ListBox1 ha 2 Items
    - 1 19 0 29 10
    - 1 30 0 40 10

    Lui scriverà prima
    1 19 0 29 10
    e alla riga successiva
    1 30 0 40 10.

    Per fare quest'ultima cosa avevo pensato a questo
    codice:
     If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
     Dim file_esistenteD As StreamWriter
                            file_esistenteD = File.AppendText(SaveFileDialog1.FileName)
                            file_esistenteD.WriteLine()
                            file_esistenteD.Close()
           
     End If
    .

    Avevo provato a mettere una variabile
    codice:
    Dim Str_Item As String in ListBox1.Items
    Ma nn le scriveva riga per riga :master:

    Alcune cose le ho trovate su MSDN, ma nn ho trovato niente riguardo alla modifica del Testo della proprietà ListBox1.ItemSelected :master:

  2. #2
    Ho risolto per la ListBox

    codice:
     If Me.OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
                ' Inizializza una nuova classe di StreamReader
                Dim sr As New IO.StreamReader(OpenFileDialog1.FileName)
                While Not sr.EndOfStream
                    ' Legge riga per riga e passa la stringa alla ListBox
                    Me.ListBox1.Items.Add(sr.ReadLine)
                End While
                sr.Close()
                sr.Dispose()
            End If
    E anche sul come fare leggere il SelectedItem alla TextBox1.Text, prima avevo sbagliato una cosa

    codice:
      Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
            TextBox1.Text = ListBox1.SelectedItem
        End Sub
    Solo che nn riesco a modificare il testo del SelectedItem, in pratica vorrei che cliccando un pulsante il testo del SelectedItem venga sostituito dalla TextBox1.Text.

  3. #3
    Mi associo alla richiesta di flash per quanto riguarda l'ultimo punto, ovvero vorrei sapere come fare a modificare il testo di un Item e successivamente salvarlo. Ho provato in questo modo:

    codice:
    Dim W As New IO.StreamWriter(OpenFileDialog1.FileName)
            W.WriteLine(TextBox1.Text)
            W.Close()
    ma così facendo mi salva sì quello che scrivo nella TextBox, ma cancella tutto il resto scrivendo solo quella stringa. Poi mi interesserebbe anche sapere come fare ad aggiornare la ListBox ad operazione conclusa... Immagino che si debba far rileggere il documento, resettare la ListBox e reinserire gli elementi, modificati e non; oppure più semplicemente eliminare l' Item selezionato (e modificato) e sostituirlo con quello aggiornato.

    P.S. C'è per caso un modo per aggiornare il nome dell'Item senza salvarlo, in modo da poter fare altre modifiche ad altri Item?

    Ringrazio anticipatamente

    Aggiornamento:
    Facendo una ricerca ho trovato una cosa per VB6 (ListView) :
    codice:
    List.ListItems(1).Text = "kkk"
    Ora, ho cercato di adattarla al VB.NET e al controllo ListBox, agendo così:

    codice:
    ListBox1.SelectedItem.Text = "Prova"
    Ma mi dà un errore.
    Come fare quindi? Attendo vostre risposte

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    93
    Originariamente inviato da eXe FiLe
    Mi associo alla richiesta di flash per quanto riguarda l'ultimo punto, ovvero vorrei sapere come fare a modificare il testo di un Item e successivamente salvarlo. Ho provato in questo modo:

    codice:
    Dim W As New IO.StreamWriter(OpenFileDialog1.FileName)
            W.WriteLine(TextBox1.Text)
            W.Close()
    ma così facendo mi salva sì quello che scrivo nella TextBox, ma cancella tutto il resto scrivendo solo quella stringa. Poi mi interesserebbe anche sapere come fare ad aggiornare la ListBox ad operazione conclusa... Immagino che si debba far rileggere il documento, resettare la ListBox e reinserire gli elementi, modificati e non; oppure più semplicemente eliminare l' Item selezionato (e modificato) e sostituirlo con quello aggiornato.
    Deviusare la modalita append dello streamwriter:

    Dim W As New IO.StreamWriter(OpenFileDialog1.FileName, True)

  5. #5
    Sì, ma così facendo mi scrive un'altra riga alle fine del file, e non è quello che voglio.
    Vorrei invece che: io scrivo un testo nella TextBox, premo un bottone e mi sostituisce il testo dell' Item selezionato con il testo digitato nella TextBox, e poi aggiornare l'elemento modificato

  6. #6
    Up
    Sì, ma così facendo mi scrive un'altra riga alle fine del file, e non è quello che voglio.
    Vorrei invece che: io scrivo un testo nella TextBox, premo un bottone e mi sostituisce il testo dell' Item selezionato con il testo digitato nella TextBox, e poi aggiornare l'elemento modificato

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.