error CS0103

Status
Not open for further replies.

vibi

New member
Joined
Apr 8, 2021
Messages
2
Programming Experience
Beginner
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

class Program
{
static void Main(string[] args)
{
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
//LEGGO NOME FILE DA PROCESSARE DALLA LINEA DI COMANDO
var input_file = "trial.dat";
int NYEARS = 32; //30
int NRUNS = 54; //54

//DICHIARO I RANGE DELLE VARIABILI INDIPENDENTI
var bus_types = new[] { "40ftdiesel", "60ftdiesel", "40ftcng", "60ftcng", "40fthybrid", "60fthybrid", "40ft250kWh", "40ft350kWh", "60ft650kWh", "40ft250kWhplugin", "40ft110kWhpantograph", "40ft110kWhwireless" };
var age_types = Enumerable.Range(0, 16).Select(x => x.ToString()).ToArray();
var year_types = Enumerable.Range(1, NYEARS).Select(x => x.ToString()).ToArray();
var run_types = Enumerable.Range(1, NRUNS).Select(x => x.ToString()).ToArray();
//PREPARO LA LISTA CHE CONTERRA LE RIGHE DELL'OUTPUT
List<string> all_output_lines = new List<string>();
//LEGGO IL FILE
var all_input_lines = System.IO.File.ReadAllLines(input_file);
for (int l = 0; l < all_input_lines.Length; l++)
{
var input_line = all_input_lines[l];
//SE NON TROVO IL MARKER PASSO ALLA RIGA SUCCESSIVA
if (!input_line.StartsWith("#MACRO "))
{
//COPIO LA RIGA DIRETTAMENTE SULL'OUTPUT
all_output_lines.Add(input_line);
//CONTINUE MI FA COMINCIARE L'ITERAZIONE SUCCESSIVA SENZA FINIRE QUELLA CORRENTE
continue;
}
if (input_line.StartsWith("#MACRO TABLE maintenance"))
{
//>> command = "maintenance.csv" ("40ft250kWh","40ft350kWh","60ft650kWh","40ft250kWhplugin") %columns% %invariant% %rows%
//PER LA TABELLA DI MAINENANCE HO NTABELLE PER IL TIPO DI BUS, RIGHE PER LA CORSA E COL X ETA'
var maintenance_lines = System.IO.File.ReadAllLines("mcosts.csv");

//LEGGO LE 4 TABELLE (ogni tabella è di tipo double[,], l'array è double[][,])
var kind_subtables = new double[bus_types.Length][,];
//Spezziamo il file in N tabelle che iniziano dalla riga in cui trovo il nome del Kind di autobus
for (int ki = 0; ki < bus_types.Length; ki++)
{
kind_subtables[ki] = new double[run_types.Length, age_types.Length];
var row_name = bus_types[ki];
var relevant_lines = maintenance_lines //DI TUTTE LE RIGHE LETTE DA MAINTENANCE.CSV
.SkipWhile(line => !line.Contains(row_name)) //SALTA TUTTE QUELLE CHE NN CONTENGONO IL NOME DEL TIPO DI BUS
.Skip(3) //SALTANE ALTRE 3 (NUMERO MAGICO)
.Take(run_types.Length) //PRENDINE N DOVE N è IL NUMERO DI CORSE DA CONSIDERARE
.ToArray(); //TRASFORMA IN ARRAY
for (int ri = 0; ri < run_types.Length; ri++) //PER OGNI RIGA RILEVANTE
{
var cells = relevant_lines[ri]
.Split(';') //LA DIVIDO USANDO IL CARATTERE ","
.Skip(1) //SALTO IL PRIMO
.ToArray(); AT THIS POINT I GOT THE ERROR (IN DEBUG)
Document
NomeValoreTipo
age_types[ai]error CS0103: Il nome 'ai' non esiste nel contesto corrente

for (int ai = 0; ai < age_types.Length; ai++)
{
double parsed = 0;
if (cells[ai] == "-")
parsed = 0;
else if (!double.TryParse(cells[ai], out parsed))
throw new InvalidOperationException($"NON SONO RIUSCITO A TRASFORMARE IL TESTO {cells[ai]} IN NUMERO");

kind_subtables[ki][ri, ai] = parsed;

}
}
}
....
CAN YOU HELP ME?
 
Please do not multi-post. Pick a forum and we'll respond to it there. Closing this one for you.
 
Status
Not open for further replies.
Back
Top Bottom