Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-05-2014
Mantixd Mantixd is offline
Miembro
NULL
 
Registrado: dic 2013
Posts: 17
Poder: 0
Mantixd Va por buen camino
Smile Guardar datos de renglón

Buenas tardes mi duda es la siguiente, supongamos que tengo un arreglo

Código Delphi [-]
 DirAsm: Array[1..73] of string =  ('ALIGN','.ALPHA','ASSUME','.CODE','COMM','COMMENT',
                                        '.CONST','.CREF','.DATA','DB','DD','DF','DOSSEG','DQ',
                                        'DT','DW','ELSE','END','ENDIF','ENDM','ENDP','ENDS','EQU',
                                        '.ERRnn','EVEN','EXITM','EXTRN','.FARDATA','.FARDATA?',
                                        'GROUP','IF','IF1','IF2','IFB','IFDEF','IFDIF','IFE','IFIDN',
                                        'IFNB','IFNDEF','INCLUDE','INCLUDELIB','IRP','IRPC','LABEL',
                                        '.LALL','.LFCOND','.LIST','LOCAL','MACRO','.MODEL','NAME',
                                        'ORG','OUT','PAGE','PROC','PUBLIC','PURGE','.RADIX','RECORD',
                                        'REPT','.SALL','SEGMENT','.SEQ','.SFCOND','.STACK','STRUC',
                                        'SUBTTL','.TFCOND','TITLE','.XALL','.XCREF','.XLIST');

Tengo un memo donde escribo una palabra y la comparo con ese arreglo, ahora mi duda es como hacer que cuando encuentre esa palabra me tome todos los datos que estan en ese renglon y me los guarde en otro memo POR EJEMPLO SUPONGAMOS QUE EN EL MEMO ESCRIBO ESTO:

HOLA DB HOLA

La palabra que encontraria al compararse el memo con el arreglo seria DB por lo tanto quiero que tome todo el renglon

HOLA DB HOLA

y me lo guarde en otro memo, la comparacion ya la tengo pero no se como tomar solo los datos de ese renglon y los guarde en el memo de ante mano muchas gracias espero puedan ayudarme
Responder Con Cita
  #2  
Antiguo 01-05-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Mantixd Ver Mensaje
Tengo un memo donde escribo una palabra y la comparo con ese arreglo, ahora mi duda es como hacer que cuando encuentre esa palabra me tome todos los datos que estan en ese renglon y me los guarde en otro memo POR EJEMPLO SUPONGAMOS QUE EN EL MEMO ESCRIBO ESTO:

HOLA DB HOLA

La palabra que encontraria al compararse el memo con el arreglo seria DB por lo tanto quiero que tome todo el renglon

HOLA DB HOLA

y me lo guarde en otro memo...
Hola Mantixd.

Según entiendo de tu mensaje, podrías hacer:
Código Delphi [-]
...
const
  DIRASM: array[1..73] of string = ( ... );

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
var
  i: Integer;
begin
  if Key = #13 then
    for i:= Low(DIRASM) to High(DIRASM) do
      if AnsiPos(DIRASM[i],Memo1.Lines[Memo1.Lines.Count-1]) <> 0 then
        Memo2.Lines.Add(Memo1.Lines[Memo1.Lines.Count-1]);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 01-05-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

No especificaste en que momento querías transferir las líneas. En el mensaje anterior se van pasando de forma interactiva (a medida que agregás una nueva línea), pero si deseas hacerlo de forma diferida:
Código Delphi [-]
procedure TForm1.btnPasarLineasClick(Sender: TObject);
var
  i,j: Integer;
begin
  for i:= 0 to Memo1.Lines.Count-1 do
    for j:= Low(DIRASM) to High(DIRASM) do
      if AnsiPos(DIRASM[j], Memo1.Lines[i]) <> 0 then
        Memo2.Lines.Add(Memo1.Lines[i]);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 01-05-2014
Mantixd Mantixd is offline
Miembro
NULL
 
Registrado: dic 2013
Posts: 17
Poder: 0
Mantixd Va por buen camino
Si tienes razon disculpame quiero hacerlo al presionar un boton ese mismo boton comparara el memo con el arreglo y pues ara esa funcion, muchas gracias por tu respuesta eres muy amable

Pero creo que tampoco no me di a entender bien en mi explicacion jeje no solo quiero que me lea el primer renglon si no que me busque en todo el memo donde esta dato del arreglo y ya me lo mande al memo2 por ejemplo si tengo este codigo
Cita:
.model small
.stack
.data

Feliz db "=>$"
Serio db "=]$"
Decepcionado db "=/$"
Triste db "=<$"
Me deberia de poner estos datos en el memo2

Cita:
Feliz db "=>$"
Serio db "=]$"
Decepcionado db "=/$"
Triste db "=<$"
Responder Con Cita
  #5  
Antiguo 01-05-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

El código que te muestra el compañero en su anterior mensaje hace exactamente lo que tú precisas: buscar en todo el "Memo1" y almacenar en "Memo2" sólo las líneas en que se hubieran encontrado las palabras "clave". Lo que pasa es que para hacer eso tienes que recorrer el "Memo1" tal como lo hace el compañero, línea por línea, buscando en cada línea por cada palabra "clave".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 01-05-2014
Mantixd Mantixd is offline
Miembro
NULL
 
Registrado: dic 2013
Posts: 17
Poder: 0
Mantixd Va por buen camino
Lo que pasa es que al poner el codigo por ejemplo

Código Delphi [-]
const
 DirAsm: Array[1..74] of string =  ('db','ALIGN','.ALPHA','ASSUME','.CODE','COMM','COMMENT',
                                        '.CONST','.CREF','.DATA','DB','DD','DF','DOSSEG','DQ',
                                        'DT','DW','ELSE','END','ENDIF','ENDM','ENDP','ENDS','EQU',
                                        '.ERRnn','EVEN','EXITM','EXTRN','.FARDATA','.FARDATA?',
                                        'GROUP','IF','IF1','IF2','IFB','IFDEF','IFDIF','IFE','IFIDN',
                                        'IFNB','IFNDEF','INCLUDE','INCLUDELIB','IRP','IRPC','LABEL',
                                        '.LALL','.LFCOND','.LIST','LOCAL','MACRO','.MODEL','NAME',
                                        'ORG','OUT','PAGE','PROC','PUBLIC','PURGE','.RADIX','RECORD',
                                        'REPT','.SALL','SEGMENT','.SEQ','.SFCOND','.STACK','STRUC',
                                        'SUBTTL','.TFCOND','TITLE','.XALL','.XCREF','.XLIST');



procedure TForm1.SpeedButton2Click(Sender: TObject);
var
i:Integer;

begin

    for i:= Low(DIRASM) to High(DIRASM) do
      if AnsiPos(DIRASM[i],Memo1.Lines[Memo1.Lines.Count-1]) <> 0 then
        Memo2.Lines.Add(Memo1.Lines[Memo1.Lines.Count-1]);
end;

en el memo1 escribo esto

Código:
Feliz        db "=>$"
 Serio        db "=]$"
 Decepcionado db "=/$"
 Triste       db "=<$"
y presiono el boton para que haga la comparacion y solo me manda esto al memo2

Código:
Triste       db "=<$"
y pues se supone que el codigo esta bien no entiendo muy bien lo que pasa soy algo nuevo en esto :/
Responder Con Cita
  #7  
Antiguo 01-05-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Lo que pasa es que el código que tú utilizas:

Código Delphi [-]
var
  i:Integer;
begin
  for i:= Low(DIRASM) to High(DIRASM) do
    if AnsiPos(DIRASM[i],Memo1.Lines[Memo1.Lines.Count-1]) <> 0 then
      Memo2.Lines.Add(Memo1.Lines[Memo1.Lines.Count-1]);
end;

... no es el mismo que el que Daniel te propone arriba:

Código Delphi [-]
procedure TForm1.btnPasarLineasClick(Sender: TObject);
var
  i,j: Integer;
begin
  for i:= 0 to Memo1.Lines.Count-1 do
    for j:= Low(DIRASM) to High(DIRASM) do
      if AnsiPos(DIRASM[j], Memo1.Lines[i]) <> 0 then
        Memo2.Lines.Add(Memo1.Lines[i]);
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 01-05-2014
Mantixd Mantixd is offline
Miembro
NULL
 
Registrado: dic 2013
Posts: 17
Poder: 0
Mantixd Va por buen camino
Si entiendo a lo que te refieres lo que pasa es que yo lo acomode segun a mi modo porque lo que quiero es que al hacer click en un boton me lea automaticamente todo el memo1 y los datos encontrados los mande todos juntos al memo2, eso es lo que supongo yo que no me di a explicar bien.
Lo que el compañero me brindo (LO CUAL AGRADESCO MUCHISIMO) funciona al darle a una tecla o con un click pero yo lo que quiero es agregar un boton y al presionar ese boton lea todo y ponga lo encontrado en el memo2, muchas gracias por tus comentarios y consejos y lamento las molestias.
Responder Con Cita
  #9  
Antiguo 01-05-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No tienes que disculparte, pero, el código que ha puesto Daniel más arriba hace exactamente lo que precisas:

Código Delphi [-]
procedure TForm1.btnPasarLineasClick(Sender: TObject);
var
  i,j: Integer;
begin
  for i:= 0 to Memo1.Lines.Count-1 do
    for j:= Low(DIRASM) to High(DIRASM) do
      if AnsiPos(DIRASM[j], Memo1.Lines[i]) <> 0 then
        Memo2.Lines.Add(Memo1.Lines[i]);
end;

Ahí se recorre el "Memo1" línea a línea, se busca cada palabra clave en cada línea, y, si se encuentra, se añade la línea al "Memo2".
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 01-05-2014 a las 15:38:55.
Responder Con Cita
  #10  
Antiguo 01-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Mantixd,

Cita:
Empezado por Mantixd
...lo que quiero es que al hacer click en un botón me lea automáticamente todo el Memo1 y los datos encontrados (comparara el memo con el arreglo) los mande todos juntos al Memo2...
Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  RegAsm: Array[1..74] of string =  ('db','ALIGN','.ALPHA','ASSUME','.CODE','COMM','COMMENT',
                                     '.CONST','.CREF','.DATA','DB','DD','DF','DOSSEG','DQ',
                                     'DT','DW','ELSE','END','ENDIF','ENDM','ENDP','ENDS','EQU',
                                     '.ERRnn','EVEN','EXITM','EXTRN','.FARDATA','.FARDATA?',
                                     'GROUP','IF','IF1','IF2','IFB','IFDEF','IFDIF','IFE','IFIDN',
                                     'IFNB','IFNDEF','INCLUDE','INCLUDELIB','IRP','IRPC','LABEL',
                                     '.LALL','.LFCOND','.LIST','LOCAL','MACRO','.MODEL','NAME',
                                     'ORG','OUT','PAGE','PROC','PUBLIC','PURGE','.RADIX','RECORD',
                                     'REPT','.SALL','SEGMENT','.SEQ','.SFCOND','.STACK','STRUC',
                                     'SUBTTL','.TFCOND','TITLE','.XALL','.XCREF','.XLIST');

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Selecciona los Registros de Assembler de un TMemo con base en un Arreglo
procedure TForm1.Button1Click(Sender: TObject);
var
   SL: TStringList;
   i, j, k : Integer;
   Token : String;
   AuxStr : String;

begin

   SL := TStringList.Create;

   Memo2.Clear;

   for i := 0 to Memo1.Lines.Count - 1 do
   begin

      AuxStr := Memo1.Lines[i];

      for j := 1 to Length(AuxStr) do
      begin
         if (AuxStr[j] <> ' ') and (AuxStr[j] <> ',') then
            Token := Token + AuxStr[j]
         else
         begin
            SL.Add(Token);
            Token := EmptyStr;
         end
      end;

      SL.Add(Token);
      Token := EmptyStr;

      for j := 0 to SL.Count - 1 do
         for k := Low(RegAsm) to High(RegAsm) do
            if SL[j] = RegAsm[k] then
               Memo2.Lines.Add(Memo1.Lines[i]);

      SL.Clear;

   end;

   SL.Free;

end;

end.
El código anterior en Delphi 7 y Windows 7 Professional x32, analiza cada línea del TMemo1, las compara tipo Case Sensitive con un arreglo y si haya una ocurrencia copia dicha línea a TMemo2, siguiendo el mismo comportamiento sugerido en el ejemplo del Msg #4.

Espero sea útil

Nelson.
Responder Con Cita
  #11  
Antiguo 01-05-2014
Mantixd Mantixd is offline
Miembro
NULL
 
Registrado: dic 2013
Posts: 17
Poder: 0
Mantixd Va por buen camino
Muchas gracias nelson lo que es no saber mucho acerca de delphi lo bueno es que gracias a uds. Uno puede aprender mucho mas lo unico que vi es que en el memo 2 me imprime el dato 2 veces por ejemplo pongo

HOLA DB HOLA

y me lo imprime en el memo2

HOLA DB HOLA
HOLA DB HOLA

Muchisimas gracias a todos de verdad han sido de gran ayuda!
Responder Con Cita
  #12  
Antiguo 01-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Mantixd,

Cita:
Empezado por Mantixd
...lo unico que vi es que en el Memo 2 me imprime el dato (HOLA DB HOLA) 2 veces...


Revisa estas imágenes:





Las imágenes anteriores fueron tomadas del código sugerido en el Msg #10, funcionando correctamente según lo esperado, siguiendo el mismo comportamiento sugerido en el ejemplo del Msg #4.

Espero que sea útil

Nelson.
Responder Con Cita
  #13  
Antiguo 01-05-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Mantixd.

No voy a agregar nada a lo que David ha explicado perfectamente.

Solo se me ocurre mencionar que si deseas que funcione tanto para lo escrito en minúsculas como para mayúsculas, sólo hay que aplicar la función UpperCase a la línea que se está revisando:
Código Delphi [-]
procedure TForm1.btnPasarClick(Sender: TObject);
var
  i, j: Integer;
begin
  for i:= 0 to Memo1.Lines.Count-1 do
    for j:= Low(DIRASM) to High(DIRASM) do
      if AnsiPos(DIRASM[j], UpperCase( Memo1.Lines[i] )) <> 0 then 
        Memo2.Lines.Add(Memo1.Lines[i]);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #14  
Antiguo 01-05-2014
Mantixd Mantixd is offline
Miembro
NULL
 
Registrado: dic 2013
Posts: 17
Poder: 0
Mantixd Va por buen camino
Claro que me fue de mas util, y fue mi error lo que pasa es que vi en otras publicaciones el mismo codigo que tu mismo habias posteado pero para que lo imprimiera en un listbox creo jeje y en ese codigo pusiste esta linea asi

Código Delphi [-]
 if UpperCase(SL[j]) = UpperCase(DirAsm[k]) then

y pues en este codigo ya no pusiste la parte del UpperCase y yo si la habia dejado jeje y por eso me imprimia doble ya ahora si quedo todo solucionado muchas gracias Nelson!
Responder Con Cita
  #15  
Antiguo 03-05-2014
Pedron Pedron is offline
Miembro
NULL
 
Registrado: may 2014
Posts: 10
Poder: 0
Pedron Va por buen camino
Hola disculpen perdon que me entrometa por aqui, este codigo si me puede servir mucho pero lo que yo estoy buscando es que me imprima en un memo2 todos los datos que sean diferentes al arreglo, por ejemplo si tengo


Código Delphi [-]
HOLA DB HOLA

Que solo me guarde el

HOLA HOLA

lo que tengo es esto pero pues creo que me hace falta algo agradeceria mucho su ayuda

Código Delphi [-]
        SL := TStringList.Create;

  // ListBox5.Clear;

   for i := 0 to Memo1.Lines.Count - 1 do
   begin

      AuxStr := Memo1.Lines[i];

      for j := 1 to Length(AuxStr) do
      begin
         if (AuxStr[j] <> ' ') and (AuxStr[j] <> ',')
         then

            Token := Token + AuxStr[j]
         else
         begin
            SL.Add(Token);
            Token := EmptyStr;
         end
      end;

      SL.Add(Token);
      Token := EmptyStr;

      for j := 0 to SL.Count - 1 do
       for k := Low(DirAsm) to High(DirAsm) do

            if (UpperCase(Memo1.Lines[i])) <> (UpperCase(DirAsm[k]))


             then



              Memo2.Lines.Add(Memo1.Lines[i]);
Responder Con Cita
  #16  
Antiguo 03-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Pedron,

Cita:
...estoy buscando es que me imprima en un memo2 todos los datos que sean diferentes al arreglo...ejemplo...HOLA DB HOLA...guarde...HOLA HOLA...
Revisa este código:
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
   SL: TStringList;
   i, j, k : Integer;
   Token : String;
   AuxStr : String;

begin

   SL := TStringList.Create;

   Memo2.Clear;

   for i := 0 to Memo1.Lines.Count - 1 do
   begin

      AuxStr := Memo1.Lines[i];

      for j := 1 to Length(AuxStr) do
      begin
         if (AuxStr[j] <> ' ') and (AuxStr[j] <> ',') then
            Token := Token + AuxStr[j]
         else
         begin
            SL.Add(Token);
            Token := EmptyStr;
         end
      end;

      SL.Add(Token);
      Token := EmptyStr;

      for j := SL.Count - 1 downto 0 do
         for k := Low(RegAsm) to High(RegAsm) do
            if SL[j] = RegAsm[k] then
               SL.Delete(j);

      for j := 0 to SL.Count - 1 do
         Token := Token + SL[j] + ' ';

      Memo2.Lines.Add(Token);
      Token := EmptyStr;

      SL.Clear;

   end;

   SL.Free;

end;
El código anterior en Delphi 7 y Windows 7 Professional x32, analiza cada línea de TMemo1, las compara tipo Case Sensitive con un arreglo y copia dicha línea a TMemo2 eliminando cualquier ocurrencia encontrada.

Espero sea útil

Nelson.
Responder Con Cita
  #17  
Antiguo 03-05-2014
Pedron Pedron is offline
Miembro
NULL
 
Registrado: may 2014
Posts: 10
Poder: 0
Pedron Va por buen camino
Hola nlsgarcia Muchisimas gracias por tu respuesta tan rapida probe el codigo que me mandaste probe con elementos que no estan dentro del arreglo y pues los pone en el memo2 pero al poner un elemento que si esta dentro del arreglo me manda este error de ante mano muchisimas gracias.
Imágenes Adjuntas
Tipo de Archivo: jpg Captura.jpg (7,4 KB, 3 visitas)
Responder Con Cita
  #18  
Antiguo 03-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Pedron,

Cita:
Empezado por Pedron
...probé con elementos que no están dentro del arreglo y pues los pone en el Memo2 pero al poner un elemento que si esta dentro del arreglo me manda este error...List Index Out of Bounds...


Revisa esta imagen:



El código sugerido en el Msg #16 funciona según lo esperado como se puede apreciar en la imagen anterior.

Pregunto:

1- ¿Modificastes el código sugerido en el Msg #16?

2- ¿Que data utilizastes en el Memo1 que origino el error?, ¿Que valores tienes en el arreglo de comparación?.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 03-05-2014 a las 06:26:04.
Responder Con Cita
  #19  
Antiguo 03-05-2014
Pedron Pedron is offline
Miembro
NULL
 
Registrado: may 2014
Posts: 10
Poder: 0
Pedron Va por buen camino
Código Delphi [-]


const
  RegAsm : Array[1..30] of string = ('AX','BX','CX','DX','AH','AL',
                                     'BH','BL','BP','CH','CL','CS',
                                     'DH','DL','DI','DS', 'GS', 'IP',
                                     'SI','SP','SS', 'ES',
                                     'EAX','EBP','EBX','ECX',
                                     'EDI','EDX','EIP','ESIFE');

procedure TForm1.Button1Click(Sender: TObject);
var
 SL: TStringList;
   i, j, k : Integer;
   Token : String;
   AuxStr : String;

begin

  SL := TStringList.Create;

  Memo2.Clear;

   for i := 0 to Memo1.Lines.Count - 1 do
   begin

      AuxStr := Memo1.Lines[i];

      for j := 1 to Length(AuxStr) do
      begin
         if (AuxStr[j] <> ' ') and (AuxStr[j] <> ',') then
            Token := Token + AuxStr[j]
         else
         begin
            SL.Add(Token);
            Token := EmptyStr;
         end
      end;

      SL.Add(Token);
      Token := EmptyStr;

      for j := SL.Count - 1 downto 0 do
         for k := Low(RegAsm) to High(RegAsm) do
            if SL[j] = RegAsm[k] then
               SL.Delete(j);

      for j := 0 to SL.Count - 1 do
         Token := Token + SL[j] + ' ';

      Memo2.Lines.Add(Token);
      Token := EmptyStr;

      SL.Clear;

   end;

   SL.Free;
end;

ese es mi codigo que utilizo no le he cambiado ningun dato a tu codigo que me mandaste y pues al momento de poner AX me da ese error espero y puedas ayudarme saludos y muchas gracias!
Responder Con Cita
  #20  
Antiguo 03-05-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Pedron.

Ya habías creado un hilo con la consulta del mensaje #15, por favor no dupliques los temas ya que dificultan las búsquedas posteriores.

Código Delphi [-]
...
implementation

var
 Nemos: TStrings;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Nemos:= TStringList.Create;
  Nemos.CommaText:= 'ALIGN,.ALPHA,ASSUME,.CODE,COMM,COMMENT,.CONST,.CREF,'+
    '.DATA,DB,DD,DF,DOSSEG,DQ,DT,DW,ELSE,END,ENDIF,ENDM,ENDP,ENDS,EQU,.ERRnn,'+
    'EVEN,EXITM,EXTRN,.FARDATA,.FARDATA?,GROUP,IF,IF1,IF2,IFB,IFDEF,IFDIF,IFE,'+
    'IFIDN,IFNB,IFNDEF,INCLUDE,INCLUDELIB,IRP,IRPC,LABEL,.LALL,.LFCOND,.LIST,'+
    'LOCAL,MACRO,.MODEL,NAME,ORG,OUT,PAGE,PROC,PUBLIC,PURGE,.RADIX,RECORD,'+
    'REPT,.SALL,SEGMENT,.SEQ,.SFCOND,.STACK,STRUC,SUBTTL,.TFCOND,TITLE,.XALL'+
    ',.XCREF,.XLIST';
end;

procedure TForm1.btnProcesarClick(Sender: TObject);
var
  TS: TStrings;
  i,j: Integer;
  s: string;
begin
  Memo2.Clear;
  for i:= 0 to Memo1.Lines.Count-1 do
  begin
    TS:= TStringList.Create;
    try
      s:= EmptyStr;
      ExtractStrings([' '], [], PChar(Memo1.Lines[i]), TS);
      for j:= 0 to TS.Count-1 do
        if Nemos.IndexOf(TS[j]) = -1 then  s:= s + TS[j] + ' ';
      Memo2.Lines.Add(s);
    finally
      TS.Free;
    end;
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Nemos.Free;
end;
end.

Resultado:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Guardar datos en Base de Datos MySQL knnibal Conexión con bases de datos 6 23-06-2011 15:36:42
añadir un renglón a un dbgrid olybola Varios 8 07-06-2010 21:23:15
Ir al ultimo renglon en un StringGrid palets Varios 2 18-02-2009 22:11:59
Guardar en 1 base de datos SQL, datos procedentes de 2 tablas distintas adaypr C++ Builder 1 05-09-2006 11:56:33
agregar un renglón al dbgrid olybola Conexión con bases de datos 1 26-06-2003 20:58:03


La franja horaria es GMT +2. Ahora son las 09:10:55.


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
Copyright 1996-2007 Club Delphi