Jump to content

Abrir texto com o programa ?


User LoL

Recommended Posts

Boa pergunta ... foi algo que nunca fiz mas gostava de exprimentar... vou exprimentar e tentar fazer algo a ver se funciona... se funcionar coloco aqui

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Link to comment
Share on other sites

http://wiki.portugal-a-programar.pt/dev_net:vb.net:associar_extensoes

A tua aplicação tem de estar capaz de analisar os "command line args". É a partir desse array que passa(m) o(s) caminho(s) absoluto(s) do(s) ficheiro(s)

Edited by ribeiro55

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

foste tu que fizeste ribeiro ? está algo unico 😉

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Link to comment
Share on other sites

Respondendo ao caça : O editor não está preparado pra receber arquivos,eu ja fiz oque o Passarito falou,mas não dá certo,só abre o editor,e ele nao lê o texto do arquivo,e Ribeiro,vou ainda estou a testar sua sugestão,qualquer progresso,irei postar

Ah acabei de testar,o código é bom,mas tem um problema,o editor nao esta preparado,pra abrir com um arquivo,como eu disse,eu vou em abrir com... escolho o editor,e nao abre o arquivo de texto,so´abre o editor normal,sem texto algum la

Link to comment
Share on other sites

Se a tua aplicação não está preparada para ler argumentos de arranque, como esperas que qualquer tipo de associação funcione?

		For Each Arg As String In My.Application.CommandLineArgs
		'Cada arg é um caminho para um ficheiro, caso tenhas corrido com múltiplos ficheiros
	Next

Através dessa colecção, My.Application.CommandLineArgs, consegues consultar os argumentos usados no arranque da tua aplicação.

Quando fazes "Abrir Com", My.Application.CommandLineArgs(0) vai ser igual ao caminho do ficheiro, que podes e deves usar para abrir.

Edited by ribeiro55

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Coloco esse código no load do form pricipal?

Coloquei assim ,e deu certo,tentei adicionar um codigo,pra reconhecer acentuação,mas dá um erro,diz caminho nao encontrado,e depois sim abre normalmente,oque tem de errado no codigo?


For Each Arg As String In My.Application.CommandLineArgs
Dim SR As New IO.StreamReader(Arg, System.Text.Encoding.Default)
RichTextBox1.Text = Arg
'Cada arg é um caminho para um ficheiro, caso tenhas corrido com múltiplos ficheiros
RichTextBox1.Text = My.Computer.FileSystem.ReadAllText(SR.ReadToEnd)
Next
Edited by ribeiro55
Link to comment
Share on other sites

Galera,novidades,consegui 👍 eu nao sei porque eu coloquei o codificador pra procurar o arquivo,se na verdade,o arquivo ja estava sendo aberto e o caminho estava no Arg,olhem no codigo acima como esta errado,ele ve o caminho no Arg,e depois no codificador ele procura o caminho denovo,mas resolvi isso,mudando a penultima linha,pronto agora vou em abrir com,, e o texto abre normal,e ainda ele consegue reconhecer acentuação,agora só falta associar uma extensão á minha aplicação,estou tentando isso ainda,logo que tiver novidades irei postar,olhem como ficou o código funcionando :

For Each Arg As String In My.Application.CommandLineArgs
	 RichTextBox1.Text = Arg
	 Dim SR As New IO.StreamReader(Arg, System.Text.Encoding.Default)
	 'Cada arg é um caminho para um ficheiro, caso tenhas corrido com múltiplos ficheiros
	 RichTextBox1.Text = SR.ReadToEnd
 Next
Edited by ribeiro55
Link to comment
Share on other sites

Se não queres suportar múltiplos ficheiros, não precisas do For Each:

Quando fazes "Abrir Com", My.Application.CommandLineArgs(0) vai ser igual ao caminho do ficheiro, que podes e deves usar para abrir.

Apenas um: o primeiro.

Assim, deves também controlar se existem argumentos ou não, coisa que está coberta com o For Each: só é iterado se existirem elementos.

Mas em contrapartida, se abrir com 1000 argumentos, vais carregar ficheiros mil vezes, e a RichText só te vai ficar com o último.

Edited by ribeiro55

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

é,quanto a isso eu já consegui resolver. Agora,se eu abrir um documento html por exemlplo,ele nao mostra no webbrowser,eu estava usando esse código no TextChanged do richtextbox:

webbrowser1.documenttext = richtextbox1.text

Ai ele mostra,mas só depois que eu começar a digitar algo no richtextbox,tentei colocar esse código no load,assim quando abrisse um html nao precisaria eu editar nada,ele ia mostrar automaticamente no webbrowser,mas nao adiantou colocar no load,ele nao mostra automaticamente,oque tem de errado?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.