我有个文本文件,格式就象这样的:
ABDDPLLL氨苯喋啶片★●※ 1601747TA1
ABDZPL 阿苯达唑片※ 0303154TA1
ABLSLL 爱宝疗栓☆○ 1906001SP1
ABLYLL 爱宝疗液☆○ 1906001SL1
ABMS 阿波莫斯 9999386YB1
ABQMSZDA氨苄青霉素针(氨苄西林)★●※ 0101003IJ1
ABTDBZBT阿贝他(苯扎贝特片)☆○ 1504729TA1
ABWP 安博维片 9999131YB1
ABXJN 氨必仙胶囊 0101003CP1
ABXLNLZX氨苄西林钠氯唑西林钠 0101031IJ1
ABZDYBLS艾本针(伊班瞵酸钠)☆○ 1499646IJ1
我需要把这个文本文件读取到DEPHI中的一个控件中,然后我通过输入前面的药品名称拼音缩写,取出药品的名称.
这个控件用什么比较好,然后怎么样按拼音缩写取出药品的名称.
ABDDPLLL氨苯喋啶片★●※ 1601747TA1
ABDZPL 阿苯达唑片※ 0303154TA1
ABLSLL 爱宝疗栓☆○ 1906001SP1
ABLYLL 爱宝疗液☆○ 1906001SL1
ABMS 阿波莫斯 9999386YB1
ABQMSZDA氨苄青霉素针(氨苄西林)★●※ 0101003IJ1
ABTDBZBT阿贝他(苯扎贝特片)☆○ 1504729TA1
ABWP 安博维片 9999131YB1
ABXJN 氨必仙胶囊 0101003CP1
ABXLNLZX氨苄西林钠氯唑西林钠 0101031IJ1
ABZDYBLS艾本针(伊班瞵酸钠)☆○ 1499646IJ1
我需要把这个文本文件读取到DEPHI中的一个控件中,然后我通过输入前面的药品名称拼音缩写,取出药品的名称.
这个控件用什么比较好,然后怎么样按拼音缩写取出药品的名称.
那么我们只要通过查找在第一列指定的拼音缩写的项,那就可以轻而易举的把药品名称取出来
窗体上放一个edit用来接收输入,一个rich edit 载入文本内容
如果在edit中输入了字符,就调用rich edit的查找
代码就三五行吧
给你做了一下,可要多多地给我分哟!
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;type
TForm1 = class(TForm)
ListView1: TListView;
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure AddItem(str:string);
function FindItem(str:string):integer;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
ss:TStringlist;
i:integer;
begin
ss:=TStringlist.Create;
ss.LoadFromFile('c:/11.txt');
for i:=0 to ss.Count-1 do
AddItem(ss[i]);
ss.Free;
end;procedure TForm1.AddItem(str: string);
var
i,len:integer;
a,b,c:string;
begin
len:=length(str);
for i:=1 to len do if not(str[i] in ['A'..'Z']) then
begin
a:=copy(str,1,i-1);
delete(str,1,i-1);
break;
end;
str:=trim(str);
i:=pos(' ',str);
b:=copy(str,1,i-1);
delete(str,1,i-1);
c:=trim(str);
with ListView1.Items.Add do
begin
Caption:=a;
SubItems.Add(b);
SubItems.Add(c);
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin
i:=FindItem(edit1.Text);
if i>-1 then
showmessage('找到了,药名为:'+ListView1.Items[i].SubItems[0])
else
showmessage('没找到');
end;function TForm1.FindItem(str: string): integer;
var
i:integer;
begin
result:=-1;
str:=trim(UpperCase(str));
if str<>'' then for i:=0 to ListView1.Items.Count-1 do
if str=ListView1.Items[i].Caption then
begin
result:=i;
break;
end;
end;end.