请问这样的问题如何实现?:)(100分)

  • 主题发起人 主题发起人 liuyang
  • 开始时间 开始时间
L

liuyang

Unregistered / Unconfirmed
GUEST, unregistred user!
就是因为从缓冲区中复制的文件不是全能正确显示的,
由于有的是绝对路径,说白了就一句话,
就是将html文件中的路径查找出来判断其是绝对路径还是相对路径,
如果是相对路径不用管它,如果是绝对路径就应该将其改为相对路径
那如何转换呢?
 
"说白了"也没说明白。

html文件哪里来的?
 
自己分析HTML源码,或者到网上找一个Parse控件,分析并替换。
 
恐怕得自己来分析吧。
 
liuyang:少把CSDN的那一套带到这里来!你的另一个帖子请自觉结束。
 
to wjiachun:
我只是想问问 问题,让更多的人帮我。请不要这样。
我很佩服你对dfw的负责态度。:)
 
分特!我又不是让你结束这个问题 :(
不管本意如何,越是无聊的帖子越是灌水的人多——只要有分。
 
以前有一个贴子,你修改一下就可以了!!!!
aimingoo说过:
Function RightSub(s:string; Len:Integer) : string;
begin
Delete(s,1,Length(s)-Len);
Result := s;
end;
//交换字串
procedure swapStr(var s1,s2 : string);
var tempstr : string;
begin
tempstr := s1;
s1 := s2;
s2 := tempstr;
end;

// 取两个目录的相对路径,注意串尾不能是'/'字符!
Function GetRelativePath(Source,Dest : string) : string;
Function GetPathComp(s1,s2:string) : integer;
//比较两路径字符串头部相同串的函数
begin
if length(s1) > Length(s2) then swapStr(s1,s2);

Result := pos(s1,s2);
while Result = 0 do
begin
if s1 = '' then exit;
s1 := ExtractFileDir(s1);
Result := pos(s1,s2);
end;

if Result <> 0 then Result := Length(s1);
if Result = 3 then Result := 2;
//修正因ExtractFileDir()处理'c:/'时产生的错误.
End;

Function GetRoot(s : ShortString) : string;
//取Dest的相对根路径的函数
var i : integer;
begin
Result := '';
for i := 1 to Length(s) do
if s = '/' then Result := Result + '../';
if Result = '' then Result := './';
//如果不想处理成"./"的路径格式,可去掉本行
end;

var RelativRoot, RelativSub : string;
HeadNum : integer;
begin
Source := UpperCase(Source); Dest := UpperCase(Dest);

//比较两路径字符串头部相同串
HeadNum := GetPathComp(Source,Dest);

//取Dest的相对根路径
RelativRoot := GetRoot(RightSub(Dest,Length(Dest) - HeadNum));

//取Source的相对子路径
RelativSub := RightSub(Source,Length(Source) - HeadNum - 1);

//返回
Result := RelativRoot + RelativSub;
end;
 
to Kingron:
老兄就是在csdn发帖子送winapi猛料的大仙吧?:)
谢谢你的关注。可我已经把此帖子给结束了。下会吧,我提了问题请老兄参与一下。一定
送老兄大分!绝不 失言。
 
没有必要!
我是看见没有解决问题就有很多的贴子被K掉了,心中不服气。况且这个问题不是提供的答案!
分数应该给aimingoo。
 
后退
顶部