Autor Téma: DIRegEx replace a replace2  (Přečteno 214 krát)

Offline vangog

  • Hrdina
  • ****
  • Příspěvků: 370
  • Karma: 0
    • Verze Delphi: 7
DIRegEx replace a replace2
« kdy: 18-09-2018, 15:32:46 »
Kód: Delphi [Vybrat]
  1.   RegEx_SeekInFile := TDIPerlRegEx.Create{$IFNDEF DI_No_RegEx_Component}(nil){$ENDIF};
  2.   RegEx_SeekInFile.MatchPattern := '(*UCP)<START>';
  3.  
  4.   if not DirectoryExists(targetDir) then
  5.     mkdir(targetDir);
  6.   for m:=0 to SubDirs.count-1 do
  7.     begin
  8.     FileList.clear;
  9.     createFilesList(sourceDir + '\' + SubDirs[m] , '.html', FileList);
  10.     s := targetDir + '\' + SubDirs[m];
  11.     if not DirectoryExists(s) then
  12.       mkdir(s);
  13.   for i:=0 to FileList.count-1 do
  14.     begin
  15.       SourceList.clear;
  16.       FileHandle := FileOpen(sourceDir + SubDirs[m] + '\' + FileList[i], fmOpenRead);
  17.       fSize := FileSeek(FileHandle,0,soFromEnd);
  18.       FileSeek(FileHandle,0,soFromBeginning);
  19.       setLength(buffer, fSize);
  20.       FileRead(FileHandle, buffer[1] , fSize );
  21.  
      RegEx_SeekInFile.SetSubjectStr(buffer);
      foundPos := ansipos('<START>', buffer );
      if RegEx_SeekInFile.Match(foundPos-1) >= 0 then
        begin
        RegEx_SeekInFile.Replace2(buffer, foundPos, 1 , 0);
        end;

Nevíte proč mi to nenajíždí do bloku s RegEx_SeekInFile.Replace2(buffer, foundPos, 1 , 0); když ansipos položku START nalezel?

Offline vangog

  • Hrdina
  • ****
  • Příspěvků: 370
  • Karma: 0
    • Verze Delphi: 7
Re:DIRegEx replace a replace2
« Odpověď #1 kdy: 18-09-2018, 19:15:04 »
To byla chyba v cestě, jinak to funguje.