ciao, sto provando a fare un'applicazione console con visual c# (con il quale sono alle prime armi) e ho questo problema:
devo inserire dei valori in una lista di un tipo di dato creato con una struct.
la struct è questa:
codice:
public struct calciatore {
public int code;
public string nome;
public string squadra;
public float voto;
public int gol;
public int rig;
public int amm;
public int esp;
public int ax;
public float pm;
}
di seguito dichiaro una variabile temp di tipo calciatore dove inserire i valori letti corrispondenti ad una sola riga del file di testo e la mia lista:
codice:
calciatore temp;
List<calciatore> voti = new List<calciatore>();
una riga del file di testo è composta in questa maniera:
codice:
101 ABBIATI Christian MIL 0,00 0 0 0 0 0 6,00
quindi ogni valore (separato da un tab) deve finire nel relativo campo della variabile temp di tipo calciatore che poi verrà aggiunta alla lista per poi passare alla riga sucessiva del file di testo fino alla fine: come fare? il problema non è tanto come popolare la lista o come fare il ciclo per arrivare alla fine del file di testo ma bensì inserire i valori giusti nei campi giusti.
ero partito con
codice:
temp = sr.ReadLine();
dove
codice:
StreamReader sr = File.OpenText(miofile.txt");
ma poi la scritta Impossibile convertire implicitamente il tipo 'string' in 'calciatore' mi ha messo paura.
so che devo convertire il tipo string restituito da Readline() in int o double con per esempio int.parse(sr.readline()) quando serve, ma come? la readline legge tutta la riga giusto? dovrei fare una conversione per ogni valore?
per esempio
codice:
temp.code = int.parse(sr.Readline());
in c con una paio di %d, %lf, %s me la cavavo ma qui proprio non ho capito come fare.
ciao e grazie.