delphi 读取文本的问题
我i你you她her你们you你们的your……一个txt文本内容如上,如何做到输入左边的字符串就可以得到右边的字符串新手,给出所有代码吧,学习下...
我 i
你 you
她 her
你们 you
你们的 your
… …
一个txt文本内容如上,如何做到输入左边的字符串就可以得到右边的字符串
新手,给出所有代码吧,学习下 展开
你 you
她 her
你们 you
你们的 your
… …
一个txt文本内容如上,如何做到输入左边的字符串就可以得到右边的字符串
新手,给出所有代码吧,学习下 展开
3个回答
展开全部
假设你的文本文件是 C:\1.txt
假设文件中“我“和“i"之间的间隔是 Tab
那么代码如下
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
FList: TStrings;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(FList.Values[Edit1.Text]);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
s1,s2: TStrings;
i: Integer;
begin
FList := TStringList.Create;
s1 := TStringList.Create;
s2 := TStringList.Create;
s1.LoadFromFile('c:\1.txt');
for i := 0 to s1.Count - 1 do begin
s2.Clear;
s2.Delimiter := Char(VK_TAB);
s2.DelimitedText := s1.Strings[i];
if s2.Count = 2 then
FList.Values[s2.Strings[0]] := s2.Strings[1];
end;
s2.Free;
s1.Free;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FList.Free;
end;
end.
假设文件中“我“和“i"之间的间隔是 Tab
那么代码如下
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
FList: TStrings;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(FList.Values[Edit1.Text]);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
s1,s2: TStrings;
i: Integer;
begin
FList := TStringList.Create;
s1 := TStringList.Create;
s2 := TStringList.Create;
s1.LoadFromFile('c:\1.txt');
for i := 0 to s1.Count - 1 do begin
s2.Clear;
s2.Delimiter := Char(VK_TAB);
s2.DelimitedText := s1.Strings[i];
if s2.Count = 2 then
FList.Values[s2.Strings[0]] := s2.Strings[1];
end;
s2.Free;
s1.Free;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FList.Free;
end;
end.
追问
好像没有效果
追答
我这里运行很正常 估计是你文件的格式不是以TAB分隔 要么文件路径错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单,把这个加载到ini里,key=value ,查key返回value即可,或者放到map里
追问
给个完整的代码吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询