Ver Mensaje Individual
  #5  
Antiguo 05-09-2022
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Reputación: 20
movorack Va camino a la famamovorack Va camino a la fama
Cita:
Empezado por Camilo Ver Mensaje
Gracias Movorack: no es lo que necesito. Gracias.
Archivos en el directorio:
Código:
camilo_campos_01-09-2022_clinica_ejemplo.pdf
camilo_campos_02-09-2022_clinica_ejemplo.pdf
camilo_campos_03-09-2022_clinica_ejemplo.pdf
camilo_campos_04-09-2022_clinica_ejemplo.pdf
camilo_campos_05-09-2022_clinica_ejemplo.pdf
jorge_campos_garcia_01-09-2022_hospital_central.pdf
jorge_campos_garcia_02-09-2022_hospital_central.pdf
jorge_campos_garcia_03-09-2022_hospital_central.pdf
jorge_campos_garcia_04-09-2022_hospital_central.pdf
jorge_campos_garcia_05-09-2022_hospital_central.pdf
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  lTemp : string;
  lNombre: string;
  lFecha: string;
  lLugar: string;
  SR : TSearchRec;
  lFiles: TArray<string>;
  lArchivo: TStrings;
begin
  //Reemplazar con la ruta de los archivos
  lTemp := IncludeTrailingPathDelimiter(ExtractFilePath(Paramstr(0))) + 'Archivos\*.pdf';

  // Try to find regular files matching Unit1.d* in the current dir
  if FindFirst(lTemp, faAnyFile, SR) = 0 then
  begin
    repeat
      lFiles := lFiles + [SR.Name];
    until FindNext(SR) <> 0;

    // Must free up resources used by these successful finds
    FindClose(SR);
  end;

  for i := Low(lFiles) to High(lFiles) do
  begin
    lTemp := lFiles[i];

    //Fecha
    lFecha := TRegex.Match(lTemp, '([0-9]+-)*[0-9]+', []).Value;

    //Nombre
    lNombre := lTemp.Substring(0, lTemp.IndexOf(lFecha)-1);
    lNombre := StringReplace(lNombre, '_', ' ', [rfReplaceAll]).Trim;

    //Lugar
    lLugar := lTemp.Substring((lTemp.IndexOf(lFecha) + lFecha.Length) + 1, lTemp.Length);
    lLugar := lLugar.Substring(0, lLugar.IndexOf('.'));
    lLugar := StringReplace(lLugar, '_', ' ', [rfReplaceAll]).Trim;

    lFiles[i] := Format('%s;%s;%s', [lNombre,lFecha,lLugar]);
  end;

  lArchivo:= TStringList.Create;
  try
    lArchivo.AddStrings(lFiles);
    lArchivo.SaveToFile(IncludeTrailingPathDelimiter(ExtractFilePath(Paramstr(0)))+'ListaArchivos.txt');
  finally
    lArchivo.Free;
  end;
end;

Resultado:
Código:
camilo campos;01-09-2022;clinica ejemplo
camilo campos;02-09-2022;clinica ejemplo
camilo campos;03-09-2022;clinica ejemplo
camilo campos;04-09-2022;clinica ejemplo
camilo campos;05-09-2022;clinica ejemplo
jorge campos garcia;01-09-2022;hospital central
jorge campos garcia;02-09-2022;hospital central
jorge campos garcia;03-09-2022;hospital central
jorge campos garcia;04-09-2022;hospital central
jorge campos garcia;05-09-2022;hospital central
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita