Ok, konnte es doch nicht sein lassen und habs schon jetzt gemacht ^^
Bild und Projekt ist angehängt, und die Parszeit ist minimal (0.001s - zusehen im Titel vom Fenster)
Hier die Klasse:
Delphi-Quellcode:
unit ImgPathParser;
interface
uses
Classes, SysUtils;
type
TImgPathParser =
class
private
function FGetImgPath(
Index : integer) :
string;
function FGetCount : integer;
public
ImgPaths : TStringList;
procedure Parse(AHTML :
string);
property Count : Integer
read FGetCount;
property ImgPath[
Index : integer] :
string Read FGetImgPath;
end;
var
RealativeLink :
string = '
http://www.delphipraxis.net/';
// Um einen Relativen Link generieren zu können.
implementation
{ TImagPathParser }
function TImgPathParser.FGetCount: integer;
begin
Result := ImgPaths.Count;
end;
function TImgPathParser.FGetImgPath(
Index: integer):
string;
begin
Result := ImgPaths[
Index];
end;
procedure TImgPathParser.Parse(AHTML:
string);
var
CurrentCharIndex: Integer;
CurrentChar : Char;
InString : Boolean;
Buffer :
string;
Extension :
string;
begin
Buffer := '
';
InString := false;
ImgPaths := TStringList.Create;
for CurrentCharIndex := 1
to Length(AHTML)
do
begin
CurrentChar := AHTML[CurrentCharIndex];
if (
not InString)
and
(CurrentChar = '
"')
then
begin
InString := true;
Continue;
end;
if InString
then
begin
if CurrentChar = '
"'
then
begin
Extension := LowerCase(Copy(Buffer, Length(Buffer)-2,3));
// !!! EXTENSIONS !!!
if (Extension = '
png')
or
(Extension = '
gif')
or
(Extension = '
jpg')
or
(LowerCase(Copy(Buffer, Length(Buffer)-3,4)) = '
jpeg')
then
begin
if Copy(Buffer, 0, 7) <> '
http://'
then
Buffer := RealativeLink + Buffer;
ImgPaths.Add(Buffer);
end;
InString := false;
Buffer := '
';
Continue;
end;
Buffer := Buffer + CurrentChar;
end;
end;
end;
end.
Benutzen kannst du sie so:
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
StartTime : TDateTime;
begin
StartTime := Now;
ImgPaths.Parse(mmo1.Text);
Text := FloatToStr(MilliSecondsBetween(Now,StartTime) / 1000) + 's';
end;
Hoffe, das ist in etwa so wie du es brauchst
Freundliche Grüsse