Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mostrar el numero de renglon de un Memo (https://www.clubdelphi.com/foros/showthread.php?t=85796)

Pedron 06-05-2014 21:44:01

Mostrar el numero de renglon de un Memo
 
Hola buenas tardes mi duda es como hacer para mostrar el numero del renglon donde esta una palabra por ejemplo

Código:

Memo1

HOLA


que imprima esto en un .txt
Palara: HOLA renglon: 2

Lei que es algo mas o menos asi

Código Delphi [-]
var
 LineaActual : Integer;
begin
 LineaActual := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);

pero no se como mandarlo a un .txt

Código Delphi [-]
SaveToFile('archivo.txt');

es algo asi pero pues no se exactamente como acomodarlo de ante mano muchas gracias :)

ecfisa 07-05-2014 05:32:24

Cita:

Empezado por Pedron (Mensaje 476111)
Hola buenas tardes mi duda es como hacer para mostrar el numero del renglon donde esta una palabra ...

Hola Pedron.

Respondiéndo estríctamente a lo que solicitas:
Código Delphi [-]
function LineFirstOcurr(const aWord: string; M:TMemo): Integer;
var
  c, bw: Integer;
begin
  Result:= -1;
  bw:= AnsiPos(aWord, M.Text);
  if bw <> 0 then
  begin
    c:= 0;
    while c < bw  do
    begin
      if M.Text[c] = #10 then Inc(Result);
      Inc(c);
    end;
    Inc(Result); 
  end;
end;

Uso:
Código Delphi [-]
...
var
  fo: Integer;
begin
  fo:= LineFirstOcurr(Edit1.Text, Memo1);
  if fo <> -1 then
    ShowMessage(Format('La primer ocurrencia de "%s", está en la línea %d',
      [Edit1.Text, fo]));

Saludos :)

Pedron 07-05-2014 08:52:57

Ya lo resolvi muchisimas graciaaas :D

Casimiro Notevi 07-05-2014 09:42:05

Cita:

Empezado por Pedron (Mensaje 476125)
Ya lo resolvi muchisimas graciaaas :D

Ya te lo resolvieron, mejor dicho ;)

nlsgarcia 07-05-2014 09:44:28

Pedron,

Cita:

Empezado por Pedron
...como hacer para mostrar el numero del renglón donde esta una palabra...que imprima esto en un .txt...

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   i, p : Integer;
   Msg : String;
   SL : TStringList;
   Search : Boolean;

begin

   SL := TStringList.Create;

   for i := 0 to Memo1.Lines.Count - 1 do
   begin
      Search := True;
      p := 0;
      while Search do
      begin
         p := PosEx(Edit1.Text, Memo1.Lines.Strings[i],p);
         if (p <> 0) then
         begin
            Msg := Format('Literal %s Encontrado en la Línea Número %d Posición %d',
                          [Edit1.Text,i,p]);
            MessageDlg(Msg,mtInformation,[mbOK],0);
            SL.Add(Msg);
            p := p + Length(Edit1.Text);
         end
         else
            Search := False;
      end;
   end;

   SL.SaveToFile('SearchWord.txt');

   SL.Free;

end;

end.
El código anterior en Delphi 7 bajo Windows 7 Professional x32, busca un literal en un TMemo y por cada ocurrencia muestra y salva en un archivo txt la línea y posición del literal encontrado.

Espero sea útil :)

Nelson.


La franja horaria es GMT +2. Ahora son las 21:03:34.

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