Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: teilstring ändern(teil in einem html code ändern)

  Alt 8. Mär 2006, 14:21
Herzlich willkommen in der Delphi-PRAXiS, rennkuckuck.

Du kannst immer nur eine Datei mit AssignFile zuweisen. Um wildcards aufzulösen brauchst du eine eigene Funktion:

Delphi-Quellcode:
// uses FileCtrl

function GetFiles(fileSpec: String; s: TStrings = nil): Integer;
begin
  with TFileListBox.CreateParented(HWND(-3)) do
  try
    Mask := ExtractFileName(fileSpec);
    Directory := ExtractFilePath(fileSpec);
    FileType := [ftArchive];
    Result := Items.Count;
    if Assigned(s) then
      s.Assign(Items);
  finally
    Free;
  end;
end;
Mit der kannst du dann die Dateien in einem Verzeichnis so ermitteln:

Delphi-Quellcode:
var
  s: TStrings;
  fileCount: Integer;
begin
  s: TStringList.Create;
  fileCount := GetFiles('c:\inetpub\wwwroot\demo\*.html', s);
  for i := 0 to Pred(s.Count) do
    AdjustLinks(s[i], 'gif', 'gifs');
  s.Free;
end;
Die Routine zum Anpassen der Verzeichnisstufe könnte dann so aussehen:

Delphi-Quellcode:
procedure AdjustLinks(fn: TFileName; dirOld, dirNew: String);
var
  line: String;
  s: TStrings;
  i, iPos: Integer;
begin
  s := TStringList.Create;
  s.LoadFromFile(fn);

  dirOld := '/' + Uppercase(dirOld) + '/';
  dirNew := '/' + dirNew + '/';

  for i := 0 to Pred(s.Count) do
    repeat
      iPos := Pos(dirOld, Uppercase(s[i]));
      if iPos > 0 then
      begin
        line := s[i];
        Delete(line, iPos, Length(oldDir));
        Insert(newDir, line, iPos);
        s[i] := line;
      end; // hat gefehlt...
    until iPos = 0;
  s.SaveToFile(fn);
  s.Free;
end;
Getippt und nicht getestet...

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat