es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo crear 2 arrays a partir de un cuadro de texto multilínea para cada fila en C#? Luego necesito graficar esos arrays en un gráfico.

Tengo este cuadro de texto de varias líneas:

14:33:29, 831

14:33:30, 834

14:35:1, 830

14:35:2, 833

Necesito crear 2 arreglos:
el primero para contener datos de la izquierda (14:33:29, 14:33:30, 14:35:1, 14:35:2) y el segundo para contener datos de la derecha (831, 834, 830, 833).
Los datos de mi cuadro de texto están separados por “”,&tquo;”.
Los datos de la izquierda son del tipo DateTime, y los de la derecha son enteros.
Luego quiero hacer un gráfico de línea en C# con esos 2 arreglos.
¿Alguien puede ayudarme, por favor?

Utilicé esto pero solo se muestra el primer parámetro.

string[] str = textBox3.Text.Split(‘,’);

foreach (string row in str)
{
textBox2.Text = str[0];
}

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para crear dos arrays a partir de los datos en el cuadro de texto multilínea, puedes utilizar el siguiente código:

    string[] lines = textBox1.Lines; // obtener todas las líneas en el cuadro de texto
    string[] timeData = new string[lines.Length]; // array para almacenar los datos de tiempo
    int[] valueData = new int[lines.Length]; // array para almacenar los datos de valor
    
    for (int i = 0; i < lines.Length; i++)
    {
        string[] splitLine = lines[i].Split(new char[] { ',', '\t' }); // dividir cada línea por coma y tabulación
        timeData[i] = splitLine[0]; // almacenar los datos de tiempo
        valueData[i] = int.Parse(splitLine[1]); // almacenar los datos de valor como entero
    }
    

    Este código obtiene todas las líneas en el cuadro de texto, crea dos arrays vacíos con la misma longitud que el número de líneas, y luego recorre cada línea. En el bucle, cada línea se divide en un array de dos elementos (usando coma y tabulación como delimitadores), y el primer elemento se almacena en el array timeData en el índice actual, mientras que el segundo elemento se convierte a entero y se almacena en el array valueData en el índice actual.

    Para crear un gráfico de líneas en C# con estos dos arrays, puedes utilizar el siguiente código:

    chart1.Series.Clear(); // borrar cualquier serie existente en el gráfico
    
    Series series = new Series("Mis Datos"); // crear una nueva serie
    series.ChartType = SeriesChartType.Line; // establecer el tipo de gráfico como línea
    
    for (int i = 0; i < timeData.Length; i++)
    {
        DateTime time = DateTime.ParseExact(timeData[i], "HH:mm:ss", CultureInfo.InvariantCulture); // convertir los datos de tiempo a un objeto DateTime
        series.Points.AddXY(time, valueData[i]); // agregar un punto de datos a la serie con los datos de tiempo y valor
    }
    
    chart1.Series.Add(series); // añadir la serie al gráfico
    

    Este código crea una nueva serie con el nombre “Mis Datos” y establece su tipo de gráfico como línea. Luego recorre cada elemento en los arrays timeData y valueData, convierte los datos de tiempo a un objeto DateTime utilizando el formato “HH:mm:ss”, y luego agrega un punto de datos a la serie con los datos de tiempo y valor. Finalmente, se agrega la serie a un gráfico (en este ejemplo, el gráfico se llama chart1).

    Ten en cuenta que necesitas agregar un control de gráfico a tu formulario y establecer su propiedad Dock como Fill para que el gráfico se muestre.

Comments are closed.