PDA

Ver la Versión Completa : graficar el contenido de un TRichEdit


ber
22-11-2005, 18:52:19
Hola que tal como estan todos: Necesito una recomendacion para graficar el contenido de un TRichEdit, El formato del archivo es asi;

tiempo, x, y, z, concIntervalo1, concIntervalo2.......etc
1, 1, 2, 5, 0.548666, 1.86548.............etc

no me interesa el tiempo, pero si la x, y, z y la concentracion en los diferentes intervalos; la idea es graficar un punto por cada valor en los intervalos, el problema que tengo es que no se como decirle a mi programa que tome solo los valores que necesito. Lo que estoy haciendo es tomar en una variable el valor de toda la primer linea:

for k=1 to numtLneas do
ss:=Form2.RichEdit1.Lines[k]
........
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.

Salu2

dec
22-11-2005, 20:46:35
Hola,



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...



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í:


// 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;

ber
22-11-2005, 21:39:51
Gracias Dec es justo lo que necesitaba. Te agradesco mucho tu respuesta.

Muchas gracias.

Salu2