• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

anonimou

Commondialog - exibir o nome do ficheiro numa textbox

8 mensagens neste tópico

Olá

Gostaria de saber se é possivel exibir o nome do ficheiro seleccionado por um "commondialog" numa textbox mas sem a extensão do ficheiro.

Só conheço duas opçoes:

txtInFile.Text = dlgOpen.FileName

txtInFile.Text =dlgOpen.Filetitle

E qualquer uma destas exibe tambem  a extensão do ficheiro.

Obrigado,

Délio Pontes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá,

Tens de encontrar o último ponto "." e remover daí para a frente ... manipular a string.

É VB6 não é ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiz esta função rápido... ve se da

Public Function Remove_Extension(ByVal str As String)
Dim x() As String
Dim f_str As String
Dim i As Integer
x = Split(str, ".")
For i = 0 To UBound(x) - 1
    f_str = f_str & x(i) & "."
Next i
f_str = Left(f_str, Len(f_str) - 1)
trata = f_str
End Function

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou mais simples:

Dim sFileNameWithExt As String = "xpto.txt"
Dim sFileNameWithoutExt As String = Mid(sFileNameWithExt, 0, InStr(sFileNameWithExt, ".") - 1)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A solução do Gooden permite ficheiros como Jose.e.maria.na.esquina.jpg

A última solução só devolveria Jose

Já fiz o máximo por esquecer VB6, mas essa função não devolve nada, pois não?

Acho que te falta um As String na linha de cima e um Remove_Extension = f_str no final.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desculpem Enganeime :S

Public Function Remove_Extension(ByVal str As String) As String
Dim x() As String
Dim f_str As String
Dim i As Integer
x = Split(str, ".")
For i = 0 To UBound(x) - 1
    f_str = f_str & x(i) & "."
Next i
f_str = Left(f_str, Len(f_str) - 1)
Remove_Extension = f_str
End Function

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A última solução só devolveria Jose

Pois, tens razão... :-[ É o que dá já não mexer no VB6 há algum tempo e ter o namespace System.IO no .NET ;)

Na realidade em vez de InStr deveria de ser InStrRev. Assim já funcionava com ficheiros com vários pontos! :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora