Ver Mensaje Individual
  #2  
Antiguo 22-11-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por ber
Hola que tal como estan todos: Necesito una recomendacion para graficar el contenido de un TRichEdit (...)
Creo que puedes prescindir del "TRichEdit", puesto que parece que el contenido del mismo te serviría para "graficar" no sé qué asunto, pero, en todo caso, al usuario dicho contenido del "TRichEdit" no le diría mucho...


Cita:
Empezado por ber
Podrian decirme alguna forma de avanzar sbre la linea y tomar en variables solo los valores que necesito. Tal vez me podria valerme de la coma que lleva el formato del archivo.
Respecto de esto último sí, definitivamente, el que tengas los "datos" separados por comas en cada una de las filas del "archivo" que te interesa ayudará en lo que nos ocupa. Respecto de lo primero, vamos a intentarlo, fíjate en el siguiente código fuente, el cual comento, por ver si puedes seguirlo sin problemas: si los tienes no dudes en comentarlos por aquí:

Código Delphi [-]
// Un método cualquiera de un formulario, que,
// para este "ejemplo" puede servirnos: se tra-
// ta del evento "OnClick" de un botón situado
// en un determinado formulario.
//
procedure TForm1.Button1Click(Sender: TObject);
var
  i,j: integer; // Variables "contadores"
  linea, contenido: TStrings; // Contenido y líneas
begin
  // Creamos la variable de tipo "TStringList" que
  // ha de albergar el contenido del texto cuyas lí-
  // neas nos interesa ir desmenuzando.
  //
  contenido := TStringList.Create;
  try
    // Cargamos en la variable el contenido de un
    // hipotético archivo cuyas líneas conforman
    // una serie de datos separados por comas. He
    // aquí las que podrían ser dos líneas de este
    // supuesto archivo:
    //
    // Líneas del archivo:
    //
    // 1,2,3,4,5
    // a,b,c,d,e
    //
    contenido.LoadFromFile('C:\archivo.txt');
    //
    // Vamos a recorrer todas las líneas del archivo
    // ahora contenidas en la variable "contenido".
    //
    for i := 0 to contenido.Count-1 do
    begin
      // Por cada línea crearemos una variable de ti-
      // po "TStringList", en que albergaremos luego,
      // como queda dicho, cada una de las líneas del
      // contenido del archivo.
      //
      linea := TStringList.Create;
      try
        // Ojo a esto, que es lo crucial en este caso:
        // Se trata de cargar cada una de las líneas en
        // la variable "linea", pero, utilizando para
        // ello su propiedad "CommaText". Esto es así
        // porque aprovecharemos que cada una de las
        // líneas contiene datos separados por comas
        // para luego poder recorrer cada uno de los
        // datos. Quiere decirse que en realidad la
        // variable "linea" contendrá al cabo tantos
        // elementos como datos contenga separados por
        // coma la línea que estamos ahora procesando
        // de la variable "contenido".
        //
        linea.CommaText := contenido.Strings[i];
        //
        // Por cada una de las líneas (datos, ya por
        // separado) de la variable "linea"...
        //
        for j := 0 to linea.Count-1 do
        begin

          // Aquí estamos en donde queríamos llegar.
          // En este punto estamos accediento a todos
          // los datos contenidos en la variable "linea"
          // uno por uno. Es decir, si estamos cargando
          // en "contenido" un archivo con solamente dos
          // líneas que sean las que arriba se menciona-
          // ron a modo de ejemplo, la secuencia de men-
          // sajes que veríamos si ejecutamos el método
          // en que se contiene este código sería tal
          // que así:
          //
          // 1
          // 2
          // 3
          // 4
          // 5
          // a
          // b
          // c
          // d
          // e
          //
          ShowMessage(linea.Strings[j]);
          //
          //
          // Evidentemente, tú no te limitarías a mos-
          // trar los datos mediante un mensaje, sino
          // que, los utilizarías para llevar a cabo
          // la tarea que te sea menester.
          //
          //
        end;
      finally
        linea.Free; // Liberamos la variable "linea"
      end;
    end;
  finally
    contenido.Free; // Liberamos la variable "contenido"
  end;
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita