Einzelnen Beitrag anzeigen

raiguen
(Gast)

n/a Beiträge
 
#1

Re: Fehler in einer while Schleife

  Alt 4. Mai 2007, 12:13
Zitat von moperswings:
Hallo,
ich möchte eine *.html-Datei nach Bildern durchsuchen und die gefundenen Bilder ...
WAS genau möchtest du 'extrahieren'?
a) den kompletten ImageTag
b) den Bildnamen einscjliesslich VerzeichnisPfad
c) den Bildnamen ohne VerzeichnisPfad

zu a)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var ts: TStrings;
    i: integer;
    StartTag, EndTag, Pos2: Integer;
    s: String;
begin
  ts := TStringList.Create;
  ts.LoadFromFile('d:\image14\daten.html');
  
  //-- nur zur Kontrolle
  MEMO1.Lines.Assign(ts);

  for i := 0 to ts.Count -1 do begin
    StartTag := Pos('<img src="', ts[i]);
    if StartTag > 0 then begin
      //--zwischenspeichern
      s := Copy(ts[i], StartTag, Length(ts[i])-StartTag);
      //--EndtagZeichen > ermitteln
      EndTag := Pos('>',s);
      ListBox1.Items.Add(Copy(s, 1, EndTag));
    end;
  end;
  ts.Free;
end;
zu b)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var ts: TStrings;
    i: integer;
    StartTag, EndTag, Pos2: Integer;
    s: String;
begin
  ts := TStringList.Create;
  ts.LoadFromFile('d:\image14\daten.html');

  for i := 0 to ts.Count -1 do begin
    StartTag := Pos('<img src="', ts[i]);
    if StartTag > 0 then begin
      s := Copy(ts[i], StartTag+10, Length(ts[i])-StartTag);
      //--abschliessendes " ermitteln
      EndTag := Pos('"',s);
      ListBox1.Items.Add(Copy(s,1, EndTag-1));
    end;
  end;

  ts.Free;
end;
zu c)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var ts: TStrings;
    i: integer;
    StartTag, EndTag, Pos2: Integer;
    s: String;
begin
  ts := TStringList.Create;
  ts.LoadFromFile('d:\image14\daten.html');

  for i := 0 to ts.Count -1 do begin
    StartTag := Pos('<img src="', ts[i]);
    if StartTag > 0 then begin
      s := Copy(ts[i], StartTag+10, Length(ts[i])-StartTag);
      //--abschliessendes " ermitteln
      EndTag := Pos('"',s);

      //--ab gefundender Position rückwärts suchen nach /
      //--um Bildname zu extrahieren
      Pos2 := EndTag;

      repeat
        Dec(Pos2)
      until (s[Pos2]='/') or (Pos2=0);
      ListBox1.Items.Add(Copy(s,Pos2+1, EndTag - (Pos2+1)));
    end;
  end;
  
  ts.Free;
end;
  Mit Zitat antworten Zitat