Fórum Por que essa função não funciona sempre? #244869

29/07/2004

0

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?

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

Oscar Candido

Responder

Posts

29/07/2004

Beppe

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.


Responder

Gostei + 0

29/07/2004

Eniorm

Amigo... ao invés de usar essa tua função, aconselho a vc usar
uma fuñção pronta do Delphi:
   arquivo := ExtractFileName(´c:\windows\calc.exe´);
   // arquivo possui "calc.exe"


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar