如何从一个文本文件中单个读入字符,然后逐字写入memo或richedit 控件 ( 积分: 100 )

  • 主题发起人 主题发起人 清风杨
  • 开始时间 开始时间

清风杨

Unregistered / Unconfirmed
GUEST, unregistred user!
问题同上,请各位高手帮忙,我刚搜索了一下,没有找到类似题目!!
谢谢!!
在timer的事件中写
 
问题同上,请各位高手帮忙,我刚搜索了一下,没有找到类似题目!!
谢谢!!
在timer的事件中写
 
你先把它全部取出來,放在另一個臨時的MEMO裡。
然後通過函數Length、pos取一個,再加上前一個MEMO裡放到新的MEMO裡就可以了。
 
可不可以说详细一点,
怎样确定每个字符的位置,才能保证不会漏掉或者重复
只用length 可以吗?
 
大家帮帮忙
 
能否确定字符个数
 
刚写的一个完整例子,D6调试通过。
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Timer1: TTimer;
OpenDialog1: TOpenDialog;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
slTEMP:TStrings;
nId,nCount:Integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
slTEMP:=TStringList.Create;
end;

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

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Timer1.Enabled:=False;
slTEMP.LoadFromFile(OpenDialog1.FileName);
nCount:=Length(slTEMP.Text);
nId:=1;
Timer1.Enabled:=True;
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if nId<=nCount then
begin
Memo1.Text:=Memo1.Text+slTEMP.Text[nId];
inc(nId);
end else
Timer1.Enabled:=False;
end;

end.
 
谢谢red03hunter 和各位热心网友
我今晚会调试程序 如果通过
我会给分的
 
不错
使用TStringList对象可以自动将分行符转换出来
然后先从第一行开始,在行内部一字一字分解
然在Memo中设置SelLength=0
设置SelStart=Length(memo1.text)
从TStringList对象中取出字符后Memo1.SelText=字符就可以了
 
谢谢大家
已经调试过了
 
多人接受答案了。
 
后退
顶部