public new bool Leggi(StreamReader sr) { string str; // Riga letta dal file int i, ip; // Contatori int itmp = 0; // Temporanei per conversione double dtmp = 0.0; TokenString tk = new TokenString(); // Tokenizzatore if (!sr.EndOfStream) { str = sr.ReadLine(); // Legge una riga (ossia un oggetto completo) tk.Set(ref str, "\t "); // Imposta il tokenizzatore, str per reference i = 0; // Azzera contatori ip = 0; foreach (string s in tk) { switch (i) { case 0: // Legge i dati in ordine if (s != descrittore) // Descrittore i = int.MaxValue; break; case 1: // ID if (int.TryParse(s, out itmp)) nID = itmp; break; case 2: // Nome nome = s; break; case 3: // Numero if (int.TryParse(s, out itmp)) numero = itmp; break; case 4: // Legge i dati if (double.TryParse(s, out dtmp)) A = dtmp; break; case 5: if (double.TryParse(s, out dtmp)) Jxx = dtmp; break; case 6: if (double.TryParse(s, out dtmp)) Jyy = dtmp; break; case 7: if (double.TryParse(s, out dtmp)) tx = dtmp; break; case 8: if (double.TryParse(s, out dtmp)) ty = dtmp; break; case 9: if (int.TryParse(s, out itmp)) sezione = itmp; break; default: if (i < Np + 9) // Oltre i dati di base, legge i parametri usando l'indice ip { if (double.TryParse(s, out dtmp)) { p[ip] = dtmp; ip++; } } break; } // Fine dello swtch i++; } // Fine del ciclo foreach } return true; }
public bool Leggi(StreamReader sr) { string str; // Riga letta dal file int i; // Contatore int itmp; // Temporaneo per conversione TokenString tk = new TokenString(); // Tokenizzatore if(!sr.EndOfStream) { str = sr.ReadLine(); // Legge una riga (ossia un oggetto completo) tk.Set(ref str, "\t "); // Imposta il tokenizzatore, str per reference i = 0; // Azzera contatore foreach(string s in tk) { switch(i) { case 0: if(s != descrittore) // Se oggetto non riconosciuto i = int.MaxValue; break; case 1: if (int.TryParse(s, out itmp)) nID = itmp; break; case 2: nome = s; break; case 3: if (int.TryParse(s, out itmp)) numero = itmp; break; } i++; } } return true; }
public new bool Leggi(StreamReader sr) { string str; // Riga letta dal file int i; // Contatore int itmp; // Temporanei per conversione double dtmp; TokenString tk = new TokenString(); // Tokenizzatore if (!sr.EndOfStream) { str = sr.ReadLine(); // Legge una riga (ossia un oggetto completo) tk.Set(ref str, "\t "); // Imposta il tokenizzatore, str per reference i = 0; // Azzera contatore foreach (string s in tk) { switch (i) { case 0: // Descrittore if (s != descrittore) // Se oggetto non riconosciuto i = int.MaxValue; break; case 1: // ID if (int.TryParse(s, out itmp)) nID = itmp; break; case 2: // Nome nome = s; break; case 3: // Numero if (int.TryParse(s, out itmp)) numero = itmp; break; case 4: // Legge i dati: E... if (double.TryParse(s, out dtmp)) E_ = dtmp; // Li inserisce direttamente senza usare le proprieta` break; // altrimenti puo` alterarne i valori case 5: if (double.TryParse(s, out dtmp)) // nu... nu_ = dtmp; break; case 6: // G... if (double.TryParse(s, out dtmp)) G_ = dtmp; break; case 7: // alfa if (double.TryParse(s, out dtmp)) alfa_ = dtmp; break; case 8: // sigma Rp if (double.TryParse(s, out dtmp)) sigmarp_ = dtmp; break; } i++; } } return true; }
/// <summary> /// Costruttore statico. /// Legge il file Mat.dat nella stessa cartella dell'eseguibile /// </summary> static MaterialiOttici() { string nomefile = "Mat.dat"; string linea; int i; StreamReader sr = new StreamReader(nomefile); TokenString tk = new TokenString(); // Tokenizzatore while(!sr.EndOfStream) { linea = sr.ReadLine(); // Legge una riga (ossia un oggetto completo) tk.Set(ref linea, "\t "); // Imposta il tokenizzatore, str per reference double[] A = new double[MaterialeOttico.NA]; string nomemat="-"; i = 0; // Azzera contatore foreach (string s in tk) { switch (i) { case 0: nomemat = s; break; default: if((i>0)&&(i<MaterialeOttico.NA)) { double val; if (double.TryParse( s, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.CreateSpecificCulture("en-US"), out val)) A[i-1] = val; else throw new Exception("Fallita conversione valori materiali da file"); } break; } i++; } mt.Add(new MaterialeOttico(nomemat,A[0],A[1],A[2],A[3],A[4],A[5])); } }
public new bool Leggi(StreamReader sr) { string str; // Riga letta dal file int i; // Contatore int itmp; // Temporanei per conversione rifOggetto = new RifOggetto(); TokenString tk = new TokenString(); // Tokenizzatore if (!sr.EndOfStream) { str = sr.ReadLine(); // Legge una riga (ossia un oggetto completo) tk.Set(ref str, "\t "); // Imposta il tokenizzatore, str per reference i = 0; // Azzera contatore foreach (string s in tk) { switch (i) { case 0: if (s != descrittore) // Se oggetto non riconosciuto i = int.MaxValue; break; case 1: if (int.TryParse(s, out itmp)) nID = itmp; break; case 2: nome = s; break; case 3: if (int.TryParse(s, out itmp)) numero = itmp; break; case 4: // Tipo //if (int.TryParse(s, out itmp)) //rifTrave.nodi[0] = itmp; break; case 5: //if (int.TryParse(s, out itmp)) // num. oggetto //rifTrave.nodi[1] = itmp; break; case 6: //if (int.TryParse(s, out itmp)) // i 3 bool //rifTrave.sezione = itmp; break; case 7: //if (int.TryParse(s, out itmp)) // i tre float //rifTrave.materiale = itmp; break; } i++; } } return true; }