Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180

    Caricare txt in textbox

    Ragazzi ho bisogno di nuovo del vostro aiuto. Ho una serie di textbox, in cui voglio caricare dei dati salvati su un file txt, più precisamente, ogni riga va in una textbox in modo sequenziale.

    Se ad esempio ho un txt contenente:

    prima riga
    seconda riga
    terza riga
    quarta riga

    voglio che le righe vengano inserite in ordine, la prima nella textbox1, la seconda nella textbox2 ecc..

    Ho visto che è possibile usare il tab index, ed infatti volevo creare un for per ciclare le textbox in base all'indice e quindi inserire le righe. Non sono però riuscito ad individuare un modo per associare la variabile i del for, all'indice della textbox generica.

  2. #2

    Re: Caricare txt in textbox

    Originariamente inviato da deb463is
    Ragazzi ho bisogno di nuovo del vostro aiuto. Ho una serie di textbox, in cui voglio caricare dei dati salvati su un file txt, più precisamente, ogni riga va in una textbox in modo sequenziale.

    Se ad esempio ho un txt contenente:

    prima riga
    seconda riga
    terza riga
    quarta riga

    voglio che le righe vengano inserite in ordine, la prima nella textbox1, la seconda nella textbox2 ecc..

    Ho visto che è possibile usare il tab index, ed infatti volevo creare un for per ciclare le textbox in base all'indice e quindi inserire le righe. Non sono però riuscito ad individuare un modo per associare la variabile i del for, all'indice della textbox generica.
    Ciao !

    Nel post parli del TabIndex ... se non e' un refuso, il problema e' li' !
    Il TabIndex infatti e' una proprieta' che semplicemente indica l'ordine in cui verranno selezionate le TextBox premendo il tasto Tab ! Nulla ha da spartire con quello che vuoi fare....

    Tu devi creare una matrice di TextBox (spero tu sappia come fare), e utilizzare (implicitamente) la proprieta' Index, ad esempio con:
    Text1(i) = Riga
    ricordando pero' che la PRIMA textbox avra' indice 0, dove metterai la prima riga del file.

    CIAO !
    IceCube_HT (VB6 fan Club)

  3. #3

    Re: Re: Caricare txt in textbox

    Originariamente inviato da icecube_HT
    Ciao !

    Nel post parli del TabIndex ... se non e' un refuso, il problema e' li' !
    Il TabIndex infatti e' una proprieta' che semplicemente indica l'ordine in cui verranno selezionate le TextBox premendo il tasto Tab ! Nulla ha da spartire con quello che vuoi fare....

    Tu devi creare una matrice di TextBox (spero tu sappia come fare), e utilizzare (implicitamente) la proprieta' Index, ad esempio con:
    Text1(i) = Riga
    ricordando pero' che la PRIMA textbox avra' indice 0, dove metterai la prima riga del file.

    CIAO !
    Anche se, per dirla tutta, una Collection degli oggetti presenti nel form, già c'è..... e si chiama Controls.
    Il problema, è l'ordinamento di tale Collection, nel senso che non c'è un ordine in funzione di un criterio, o per meglio dire il criterio lo detta l'ordine con cui inserisci i controlli nel from.
    Pertanto, se volessi cercare dei controlli in base ad un indice, potresti valorizzare la proprietà tag del tuo controllo con dei numeri progressivi in base all'ordine che decidi debbano avere, o meglio, aggiungere una proprietà Index al tuo controllo che abbia lo stesso scopo.
    In seguito, potresti iterare la Collection in questo modo:
    codice:
    for each cnt as control in Me.controls
    if type of cnt is textbox then
    'qui fai le tue valutazioni in funzione di quale riga vuoi inserire come testo.
    endif
    next
    Ad ogni modo, va benissimo anche la soluzione suggerita da icecube.

    Facci sapere...
    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180
    Grazie mille ragazzi, domani proverò le soluzioni suggeritemi!! Siete grandi!

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180
    Ragazzi, ecco un pò di codice. Il problema è che non riesco a capire dove effettuare la copia della riga all'interno della textbox!
    codice:
                
    //Creazione della matrice
               TextBox[] txtMatrix = new TextBox[4];
                int x = 162;
                int y = 180;
    
                for (int i = 0; i < txtMatrix.Length; i++)
                {
                    txtMatrix[i] = new TextBox();
                    txtMatrix[i].Left = x;
                    txtMatrix[i].Top = y;
                    y += txtMatrix[i].Height + 20;
    
                }
    
                Controls.AddRange(txtMatrix);
            }
    
    //Lettura del file di testo
    string line;
    
            System.IO.StreamReader file = new System.IO.StreamReader(@"c:\a.txt");
            for (int i = 0; i <= 2; i++)
            {
                while ((line = file.ReadLine()) != null)
                {
                   //istruzione per la copia della textbox!! ex: Textbox1.text=line;
                }
            }
            file.Close();

  6. #6
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    C'è un cliclo di troppo nel tuo codice.
    Il ciclo For .... od il ciclo While .....
    Siccome non sai quante righe sono contenute nel file stream
    giustamente dovresti utilizzare il While ...
    Però potrebbero esserci più righe che text box ........
    Al di la' delle scelte grafiche, se sei certo che non ci siano più di 4 righe
    nel file di testo che andrai a leggere, allora potresti
    benissimo utilizzare il seguente codice :

    codice:
    //Lettura del file di testo
    string line;
    
            System.IO.StreamReader file = new System.IO.StreamReader(@"c:\a.txt");
            //   for (int i = 0; i <= 2; i++)  <----- Ciclo di troppo
            //   {                                  <----- Ciclo di troppo 
    
    
                int i = 0;
                 while ((line = file.ReadLine()) != null)
                {
                   //istruzione per la copia della textbox!! ex: Textbox1.text=line;
                   txtMatrix[i].Text = line;
                   i++;
                }
    
    
            //  }                                    <----- Ciclo di troppo 
            file.Close();
    Ciao, Brainjar

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180
    Si certo, li avevo inseriti qui separati proprio perchè ancora non li avevo integrati. Avevo pensato a due for innestati, quello esterno che legge le righe, e quello interno che crea la matrice di textbox! Ora provo questo

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180
    Eccomi di nuovo qui ragazzi. Allora, ho un piccolo problema. Il testo da caricare deve essere messo in delle textbox già create; conosco l'esatto numero di righe e quindi di textbox!

  9. #9
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    E allora ?
    Hai provato il codice che ti ho suggerito ?

    l'istruzione -> txtMatrix[i].Text = line; fa esattamente quello che chiedi.
    Ciao, Brainjar

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180
    Originariamente inviato da Brainjar
    E allora ?
    Hai provato il codice che ti ho suggerito ?

    l'istruzione -> txtMatrix[i].Text = line; fa esattamente quello che chiedi.
    Si provato, ma non riesco ad ordinare la sequenza di istruzioni!
    Sono entrato in palla. Non posso usare il while perchè conosco il numero preciso di righe. Quindi prima scrivo il for che deve ciclare n volte dove n è il numero di righe. Poi?

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.