|
想当的详细虽然不能说是最简单的但是你也找不着比着个更好的了[s:117]
下面还有看2楼
技巧,就是一些常用到的,如选择读取文件,查找字串等
用OpenDialog1打开一个文件,路径显示在Edit1.Text中
但是我们只要得到这个文件名就行了,那我们使用函数ExtractFileName(Edit1.Text)
ExtractFileName作用就是返回文件名及扩展名,\\前面的就去掉了
函数,封装在SysUtils单元中
API下最好这样写这个函数:
function ExtractFileName(FileName: string): string;
begin
while Pos('\\', FileName) <> 0 do Delete(FileName, 1, Pos('\\', FileName));
while Pos('/', FileName) <> 0 do Delete(FileName, 1, Pos('/', FileName));
Result := FileName;
end;
ExtractFileDir函数从文件名中抽取目录名
function ExtractFilePath(FileName: string): string;
begin
Result := '';
while ((Pos('\\', FileName) <> 0) or (Pos('/', FileName) <> 0)) do
begin
Result := Result + Copy(FileName, 1, 1);
Delete(FileName, 1, 1);
end;
end;
试一下就明白是二什么的了,上面二个真像一个右一左
还他们倒底用到那里?记得下面这句不,对了,就是网马生成器:
procedure TForm1.Filehtm;
VAR
f:TEXTfile;
st:string;
begin
assignfile(f,ExtractFileDir(Application.Exename)+'\\ray.htm');
//很明显ray.htm要生成在主程序目录下。
st:=Edit1.Text+ExtractFileName(Edit4.Text) +Edit2.Text+Edit5.Text+Edit3.Text;//把几个的Text相加
// 留下文件名相加
rewrite(f); //建立
writeln(f,st); //输出
closefile(f); //关闭文件
end;
我们看到函数中有出现多个Pos,那是乍样工作的呢
我们来看Pos字串的例子
如下1234.245.6788
要把他分成1234,245,6788三段,很简单 :
i:integer;
Edit1.Text:='1234.245.6788'
i:=pos('.',Edit1.Text);
//i是整数,这里i其实等于5,用IntToStr转过来就看到是5了。1234加上'.'共5个字符
Edit2.Text:=copy(Edit1.Text,1,i-1); copy复制
//Edit2.Text等于1234?对copy复制意思,'.'在i-1时被减去了。
我们应用一下Edit1.Text是用户Edit2.Text是密码Edit3.Text是所在组
var
i:integer;
DKin,ss:string;
begin
DKin:=Edit1.Text+'>'+Edit2.Text+'>'+Edit3.Text;
i:=pos('>',DKin);
Edit4.Text:=copy(DKin,1,i-1)
怎样得到第二个?
DKin:=copy(DKin,i+1,length(DKin));
i:=pos('>',DKin);
setc:=copy(DKin,1,i-1);
这段 while Pos('\\', FileName) <> 0 do Delete(FileName, 1, Pos('\\', FileName));意思是?
while do 循环语句,Pos('\\', FileName) <> 0 是找到FileName变量中所有'\\'
Delete是删除。那就留下文件和扩展名了。
读一个TXT文件:
var
S: String;
F: TextFile;
begin
AssignFile(F, 'C:\\File.txt'); // 将C:\\MyFile.txt文件与F变量建立连接,后面可以使用F变量对文件进行操作。
Reset(F); // 打开文件
Readln(F, S); // 读取一行文本到S变量中
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
ss:string;
F: TextFile;
begin
AssignFile(F, 'C:\\File.txt'); // 将C:\\MyFile.txt文件与F变量建立连接,后面可以使用F变量对文件进行操作。
Reset(F); // 打开文件
Readln(F, ss); // 读取一行文本到S变量中
i:=pos('>',ss);
Edit1.Text:=copy(ss,1,i-1);
ss:=copy(ss,i+1,length(ss)); //密码>A组
i:=pos('>',ss);
Edit2.Text:=copy(ss,1,i-1);
Edit3.Text:=copy(ss,i+1,length(ss)); //A组
end;
这样的教程如再说不够详细!我要杀人:) |
|