none
Extraer caracteres y numeros de un textbox multilinea RRS feed

  • Pregunta

  • hola, tengo un problema con un traductor de Operaciones de bajo nivel... Abro un archivo de texto en un textbox pero necesito extraer de cada linea un comando y un numero.. estan separados por un espacio... y necesito guardarlo en variables por que luego hare una busqueda en una base de datos... he encontrado en un viewlist pero yo necesito manejar las variables
    viernes, 23 de marzo de 2012 21:56

Todas las respuestas

  • ¿Y cuál es el problema que tiene?  Sabe que cada línea tiene el comando y el número separados por un espacio.  Simplemente es cuestión de separar ambos e interpretar el texto como un número.  Si quiere procesar todas las líneas a la vez, puede crear una clase con las propiedades Comando y Valor y almacenarlos en una lista tipo List<>.  ¿Qué parte del procedimiento se le dificulta?

    Jose R. MCP

    viernes, 23 de marzo de 2012 22:38
  • se me dificulta la parte de sacar del texbox el texto y la parte del condicional (caracter-espacio-numero) y guardarlo en las variables.. es la unica parte que no comprendo. he leido que el comando Split sirve, pero realmente no se como llevarlo a la codificacion. de antemano te agradezco
    viernes, 23 de marzo de 2012 23:06
  • hola

    dices que es un textox multilinea por lo que podrias hacer

    Dictionary<string, int> lista = new Dictionary<string, int>();

    foreach(string item in Textbox1.Lines){

       string[] partes = item.Split(' ');

       lista.Add(partes[0], Convert.ToInt32(partes[1]));

    }

    con esto tendrias parseado cada linea del textbox, por supuesto todas las lienas tienes un text como el que mencionas (caracter-espacio-numero)

    porque sino hay que agregar mas validaciones

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 23 de marzo de 2012 23:10
  • y donde quedan las variables?? Mira sere especifico... Necesito extraer el comando en una variable y el valor numerico en otro. Esto es debido a que todavia tengo que manejar el comando en mysql y asi hacer una busqueda para poder insertar todo en otro textbox algo asi

    archivo fuente                                      traductor fin

    se abre un archivo tipo ASM                 debe de extraer de cada mostrar la co-

    en un textbox                                       linea del textbox nsulta y el valo

    ejemplo                                               (alto 30) y separar las dos variables r numerico(30)

    alto 30                                                guardar las variables y hacer en un textbox

                                                                 un querry en cada linea

      en mysql con el comando(alto)

    viernes, 23 de marzo de 2012 23:27
  • fin 

    se imprime en cada linea el valor buscado por el querry

    y el valor numerico del codigo fuente (30)

    viernes, 23 de marzo de 2012 23:29
  • El potencial problema de usar un diccionario es que impone una restricción:  Los comandos no pueden repetirse.  Si esta restricción no es necesaria, entonces debe cambiarse el diccionario por otra colección.  Yo por eso sugerí el uso de List<> con una clase especial con las dos propiedades:

    public class Comando
    {
        public string Comando { get; set; }
        public int Valor { get; set; }
    
        public Comando(string comando, int valor)
        {
            Comando = comando;
            Valor = valor;
        }
    }
    
    //Y se usaría así, que es en esencia como Leandro lo muestra.
    List<Comando> comandos = new List<Comando>();
    foreach (string linea in Textbox1.Lines)
    {
        string[] partes = linea.Spli(' ');
        comandos.Add(new Comando(partes[0], Convert.ToInt32(partes[1])));
    }


    Jose R. MCP

    viernes, 23 de marzo de 2012 23:29
  • Y como Imprimiria los Valores en el Textbox siguiente..?? mira te pondre mi codigo y dime donde podria ir el diccionario?? o el codigo que me pusiste arriba en un sub??

    Imports System.IO
    Public Class Form1
        
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            txtNombre.ReadOnly = True


            txtContenido.ScrollBars = ScrollBars.Vertical


            OpenFileDialog1.Filter = "Archivos de Codigo Fuente |*.asm"


            OpenFileDialog1.Title = "Abrir archivo de Codigos Fuente"


            OpenFileDialog1.Multiselect = False
        End Sub


        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


            OpenFileDialog1.Filter = "Archivos de Codigo Fuente |*.asm"


            OpenFileDialog1.Title = "Abrir archivo de Codigo Fuente"


            If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then


                txtNombre.Text = OpenFileDialog1.FileName


                Dim objReader As System.IO.StreamReader


                objReader = File.OpenText(OpenFileDialog1.FileName)


                txtContenido.Text = objReader.ReadToEnd


                


            End If
        End Sub


        Private Sub txtContenido_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContenido.TextChanged


        End Sub


        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
          
            




        End Sub




    End Class

    viernes, 23 de marzo de 2012 23:54
  • Ayudenme Por favor
    sábado, 24 de marzo de 2012 0:10
  • pero el codigo no lo pondrias en el boton "traducir" o sea en el evento del "button2"

    el de la izquierda es un textbox multiline, pero si el de la izquierda no lo es porque muestras valores por linea ? no se que sera la traduccion, imagino eso sabes hacerlo

    lo que no se es que quiere imprimer, si hasta ahora solo estas parseando y poasando linea en item de una lista con dos valores

    que es lo que quieres pasas a un textbox ? si ya lo tienes en un textbox antes de parserarlo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 24 de marzo de 2012 2:21
  • el textbox de la izquierda es donde lee el archivo asm es multilinea al igual que el de la derecha  lo que necesita imprimir seria la busqueda en my sql  de cada linea( eso lo hare con la variable en caracteres) y el numero de la derecha de cada linea en el textbox izquierdo de ahi que necesite en variables cada palabra y cada numero
    domingo, 25 de marzo de 2012 1:26
  • pero aun no confirmaste como se implemento el parse de los datos del primer texto

    ademas tampoco indicas como te conectas a mysql

    http://social.msdn.microsoft.com/Forums/es/vcses/thread/2cd6deaa-1646-4479-9636-6e83d7312062

    estas usando el conector de ado.net para mysql?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 25 de marzo de 2012 4:31
  • si estoy usando el conector .net de mysql en cuanto al parseo es lo que quiero saber... realmente no se parsear y menos crear un diccionario o una lista. se como seleccionar los datos de la db pero no se parsear de ahi sacar las variables
    domingo, 25 de marzo de 2012 22:32