Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Leer cada linea de un memo y como determinar si llego al final (https://www.clubdelphi.com/foros/showthread.php?t=48553)

douglas 27-09-2007 18:29:18

Leer cada linea de un memo y como determinar si llego al final
 
bueno me dejaron un reconocedor de lenguajes, lo que necesito es como leer linea por linea hasta el final de un memo, necesito ayuda

ArdiIIa 27-09-2007 18:32:11

Código Delphi [-]
For I := 0 To Memo1.Lines.Count -1 DO
   TextoLinea := Memo1.Lines[i];

ContraVeneno 27-09-2007 18:32:35

las propiedades lines.item y lines.count te pueden ayudar para armar un ciclo for

douglas 27-09-2007 18:37:06

gracias por la ayuda y perdon que abuse pero si quisiera guardar cada linea en un vector, caracter por caracter, como lo harian, perdon chikos por las molestias

ContraVeneno 27-09-2007 18:40:48

como dije en el hilo donde iniciaste:

¿como has intentado hacerlo tu?

ArdiIIa 27-09-2007 18:41:09

Entendiendo por un vector un array, podemos decir que un string en sí, es un array de caracteres, de tal modo que se podría recorrer el string/array también mediante un bucle.
No obstante, tal vez debería indicar o concretar que es lo que quieres hacer...

douglas 27-09-2007 18:49:15

mira pues quisiera meter, la primera linea en un array, para hacer lo siguiente:

letras={a,b,c,d,e,f}

suponiendo que esta es la primer linea, quiero hacer esto grabar solo lo que esta dentro de las llaves y que el array se llame como la palabra que esta detras del igual.

es lo unico que tengo pensado, y no e intentado nada mas porque apenas y me inicion en delphi, pero es una solucion no.

porfa ayudenme muchachos

ArdiIIa 27-09-2007 19:07:47

Bueno, pues veo que ya tenías esta pregunta por otro hilo y a pesar de las respuestas que te han dado, parece que no has evolucionado mucho en tu pregunta.

Visto que mas o menos ya sabes como tratar las líneas de un Memo, ahora te recomiendo que leas sobre el tratamiento de cadenas y manejo de arrays.

No solamente se aprende preguntando, a veces, también es bueno intentarlo.

Me remito a la pregunta de egostar ??

douglas 27-09-2007 19:39:01

ok mira probe hacer esto ahorita

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
area:array[1..15] of string;
begin
for i:=0 to memo1.Lines.Count-1 do
begin
      area[i]:=memo1.Lines[i];
end;
 edit1.Clear;
 edit1.Text:=area[1];
end;

segun yo me tendria que haber insertado el texto de la linea 1 en el edit, pero no fue asi

ContraVeneno 27-09-2007 20:02:00

yo y mi bocota... dije puras mentiras porque tuve uno de esos momentos llamados "lapsus brutus"...

el problema es que me esta sucediendo muy seguido ultimamente...
:(

en fin..
si no te insertó la linea 1

¿que fue lo que puso?

douglas 27-09-2007 20:13:58

no hay pena contraveneno

mira ya pude pero suceque me lee todo el memo, pero necesito que me lea una linea primero y luego otra, te muestro el codigo

procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
area:array[1..15] of string;
begin
for i:=0 to memo1.Lines.Count-1 do
edit1.Clear;
edit1.Text:=memo1.Lines.GetText;
end;

pero de esta manera me lee todo el memo, io necesito ordenarle que lo haga linea por linea.

amezeta32 27-09-2007 20:58:19

Saludos a todos!!!

procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
area:array[1..15] of string;
begin
for i:=0 to memo1.Lines.Count-1 do
edit1.Clear;
edit1.Text:=memo1.Lines.Strings[i];//prueba de esta forma
end;

Lepe 27-09-2007 20:58:21

Cita:

Empezado por douglas (Mensaje 234419)
ok mira probe hacer esto ahorita

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
area:array[1..15] of string;
begin
for i:=0 to memo1.Lines.Count-1 do
begin
      area[i]:=memo1.Lines[i];
end;
 edit1.Clear;
 edit1.Text:=area[1];
end;

segun yo me tendria que haber insertado el texto de la linea 1 en el edit, pero no fue asi

Ojito con ese código amigo mio. El array empieza en el índice 1, mientras que el memo empieza en el índice cero, por tanto, la primera vez que entra en el bucle:
i = 0
area[0] := memo.lines[0]
eso debería dar un error de esos que asustan ;), ya que estas escribiendo en "area" en un índice que no existe.

La solución más fácil : var area:array[0..15] of string; ;)

Código Delphi [-]
....
 edit1.Clear;
 edit1.Text:=area[0];
end;
Ahora si funciona como esperabas, ¿verdad?

Saludos

douglas 27-09-2007 21:32:10

gracias lepe buena onda, me funciono re bien el codigo me queda asi

procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
area:array[1..15] of string;
begin
for i:=0 to memo1.Lines.Count-1 do
begin
area[i+1]:=memo1.Lines[i];
end;
end;

bueno ahora ya sabemos que cada linea del memo esta en cada variable del array.

pero ahora te vuelvo a molestar con otra pregunta:

a[1]:='hola'
suponiendo que lo anterio fue capturado en la primer linea del memo, pero ahora eso lo quiero pasar a otro array pero de esta forma

b[1]:='h';
b[2]:='o';
b[3]:='l';
b[4]:='a';

existen algun modo???? ayudenme si

ArdiIIa 28-09-2007 13:39:25

No se ese empeño de utilizar arrays para el tratamiento de cadenas...:eek:

mira este ejemplo:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var
I,Z : Integer;
Texto : string;
begin
Edit1.Text := '';
  For I := 0 To Memo1.Lines.Count -1 DO
    Texto := Memo1.Lines[i];
    For Z := 0 To Length(Texto) DO
      Edit1.Text := Edit1.Text + Texto[Z] + '-' ;
end;

En él, se maneja un string como un array.

Tal como te dije anteriormente, creo que deberías leer algo sobre el tratamiento y tipo de variables en Delphi.


¡Por favor, no me escribas a mi correo privado con estas cuestiones...!

Lepe 28-09-2007 14:20:35

douglas: Lo primero es informarte de como "trabajamos" aqui. Cuando entramos en el foro, vamos directo al menú Enlaces -> hilos suscritos, si alguien ha aportado un nuevo mensaje en el hilo, éste tendrá un icono diferente y el texto en negrita. Después solemos ir a "Enlaces -> Temas de hoy" y vemos los hilos en los que no hemos participado aún.

Por tanto, no es necesario enviar un mensaje privado a los que te han ayudado, ya que es doble molestia para ti, y para nosotros, ya que al recibir un mensaje el foro nos avisa, lo abrimos, leemos.... viendo después que es lo mismo que has puesto en este hilo.

Por otra parte el espíritu del foro es dar la solución en un hilo, (que pueda ser encontrado con las búsquedas de otras personas con tu misma inquietud), si lo resolvemos por mensajes privados, nadie más se puede beneficiar de la ayuda prestada.

Te recomiendo que leas la guía de estilo para que tengas presente la forma correcta de preguntar y responder.

Saludos


La franja horaria es GMT +2. Ahora son las 17:09:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi