GARANTIR DESCONTO

Fórum Como retirar a Extensão e o Diretório #403514

22/06/2011

0

Olá amigos,
Estou seguindo um exemplo de Player em:https://www.devmedia.com.br/post-6324-Desenvolvendo-um-Media-Player.html
Onde tem a parte para não mostrar a Extensão e nem o diretório. Não estou usando o TStringGrid do tutorial estou usando um ListBox.

 Adicione estas funções, nesta ordem:


function Arquivo(Entrada:String):STring;


var


  I, P: Integer;


Begin


  for I := length(Entrada) downto 0 do


    if Entrada[i] = . then begin


      P:= I;


      Break;


    end;


  Result:= copy(Entrada, 1, I-1);


end;
 



Estava dando erro nesta linha:
if Entrada[i] = . then

Então coloquei o ponto entre aspas simples. Rodou mas não ta tirando a extensão.

 e 



 e 

Gostaria que ficasse como na imagem abaixo:

Jore

Jore

Responder

Posts

22/06/2011

Adilson Rumao

Se Entrada[i] = . ????   é isso mesmo?  
Responder

Gostei + 0

22/06/2011

Adilson Rumao

Se Entrada[i] = . ????   é isso mesmo?  
Para retirarmos a extensão de um arquivo, por exemplo: Arquivo.BMP
Dai vai ficar só Arquivo, use assim:

var
len: integer
nome, extensao, aux: string
begin
nome := ExtractFileName(endereco e nome do arquivo);
extensao := ExtractFileExt(endereco e nome do arquivo);
aux := Copy(1, Length(nome) - Length(Extensao), Nome);
end;
Responder

Gostei + 0

22/06/2011

Emerson Nascimento

  arqnmext := ExtractFileName(arquivo);
  arqext := ExtractFileExt(arquivo);
  arqnm := LeftStr(arqnmext, Length(arqnmext)-Length(arqext));

  showmessage('nome completo: "'+arqnmext+'"'#13'nome: "'+arqnm+'"'#13'extensão: "'+arqext+'"');



acrescente StrUtils para poder usar a função LeftStr().


Responder

Gostei + 0

22/06/2011

Jore

Rumaoem onde eu coloco este código? No ListBox não deu...

Emerson o seu também eu não soube onde colocar.

Desculpe o trabalho e Obrigado amigos...Mas preciso da ajuda de vocês.
Responder

Gostei + 0

24/06/2011

Jore

oLá amigos estou quase conseguindo o código. O código abaixo retira o diretório agora só preciso da ajuda de vocês para ele retirar a extensão da música também.

Obrigado!



Ponha no botão adicionar músicas:

 

var i: integer;

begin

        { esse código
pega todas as musicas selecionadas o opendialog }

        if opendialog1.Execute then

        begin

                for i:=0 to
opendialog1.Files.Count-1 do

               
begin

                       
//ListBox1.Items.Add(opendialog1.Files[i]); //adiciona na lista que o usuário
ira ver

                       
ListBox1.Items.Add(ExtractFileName(opendialog1.Files[i])); //esse add na
lista que fica com o caminho dos arquivos

                       
ListBox1.ItemIndex :=
0;

 

                end;

        end;

end;



Responder

Gostei + 0

26/06/2011

Jore

Alguém?
Responder

Gostei + 0

28/06/2011

Jore

Por favor alguém pode me ajudar?!
Responder

Gostei + 0

29/06/2011

Junior Viesa

Colegsa, você pode usar uma junção de dois comandos..
Como só falta a extensão do arquivo, vc pode utilizar o Pos para verificar a posição onde inicia a extensão, por exemplo :
Copy(string com o nome do arquivo, 1, Length(string com o nome do arquivo) - Pos('.'+ExtractExtFile, string com o nome do aqruivo));
Responder

Gostei + 0

30/06/2011

Jore

Olá Junior Viesa,
Obrigado por responder!!
Tentei de dois jeitos e nada. Veja:

 

var i: integer;

begin

        { esse código
pega todas as musicas selecionadas o opendialog }

        if opendialog1.Execute then

        begin

                for i:=0 to
opendialog1.Files.Count-1 do

               
begin

                   listbox1:=Copy(ExtractFileName(MediaPlayer1.FileName),0,Length(ExtractFileName(MediaPlayer1.FileName))-4);
                       
ListBox1.ItemIndex :=
0;

 

                end;

        end;

end;




depois tentei assim:


var i: integer;

begin

        { esse código
pega todas as musicas selecionadas o opendialog }

        if opendialog1.Execute then

        begin

                for i:=0 to
opendialog1.Files.Count-1 do

               
begin

      listbox1:= Copy(string MediaPlayer1, 1, Length(string com o nome do arquivo) - Pos('.'+ExtractExtFile, string MediaPlayer1));
                       
ListBox1.ItemIndex :=
0;

 

                end;

        end;

end;




Pode dar uma olhada para mim?!

Obrigado!
Responder

Gostei + 0

30/06/2011

Wilson Junior

Me explique melhor o que você quer para mim poder lhe ajudar.

- Onde é armazenado o caminho dos arquivos?
- Como quer que apareça no listbox?

Coloque o código fonte e alguns exemplos de como quer que apareça.

Aguardo retorno.
Responder

Gostei + 0

30/06/2011

Jore

Me explique melhor o que você quer para mim poder lhe ajudar.

- Onde é armazenado o caminho dos arquivos?
- Como quer que apareça no listbox?

Coloque o código fonte e alguns exemplos de como quer que apareça.

Aguardo retorno.


Olá Wilson,

- Onde é armazenado o caminho dos arquivos?

No botão Adicionar músicas

- Como quer que apareça no listbox?
Quero que retire o caminho do diretório e a extensão.

Se houver o número da música pode ficar;
Se houver o nome do artista ou grupo também pode ficar.

Igual ao exemplo abaixo.

16. Pra Toda a Vida - Part. Esp. Juliana Paes

Responder

Gostei + 0

30/06/2011

Wilson Junior

Teste assim:
var
  x: integer;
  NomeArquivo: string;
begin
  if  opendialog1.Execute then
    begin
      ListBox1.Clear; { Para limpar a lista }
      for x := 0 to opendialog1.Files.Count - 1 do
      begin
        NomeArquivo := ExtractFileName( opendialog1.Files[x] )
        NomeArquivo := Copy( NomeArquivo, 1, Length(NomeArquivo) - Length(ExtractFileExt(NomeArquivo)) );

        ListBox1.Items.Add( NomeArquivo );
      end;
    end
  ;
end;


Espero ter colaborado.
Responder

Gostei + 0

30/06/2011

Wilson Junior

Ah, não cheguei a testar...qualquer coisa pergunte.
Responder

Gostei + 0

30/06/2011

Jore

Olá Wilson,
Tenho boas noticias evoluimos graças a você.
A boa notícia é que já retirou o caminho do diretório e a extensão.
As más noticas são:

Vamos ao seu código:

var
  x: integer;
  NomeArquivo: string;
begin
  if  opendialog1.Execute then
    begin
      ListBox1.Clear; { Para limpar a lista }
      for x := 0 to opendialog1.Files.Count - 1 do
      Begin
        NomeArquivo := ExtractFileName( opendialog1.Files[x] ) <-- Aui faltou ; Já OK
        NomeArquivo := Copy( NomeArquivo, 1, Length(NomeArquivo) - Length(ExtractFileExt(NomeArquivo)) );

        ListBox1.Items.Add( NomeArquivo );
        ListBox1.ItemIndex := 0; <-- Coloquei essa parte pois não selecionava a música automaticamente.
      end;
    end
  ; <-- Essa parte serve para que?
end;

1 - Não sei porque mais se eu adicionar uma unica música e se depois clicar novamente em adicionar para por outra música esta substitui a musica que já esta na lista. Entendeu? não tá adicionando esta substituindo.

2 - Com o seu comando da erro ao dar Play. Eu uso o seguinte comando no botão Play:




begin

// caso algum item do listbox estiver selecionado

  if
(Listbox1.ItemIndex > -1) then

    begin

      // abrir o
arquivo caso o nome selecionado seja diferente

      if not
(ListBox1.Items[Listbox1.ItemIndex] = MediaPlayer1.FileName) then

      begin

        MediaPlayer1.FileName :=
ListBox1.Items[Listbox1.ItemIndex];

        MediaPlayer1.Open;

      end;

    end

  else

    begin

      ShowMessage('Selecione um arquivo
de som');

      // se não
estiver tocando um som então sair

      if not (MediaPlayer1.Mode =
mpPlaying) then

      begin

        Exit;

      end;

    end;

        
end;





Mais uma vez obrigado!



Responder

Gostei + 0

30/06/2011

Jore

Não sei se ajuda mais segue abaixo o meu player:




No Botão Stop tem este código:


begin
if ListBox1.Items.Count <> 0 then begin
if MediaPlayer1.Position = MediaPlayer1.Length then begin
if ListBox1.ItemIndex = ListBox1.Items.Count -1 then
ListBox1.ItemIndex := 0
else ListBox1.ItemIndex := ListBox1.ItemIndex +1;
MediaPlayer1.FileName := ListBox1.Items[ListBox1.ItemIndex];
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
    end;
end;



No timer deixei a opção Enabled como False para passar a música sozinho. Um ListBoxUm MediaPlayerNão sei se ajuda...Obrigado!
Responder

Gostei + 0

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

Aceitar