Visualizzazione dati/dictionary in un form/controllo

di il
10 risposte

Visualizzazione dati/dictionary in un form/controllo

Buongiorno a tutti.

Ho ripreso a studiare un pò. e volevo chiederVi un favore. Se potevate darmi qualche input di argomenti che potrei approfondire.

ho un file su cui sono salvati un codice e un valore. e non so come visualizzare i dati in una form.
non volevo complicarmi la vita con i database. cosi avevo pensato a un richtextbox.
allego uno pseudocodice per rendere l'idea di quello che ho fatto.

(ho messo questo pseudo codice perché in quello che sto studiando quando si inserisce una nuova riga scatta un evento. prendo i dati, li carico in una dictionary e la ordino. e solo dopo uso il codice che ho postato per inserirla in una text box).
using System;
using System.Windows.Forms;
using System.IO;

namespace esperimentiDictionary
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        StreamReader leggi = new StreamReader("C:\\Users\\PcHomeEd\\Desktop\\Ordini\\logOrdini.txt");
        private void button1_Click(object sender, EventArgs e)
        {
            string testo= richTextBox1.Text + "\n" + leggi.ReadLine();
            richTextBox1.Text = testo;
        }
    }

grazie

P.S.
per chi avesse letto, scusate per lo sfogo dell'altra sera.
non avendo più un lavoro avevo perso un pò la testa.
non si ripeterà più.

10 Risposte

  • Re: Visualizzazione dati/dictionary in un form/controllo

    Pivello ha scritto:


    ho un file su cui sono salvati un codice e un valore. e non so come visualizzare i dati in una form.
    non volevo complicarmi la vita con i database. cosi avevo pensato a un richtextbox.
    allego uno pseudocodice per rendere l'idea di quello che ho fatto.
    Ok, ma... il problema qual è?
  • Re: Visualizzazione dati/dictionary in un form/controllo

    È che mi sembra un po' un pezzotto usare una richbox in questo modo. Ho alcuni file con migliaia di righe. Mica posso copiare migliaia di righe in una variabile string? Oppure si?
    Effettivamente cercando il modo di spiegare il problema sto capendo che ho fatto una domanda assurda.
  • Re: Visualizzazione dati/dictionary in un form/controllo

    Pivello ha scritto:


    ...
    (ho messo questo pseudo codice perché in quello che sto studiando quando si inserisce una nuova riga scatta un evento. prendo i dati, li carico in una dictionary e la ordino. e solo dopo uso il codice che ho postato per inserirla in una text box)...
    Cioè la aggiungi alla RichTextBox solo per sfruttarne l'evento? Questo io lo trovo sbagliato.

    Pivello ha scritto:


    Mica posso copiare migliaia di righe in una variabile string? Oppure si?
    Hai o circa un miliardo di caratteri... Se superi il limite fammi sapere che son curioso...
  • Re: Visualizzazione dati/dictionary in un form/controllo

    Pivello ha scritto:


    È che mi sembra un po' un pezzotto usare una richbox in questo modo.
    Concordo.

    Pivello ha scritto:


    Ho alcuni file con migliaia di righe. Mica posso copiare migliaia di righe in una variabile string? Oppure si?
    Puoi fare tutto, ma dipende da quello che vuoi ottenere.

    Se non dici di cosa si tratta, o che tipo di visualizzazione desideri implementare, o qual è la difficoltà che riscontri o l'effetto desiderato diverso da quello che ottieni, non è che si possa dire più di tanto.

    Pivello ha scritto:


    Effettivamente cercando il modo di spiegare il problema sto capendo che ho fatto una domanda assurda.
    La domanda non è assurda: non c'è proprio la domanda.
    O meglio, ci sono domande ma non sono contestualizzate.

    E' un po' come dire "Stasera vado a mangiare il pesce... però, mica posso andare fino al mare per mangiarlo... o sì?"
    Boh, vedi un po' tu.
  • Re: Visualizzazione dati/dictionary in un form/controllo

    [/quote]
    Hai o circa un miliardo di caratteri... Se superi il limite fammi sapere che son curioso...
    [/quote]

    la storia è lunga e non voglio annoiarvi. Ma se proprio ci tieni a saperla
    il nostro vecchio consulente informatico nel lontano 1995 circa fece un database con access 2.0 su windows 3.1
    e lui era abituato a salvare le informazioni su file di testo.
    non credo che arrivino a 2 giga. Però sono centinaia di migliaia di righe. non tanto il file dei fornitori e degli ordini. ma quello dei prodotti è molte centinaia di migliaia di righe. Mi rendo conto che tutto il sistema è assurdo. Ma è grazie a questo programma che sto facendo pratica.
    Ad ogni inserimento ho fatto dei cicli con dei thread che verifica prima se c'è un dupicato. se c'è lo somma. se non c'è lo inserisce e lo ordina. e una volta ordinato dovrei caricare la lista.
    forse il metodo migliore e caricare ogni volta la richbox. mentre inizialmente prendevo il testo vecchio. lo copiavo e lo sommavo al nuovo.
    Diciamo che mancando di esperienza chiedevo a voi se la richbox fosse un modo corretto. oppure se c'erano altri modi.
    non so nemmeno perchè lo faccio. sicuramente per fare esperienza. e un po lo faccio per fare un utility nuova senza cambiare le abitudini degli ex colleghi. visto che nella sanità non c'è più futuro per me spero di ritornare al mio vecchio ufficio.
  • Re: Visualizzazione dati/dictionary in un form/controllo

    Come sono fatti questi dati? Che campi ci sono? E' possibile vedere un esempio di quello che esce sul RichTextBox?

    Se non ci sono proposte per una idea della "visualizzazione alternativa" che si vorrebbe, almeno cerchiamo di acquisire le informazioni per poterne proporre una.
  • Re: Visualizzazione dati/dictionary in un form/controllo

    Grazie Alka.
    Ma come faccio a capire se sto facendo un passaggio per Valore o per Riferimento?
    è da stamattina alle 8 che cerco di ordinare la dictionary nella richbox.
    solo adesso ci sono riuscito mettendo il valore ref.
    
    Dictionary<string, int> dic_ordini = new Dictionary<string, int>();
    
    public void Ordini(Dictionary<string, int> ordine, string chiamante)
            {
                    bool verifica = ordine.ContainsKey(cod_prod);
                    if (verifica)
                    {
                        ordine[cod_prod] += quantita;
                    }
                    else
                    {
                        ordine.Add(cod_prod, quantita);
                        ordine= ordine.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
                    }
                }
    
    
        public void visualizzaRB(ref Dictionary<string, int> dic)
            {
                string rigo;
                richTextBox1.Clear();
                foreach ( KeyValuePair<string, int> kv in dic)
                {
                    rigo = (kv.Key.ToString() + "\t" + kv.Value.ToString() + "\r\n");
                    richTextBox1.AppendText(rigo);
                }
            }
            
            
            private void button2_Click(object sender, EventArgs e)
            {
                visualizzaRB(ref dic_ordini);
            }
    
    a dire il vero questo codice funziona anche senza ref. Quando li inserisco in maniera manuale con le 2 caselle di testo va tutto bene.
    Ma quando invece cambio l'input, cioè caricandolo in automatico con un while e prendendo i dati da un file txt, funziona tutto ma i dati caricati nella Richbox sono tutti mischiati. ma se metto ref invece si ordinano.

    poi se devo essere preciso la dictionary in questione, con il file esterno, fa un doppio passaggio di metodi. forse questo è il problema?
  • Re: Visualizzazione dati/dictionary in un form/controllo

    Da autodidatta conosco la sensazione: il framework mette a disposizione troppi metodi per visualizzare i dati e non si sa quale scegliere.

    Il punto è che in realtà non è così. Ogni controllo ha la sua propria funzione e fa al meglio quanto richiestogli. Che poi si possa utilizzare un controllo per fare qualcosa d'altro è ininfluente. Prima di procedere oltre devi rispondere a questa domanda:

    Alka ha scritto:


    Come sono fatti questi dati? Che campi ci sono? E' possibile vedere un esempio di quello che esce sul RichTextBox?
    Senza queste informazioni, è tutto inutile.
  • Re: Visualizzazione dati/dictionary in un form/controllo

    Pivello ha scritto:


    Ma come faccio a capire se sto facendo un passaggio per Valore o per Riferimento?
    Ma cosa c'entra mai questo tema con il problema specifico?
    In ogni caso, capirei una domanda sulla differenza tra i due (basterebbe poi studiarla), ma sapere quando stai facendo l'uno o l'altro, essendo che lo decidi tu usando una parola chiave....

    Pivello ha scritto:


    è da stamattina alle 8 che cerco di ordinare la dictionary nella richbox.
    solo adesso ci sono riuscito mettendo il valore ref.
    A forza di andare a tentoni, prima o poi capita di inserire qualcosa che abbia un qualsiasi effetto sul programma, però bisogna vedere se andandolo a modificare quell'effetto rimane, se è valido in tutti i casi e così via.

    Non è il modo di programmare.
    Non si buttano istruzioni e parole chiave così, a caso.

    Pivello ha scritto:


    poi se devo essere preciso la dictionary in questione, con il file esterno, fa un doppio passaggio di metodi. forse questo è il problema?
    Non ti rispondo qui perché ovviamente, dopo averti suggerito di non aprire altre discussioni sul medesimo problema, ecco che .

    La cosa irritante però è che questo non è un problema legato a un linguaggio di programmazione, bensì alla lingua italiana e alla sua comprensione: ti si da un suggerimento su come si usa il forum e tu, in presenza di un problema da risolvere e volendo una mano, fai di tutto per disattenderli e creare apposta confusione, facendo l'esatto contrario di quello che ti si dice. Si potrebbe dire che lo fai apposta, in ogni caso sappi che durerà poco, perché le prossime le segnalo al moderatore.
  • Re: Visualizzazione dati/dictionary in un form/controllo

    [/quote]
    Non ti rispondo qui perché ovviamente, dopo averti suggerito di non aprire altre discussioni sul medesimo problema, ecco che .

    La cosa irritante però è che questo non è un problema legato a un linguaggio di programmazione, bensì alla lingua italiana e alla sua comprensione: ti si da un suggerimento su come si usa il forum e tu, in presenza di un problema da risolvere e volendo una mano, fai di tutto per disattenderli e creare apposta confusione, facendo l'esatto contrario di quello che ti si dice. Si potrebbe dire che lo fai apposta, in ogni caso sappi che durerà poco, perché le prossime le segnalo al moderatore.
    [/quote]

    scusa Alka. non lo faccio apposta. aprendo un nuova discussione pensavo di fare una cosa buona proprio per non mischiare troppi argomenti.

    di nuovo scusa a tutti voi
Devi accedere o registrarti per scrivere nel forum
10 risposte