Autor Tema: Editar elemento de un arreglo join poner comillas cuando se detecte tipo dato  (Leído 1847 veces)

Marcus

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Hola, tengo una consulta, en verdad agradecería de su ayuda:))

necesito agregar comillas simples a un elemento en especifico de un arreglo, por ejemplo si el elemento del arreglo values es de tipo varchar se le agregara comillas simples, mientras tanto al elemento que sea de tipo int, no se le agregara comillas. de hecho ya le habia asignado las comillas, pero como estoy manejando un list, las comillas se agregan a todos los elementos del arreglo values y yo solo quiero asignarle a quienes sean verificados como de tipo "VARCHAR", aqui les dejo el codigo

private string CreateCSV(IDataReader reader)
        {
           
            List<string> lines = new List<string>();
            string headerLine = "";
            string fastline = "";
while (reader.Read())
            {
                string[] columns = new string[reader.FieldCount];
                object[] values = new object[reader.FieldCount];

for (int index = 0; index < reader.FieldCount; index++)
                {

                    values[index] = reader.GetValue(index);
                    string valor = reader.GetDataTypeName(index);
                    if (valor == "VARCHAR")
                    {
                    //solo quiero tomar el elemento del arreglo values y asignarle las comillas
                    }
                    fastline = string.Join(",", values.Select(x => string.Format("'{0}'", x)));
                         //aqui se le agregan comillas pero a todos los elementos del arreglo,
                         //de hecho la linea string.format se omitiria porque le asignare las
                         comillas simples antes
                }

}
          System.IO.File.WriteAllLines(file,lines);



            string prueba = String.Concat(lines);
            MessageBox.Show(prueba);
            return file;
}
« Última modificación: 02 de Septiembre 2022, 18:50 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re: Editar elemento de un arreglo join poner comillas cuando se detecte tipo dato
« Respuesta #1 en: 02 de Septiembre 2022, 18:51 »
Buenas, para escribir en los foros recomendamos leer https://aprenderaprogramar.com/foros/index.php?topic=1460.0 y pegar el código y poner título a los temas según se indica ahí.

No sé si entiendo lo que quieres plantear. Tal y como lo describes, entiendo que quieres que el valor del array pase a tener comillas cuando detectes que el tipo de dato es VARCHAR.

En este código (no demasiado elegante, pero creo que puede valer como ejemplo) planteo lo siguiente:

- Creo un array de cadenas que llamo tipoDato con contenido inicial {"LONG", "LONG", "VARCHAR", "SHORT", "VARCHAR", "DOUBLE", "DOUBLE"};

- Creo un array de supuestos valores con contenido inicial {"esto es long", "esto es long", "esto es otro varchar", "esto es short", "esto es varchar", "esto es double", "esto es double"};

- Recorro el array de tipoDato, y cuando detecto que es VARCHAR, le añado comillas al value.

Nota: no se recomienda la modificación de elementos de una colección al recorrerla sino usando un iterador (ver https://aprenderaprogramar.com/index.php?option=com_content&view=article&id=633:tipo-iterator-api-java-ejemplo-error-javautilconcurrent-modificationexception-resumen-bucles-cu00667b&catid=68&Itemid=188)

El código:

Código: [Seleccionar]
public class Test {

    public static void main (String[] Args) {

        String[] tipoDato = {"LONG", "LONG", "VARCHAR", "SHORT", "VARCHAR", "DOUBLE", "DOUBLE"};
        String[] valueEjemplo = {"esto es long", "esto es long", "esto es otro varchar", "esto es short", "esto es varchar", "esto es double", "esto es double"};

        for (int index = 0; index < tipoDato.length; index++) {
            System.out.println((index+1)+": "+tipoDato[index]+" "+ valueEjemplo[index]);
            if (tipoDato[index].equals("VARCHAR")){
                System.out.println("Detectado VARCHAR");
                valueEjemplo[index] = "\"" + valueEjemplo[index] + "\"";
                System.out.println("Modificado el value ahora vale "+valueEjemplo[index]);
            }
        }

        for (int index = 0; index < tipoDato.length; index++) {
            System.out.println((index+1)+": "+tipoDato[index]+" "+ valueEjemplo[index]);
        }
    }
}

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".