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

    [c#] Stringa e separatore file di testo. codice macchinoso

    Salve a tutti!!!
    sono un paio di giorni che sto "giocando" con la programmazione in c#.
    veniamo al dunque.
    un programma esterno genera un file di testo ".txt" con caratteristiche tipo:
    codice:
    nome=gianfranco
    cognome=bianchi
    ec.. ec..
    la mia idea era di realizzare un programma che carica il suddetto file di testo e inserisce nome, cognome ecc.. ecc.. in maniera ordinata e con interfaccia grafica e in modo che l'utente finale possa con pochi click del mouse, modificare i dati, salvarli, stamparli ecc.. ecc..

    per ora ho creato la "gui" e i primi comandi.
    per quanto riguarda l'importazione dei nomi ho realizzato il seguente programma.
    premetto che sinceramente non sono affatto esperto di programmazione, il codice mi risulta sinceramente mooooolto macchinoso.
    alla fine funziona, ed il risultato è buono. ma sono sicuro che c'è il modo di fare la stessa cosa con meno dispendio di variabili, cicli e quanto altro.
    magari proprio dietro l'angolo esiste anche una classe che fa tutto, ma in quel caso che gusto ci sarebbe stato?

    i consigli sono ben accetti
    codice:
            private void modificaToolStripMenuItem_Click(object sender, EventArgs e)
            {
                string[] parola;
                int pari = 1;
                int countNome = 0;
                char separatore = '=';
                string line;
                int counter = 0;
                DialogResult dr;
                dr = dglOpen.ShowDialog();
                if (dr == DialogResult.OK)
                {
                    StreamReader file = new StreamReader(dglOpen.FileName);
                    while ((line = file.ReadLine()) != null)
                    {
                        parola = line.Split(separatore);
                        foreach (string s in parola)
                        {
                            if (pari % 2 == 0)
                            {
                                if (countNome == 0)
                                    nome.Text = s;
                                if (countNome == 1)
                                    cognome.Text = s;
                                countNome++;
                            }
                            pari++;
    
                        }
    
                        counter++;
                    }
    
                    file.Close();
                }
            }
    ora, per motivi di spazio ho inserito solo i primi due "record" nome e cognome.
    per rendere operativo il programma serviranno non meno di 30 "record"

    Grazie a tutti!
    ..::Gentoo powered::..

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Attenzione che il c# non è trattato qui, ma in visual basic e net framework..

    il codice che hai postato è migliorabile, soprattutto se hai la certezza che i record siano sempre presenti (della serie che sono tutti inseriti e con un valore)

    cmq l'utilizzo di file di testo per questo genere di cose è altamente sconsigliato.. usa un database

  3. #3
    Originariamente inviato da Stoicenko
    Attenzione che il c# non è trattato qui, ma in visual basic e net framework..

    il codice che hai postato è migliorabile, soprattutto se hai la certezza che i record siano sempre presenti (della serie che sono tutti inseriti e con un valore)

    cmq l'utilizzo di file di testo per questo genere di cose è altamente sconsigliato.. usa un database
    Oppss... non lo sapevo scusate!! ho sbagliato sezione!

    io so esattamente in numero preciso dei record e ho la certezza che tutti i campi contengono almeno 2 caratteri.

    in fase di immissione dei dati, se un campo viene lasciato vuoto, nell'output .txt viene inserito: "---"

    sul fatto che sia meglio utilizzare un db sono pienamente d'accordo con te.
    il problema è che il programma di immissione dati non posso modificarlo, a meno che non lo ricreo da zero, ma non credo di esserne ancora in grado. il programma che sto facendo io in pratica evita la reimmisione manuale di tutti i dati in un foglio di calcolo ecxel.
    Guardando un po in giro ho visto che esistono classi che danno la possibilita di trasformare quello che è in textbox in foglio ecxel.
    cmq il mio progetto finale sarà quello di inserire tutto cio in un db tipo access
    ..::Gentoo powered::..

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.