Por que essa função não funciona sempre?
Amigos, criei essa função para pegar o caminho de um arquivo e retornar somente o nome do arquivo, o problema é que nem sempre ela funciona.Explicando melhor, quando eu mando um certo parâmetro ela ela me retorna o nome do arquivo como eu desejava, mas outras vezes, apesar de ser o mesmo parâmetro , ocorre um erro do tipo ´ Access violation at adress...´, por favor, alguém pode me dizer oq está errado neste código?
espero qeu alguém possa me ajudar.
Obrigado
Oscar
function nome(texto:string):string; var soma,aux,cont:integer; begin for aux:=1 to Length(Texto)do begin for soma:=1 to Length(Texto) do begin cont:=soma+1; if Texto[soma]=´\´ then texto:=copy(Texto,cont,(Length(Texto)-SOMA)); if Texto[soma]=´.´ then delete(Texto,cont,4); result:=texto; end; end; end;
espero qeu alguém possa me ajudar.
Obrigado
Oscar
Oscar Candido
Curtidas 0
Respostas
Beppe
29/07/2004
Vc pode usar ChangeFileExt(ExtractFilename(Nome), ´´) para o que quer.
O problema com sua função é que seu loop interno tem tamanho fixo(numero de iterações), mas dentro do loop vc diminui o tamanho da string, e não atualiza o tamanho do loop.
O problema com sua função é que seu loop interno tem tamanho fixo(numero de iterações), mas dentro do loop vc diminui o tamanho da string, e não atualiza o tamanho do loop.
GOSTEI 0
Eniorm
29/07/2004
Amigo... ao invés de usar essa tua função, aconselho a vc usar
uma fuñção pronta do Delphi:
T+
uma fuñção pronta do Delphi:
arquivo := ExtractFileName(´c:\windows\calc.exe´); // arquivo possui "calc.exe"
T+
GOSTEI 0