找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 2007|回复: 7

教你制作黑软的语音

[复制链接]

952

主题

2404

回帖

7286

牛毛

论坛管理员

论坛第一破人

积分
15904
发表于 2008-3-10 17:58:46 | 显示全部楼层
呵呵接1楼还有2个附件啊

614

主题

3047

回帖

4905

牛毛

二级牛人

站长

积分
4995
发表于 2008-3-10 18:02:53 | 显示全部楼层 来自 广东省
怎么不上传到一起

952

主题

2404

回帖

7286

牛毛

论坛管理员

论坛第一破人

积分
15904
 楼主| 发表于 2008-3-10 18:04:29 | 显示全部楼层
一工分了5个4个一起就传不了 了`不知道怎么回事情哈`才分了2次的

614

主题

3047

回帖

4905

牛毛

二级牛人

站长

积分
4995
发表于 2008-3-10 18:06:16 | 显示全部楼层 来自 广东省
哪你可以再修改一下1楼的帖子啊

614

主题

3047

回帖

4905

牛毛

二级牛人

站长

积分
4995
发表于 2008-3-10 18:06:48 | 显示全部楼层 来自 广东省
我帮你删除了,你可以重新修改一下1楼的帖子

952

主题

2404

回帖

7286

牛毛

论坛管理员

论坛第一破人

积分
15904
 楼主| 发表于 2008-3-10 18:10:39 | 显示全部楼层
好了`我发帖子的是后限制最多4个附件先在好拉 `

0

主题

8

回帖

10

牛毛

初生牛犊

积分
10
发表于 2008-3-29 00:45:22 | 显示全部楼层 来自 吉林省白城市
看不明白哦

952

主题

2404

回帖

7286

牛毛

论坛管理员

论坛第一破人

积分
15904
 楼主| 发表于 2008-3-10 17:57:39 | 显示全部楼层 |阅读模式
想当的详细虽然不能说是最简单的但是你也找不着比着个更好的了[s:117]
下面还有看2楼
技巧,就是一些常用到的,如选择读取文件,查找字串等

用OpenDialog1打开一个文件,路径显示在Edit1.Text中

但是我们只要得到这个文件名就行了,那我们使用函数ExtractFileName(Edit1.Text)

ExtractFileName作用就是返回文件名及扩展名,\\前面的就去掉了


函数,封装在SysUtils单元中
API下最好这样写这个函数:
function ExtractFileName(FileName: string): string;
begin
while Pos(&#39;\\&#39;, FileName) <> 0 do Delete(FileName, 1, Pos(&#39;\\&#39;, FileName));
while Pos(&#39;/&#39;, FileName) <> 0 do Delete(FileName, 1, Pos(&#39;/&#39;, FileName));
Result := FileName;
end;


ExtractFileDir函数从文件名中抽取目录名
function ExtractFilePath(FileName: string): string;
begin
Result := &#39;&#39;;
while ((Pos(&#39;\\&#39;, FileName) <> 0) or (Pos(&#39;/&#39;, 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)+&#39;\\ray.htm&#39;);
//很明显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:=&#39;1234.245.6788&#39;
  i:=pos(&#39;.&#39;,Edit1.Text);
//i是整数,这里i其实等于5,用IntToStr转过来就看到是5了。1234加上&#39;.&#39;共5个字符
  Edit2.Text:=copy(Edit1.Text,1,i-1); copy复制
//Edit2.Text等于1234?对copy复制意思,&#39;.&#39;在i-1时被减去了。

我们应用一下Edit1.Text是用户Edit2.Text是密码Edit3.Text是所在组
var
i:integer;
DKin,ss:string;
begin
DKin:=Edit1.Text+&#39;>&#39;+Edit2.Text+&#39;>&#39;+Edit3.Text;
i:=pos(&#39;>&#39;,DKin);
Edit4.Text:=copy(DKin,1,i-1)
怎样得到第二个?
DKin:=copy(DKin,i+1,length(DKin));
i:=pos(&#39;>&#39;,DKin);
setc:=copy(DKin,1,i-1);

这段 while Pos(&#39;\\&#39;, FileName) <> 0 do Delete(FileName, 1, Pos(&#39;\\&#39;, FileName));意思是?

while do  循环语句,Pos(&#39;\\&#39;, FileName) <> 0 是找到FileName变量中所有&#39;\\&#39;

Delete是删除。那就留下文件和扩展名了。

读一个TXT文件:
  var
    S: String;
    F: TextFile;
  begin
  AssignFile(F, &#39;C:\\File.txt&#39;); // 将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, &#39;C:\\File.txt&#39;); // 将C:\\MyFile.txt文件与F变量建立连接,后面可以使用F变量对文件进行操作。
Reset(F); // 打开文件
Readln(F, ss); // 读取一行文本到S变量中
i:=pos(&#39;>&#39;,ss);
Edit1.Text:=copy(ss,1,i-1);
ss:=copy(ss,i+1,length(ss)); //密码>A组
i:=pos(&#39;>&#39;,ss);
Edit2.Text:=copy(ss,1,i-1);
Edit3.Text:=copy(ss,i+1,length(ss)); //A组
end;

这样的教程如再说不够详细!我要杀人:)

录像.part01.rar

977 KB, 下载次数: 4

录像.part02.rar

977 KB, 下载次数: 5

录像.part03.rar

977 KB, 下载次数: 16

录像.part04.rar

977 KB, 下载次数: 14

录像.part05.rar

866 KB, 下载次数: 4

您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5用户社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-11 23:00 , Processed in 0.137579 second(s), 37 queries , Yac On.

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表