Fórum Como retirar a Extensão e o Diretório #403514
22/06/2011
0
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
Curtir tópico
+ 0Posts
22/06/2011
Adilson Rumao
Gostei + 0
22/06/2011
Adilson Rumao
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;
Gostei + 0
22/06/2011
Emerson Nascimento
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().
Gostei + 0
22/06/2011
Jore
Emerson o seu também eu não soube onde colocar.
Desculpe o trabalho e Obrigado amigos...Mas preciso da ajuda de vocês.
Gostei + 0
24/06/2011
Jore
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;
Gostei + 0
26/06/2011
Jore
Gostei + 0
28/06/2011
Jore
Gostei + 0
29/06/2011
Junior Viesa
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));
Gostei + 0
30/06/2011
Jore
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!
Gostei + 0
30/06/2011
Wilson Junior
- 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.
Gostei + 0
30/06/2011
Jore
- 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
Gostei + 0
30/06/2011
Wilson Junior
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.
Gostei + 0
30/06/2011
Wilson Junior
Gostei + 0
30/06/2011
Jore
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!
Gostei + 0
30/06/2011
Jore
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!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)