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();
}
}
}