Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con 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
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
  #2  
Antiguo 01-05-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
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
  #3  
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
  #4  
Antiguo 01-05-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
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
  #5  
Antiguo 01-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
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
  #6  
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
  #7  
Antiguo 01-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 00:55:56.


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