Torna al Thread

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.IO; using System.Windows.Forms; namespace CellIDBeta { public partial class Form1 : Form { //Costante con i numeri dell'id cell. const int line_nums = 5; public Form1() { InitializeComponent(); } private void btnExtract_Click(object sender, EventArgs e) { listBox1.Items.Clear(); // Pulisco la listbox per un eventuale ricaricamento. //Controllo esistenza, se non esiste ritorno un errore . if (!File.Exists("prova.txt")) { MessageBox.Show("File non trovato", "Errore"); return; } //Inizializzo lo streamreader per leggere il file prova.txt StreamReader sr = new StreamReader("prova.txt"); // Inizializzo variabile c = contatore dell'indice di matrix. // tmp = variabile temporanea con ID di ogni riga. int tmp, c = 0; // Vettore con tutti gli ID di ogni riga, li troveremo nella prima listbox. int[] matrix = new int[10000]; //stringa contente ogni riga del log, ovviamente ora solo dichiarata. string linealog; // vettore per contenere lo split, grande quanto il primo campo. string[] cells = new string[line_nums]; //Ora splittiamo ogni riga al carattere ; andando avanti finchè non finisce. //Ad ogni ciclo popoliamo appunto il vettore Array e convertiamo in INT per effettuare il controllo doppioni. while (null != (linealog = sr.ReadLine())) { cells = linealog.Split(';'); tmp = Convert.ToInt32(cells[0]); //controllo doppi. bool doppi = false; for (int i = 0 ; i < matrix.Length - 1 ; i++ ) { if (matrix[i] == tmp ) { doppi = true; // quindi c'è un doppio, escludo. } } if (!doppi) { matrix[c] = tmp; } c++; tmp = 0; //puliamo la variabile temporanea liberando risorse. cells = new string[line_nums]; } // chiudiamo lo streamreader liberando altre risorse. sr.Close(); //Ciclo per aggiungere alla listbox gli id univoci trovati. for (int i = 0; i < matrix.Length - 1; i++) { if (matrix[i] != 0) { listBox1.Items.Add(matrix[i]); } } // fine bottone carica, da ottimizzare con la scelta del file manuale. } // Bottone salva nuovo file. private void btnWrite_Click(object sender, EventArgs e) { // Pulisco la 2 list box, come prima, per un eventuale secondo file. listBox2.Items.Clear(); //Variabile di selezione ID dalla list box, solo dichiarata. int sel_ID; //Converto in INT l'id cella selezionata dalla listbox1. sel_ID = Convert.ToInt32(listBox1.SelectedItem); //Controllo per esportazione file, se non esiste già un file con questo nome lo creo //è solo un controllo di rito in quanto in queste condizioni non puo esistere! if (!File.Exists("123provafile.txt")) { File.Create("123provafile.txt"); } StreamReader sr = new StreamReader("prova.txt"); StreamWriter sw = new StreamWriter("123provafile.txt"); int tmp = 0 ; string linealog; string[] cells = new string[line_nums]; while (null != (linealog = sr.ReadLine())) { cells = linealog.Split(';'); if (tmp == sel_ID) { sw.WriteLine(linealog); listBox2.Items.Add(linealog); } } sr.Close(); sw.Close(); } } }
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5