JCQS Posted January 11, 2012 at 11:34 PM Report #431805 Posted January 11, 2012 at 11:34 PM Necessito de preencher uma ComboBox com parte de um ficheiro de texto : Extracto de Código: ====================================================================================================== Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim W0 As String = "" : Dim W1 As String = "" Dim UNIDADE As String = Microsoft.VisualBasic.Left(CurDir(), 1) & ":" 'Teoricamente a unidade em que o programa irá ser instalado '------------------- VERSÃO 1 ---------------------------------------------------------------------- 'FileOpen(1,"\VBG10\DIV\VENDED.TXT", OpenMode.Input) 'Do Until EOF(1) 'Input(1, W0) : Input(1, W1) : Input(1, W0) : Input(1, W0) 'ComboBox1.Items.Add(W1) 'Loop 'FileClose(1) '-------------------- VERSÃO 2 --------------------------------------------------------------------- FileOpen(1, "D:\VBG10\DIV\VENDED.TXT", OpenMode.Input) Do Until EOF(1) Input(1, W0) : Input(1, W1) : Input(1, W0) : Input(1, W0) ComboBox1.Items.Add(W1) Loop FileClose(1) '--------------------- VERSÃO 3 -------------------------------------------------------------------- 'FileOpen(1, UNIDADE & "\VBG10\DIV\VENDED.TXT", OpenMode.Input) 'Do Until EOF(1) 'Input(1, W0) : Input(1, W1) : Input(1, W0) : Input(1, W0) 'ComboBox1.Items.Add(W1) 'Loop 'FileClose(1) '----------------------------------------------------------------------------------------- End Sub End Class =========================================================================================================== As três versões funcionam dentro do VB 2010. Porém quando faço «PUBLISH» e instalo noutro computador só a "VERSÃO 2" funciona. A «VERSÃO 1» e a «VERSÃO 3» dão erro (O ficheiro «VENDED.TXT» não é encontrado !!!) Ora isso é muito limitativo pois quem instalar o programa poderá não o querer fazer no disco «D:» Haverá maneira de ultrapassar esta limitação ? ====«VENDED.TXT»================================================= 1,"JOSÉ GOMES ",0,"JG ARTES GRÁFICAS " 2,"ANTÓNIO GIRÃO ",0,"JG ARTES GRÁFICAS " 4,"SECÇÃO ORÇAMENTOS ",0,"JG ARTES GRÁFICAS " ================================================================
ribeiro55 Posted January 11, 2012 at 11:37 PM Report #431806 Posted January 11, 2012 at 11:37 PM A limitação é apenas tua 😞 FileOpen(1, My.Application.Info.DirectoryPath & "\DIV\VENDED.TXT", OpenMode.Input) Partindo do início que DIV é uma pasta na raiz da aplicação. Já existem inúmeros posts a tratar exactamente disto. Procura utilizar a pesquisa sempre que possível. 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"
JCQS Posted January 12, 2012 at 12:32 AM Author Report #431810 Posted January 12, 2012 at 12:32 AM Talvez não me tenha explicado bem ... O meu problema não é preencher a ComboBox O que desejava e não consigo é : Entregar a pasta «Application Files» e os ficheiros «Programa.application» «setup.exe» criados pelo «Publish» do VB 2010, a alguém (possivelmente com ainda menos conhecimentos informáticos que eu) para ser instalado em qualquer unidade de disco ou até numa Pen E sobre esse assunto, francamente não encontrei nada publicado ...
ribeiro55 Posted January 12, 2012 at 12:38 AM Report #431812 Posted January 12, 2012 at 12:38 AM A solução que te dei nada tem a haver com o preenchimento da ComboBox. Tu explicaste bem: precisas que, independentemente de onde a aplicação está instalada, consigas aceder ao ficheiro VENDED.TXT. Pois bem, a minha solução mantém-se. My.Application.Info.DirectoryPath é substituído por o caminho absoluto, desde a raíz até à pasta da aplicação. Não interessa se instalas no D: ou no Z: ou numa hierarquia de 100 pastas. Só tens de garantir que o tal ficheiro existe no restante caminho, neste caso, ao colocar: My.Application.Info.DirectoryPath & "\DIV\VENDED.TXT" E se tivesse a tua aplicação instalada em D:\Coisas\Cenas\Ceninhas Quando essa linha fosse executada ficaria automaticamente: "D:\Coisas\Cenas\Ceninhas" & "\DIV\VENDED.TXT" Que no final fica um caminho absoluto para o teu ficheiro. 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"
JCQS Posted January 12, 2012 at 01:29 AM Author Report #431816 Posted January 12, 2012 at 01:29 AM Quando estou a programar, o ficheiro está em «D:\VBG10\DIV\VENDED.TXT» e qualquer das versões funciona bem. Quando copio («Application Files» «Programa.application» «setup.exe» e «\VBG10\DIV\VENDED.TXT) para outro computador e executo, acontece o seguinte: Se colocar na unidade D: FileOpen(1, "\VBG10\DIV\VENDED.TXT", OpenMode.Input) --> ERRO FileOpen(1, "D:\VBG10\DIV\VENDED.TXT", OpenMode.Input) --> OK FileOpen(1, UNIDADE &"\VBG10\DIV\VENDED.TXT", OpenMode.Input) --> ERRO (UNIDADE = Microsoft.VisualBasic.Left(CurDir(), 1) & ":" ) Se colocar na unidade K: FileOpen(1, "\VBG10\DIV\VENDED.TXT", OpenMode.Input) --> ERRO FileOpen(1, "D:\VBG10\DIV\VENDED.TXT", OpenMode.Input) --> ERRO FileOpen(1, "K:\VBG10\DIV\VENDED.TXT", OpenMode.Input) --> OK FileOpen(1, UNIDADE &"\VBG10\DIV\VENDED.TXT", OpenMode.Input) --> ERRO (UNIDADE = Microsoft.VisualBasic.Left(CurDir(), 1) & ":" ) Como não se sabe em que unidade o utilizador final instala ou virá a instalar o programa, o indicar a «unidade de disco» no código do programa não parece ser solução viável. Poder-se-ia obrigar a colocação de «VENDED,TXT» em «C:\VENDED.TXT» por exemplo, mas gostaria mais de uma solução que quando se executasse o programa numa Pen , não ficasse o ficheiro no computador ...
JCQS Posted January 12, 2012 at 01:35 AM Author Report #431818 Posted January 12, 2012 at 01:35 AM DESCULPA Não li bem a resposta. Mil perdões e OBRIGADO
bioshock Posted January 12, 2012 at 01:35 AM Report #431819 Posted January 12, 2012 at 01:35 AM Pronto.. 😞
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now