Fórum Copy com Pos #405028
14/07/2011
0
19991107-111-0560-CLASS.tif
20002501-5897-0001-AGRI.tif
20002201-0002-A200-NOT.tif Gostaria de criar um folder para cada arquivo, sendo que o nome do folder tera que possuir as strings que estão entre o Segundo e terceiro hífen("-"). Como faço isso? Que nesse caso seria: 0500 0560 0001 A200
Pjava
Curtir tópico
+ 0Posts
15/07/2011
Rodrigo Mattos
StringReplace(Copy(Nome do Arquivo,14,5),'-','',[rfReplaceAll]));
Espero ter Ajudado.
Gostei + 0
15/07/2011
Pjava
Gostei + 0
15/07/2011
Alan Souza
function RetornaPos(texto, caracter: String; posicao: Byte);var i, contagem: Byte;begin Result := 0; contagem := 0; for i := 0 to Length(texto) do begin if texto[i] = caracter then if posicao = contagem then begin Result := i; Break; end else Inc(contagem); end;end;
sugestão de uso:
procedure BotaoClick(Sender: TObject);var i: Integer; txt: String; begin with OpenDialog1 do begin Execute; for i := 0 to Files.Count -1 do begin txt := ExtractFileName(Files[i]); {aqui eu coloquei o ShowMessage só pra efeito de debug, mas vc pode capturar a string gerada e criar a pasta com CreateDir a partir dela} ShowMessage(Copy(txt,RetornaPos(txt,'-',1) + 1,(RetornaPos(txt,'-',2) - RetornaPos(txt,'-',1)) -1)); end; end;end;Gostei + 0
19/07/2011
Pjava
var TS: TStrings; begin TS:= TStringList.Create; try TS.Delimiter:= '-'; TS.DelimitedText:= NomArch; Result:= TS[3]; finally TS.Free; end; end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)