Newsgroup: it.comp.lang.visual-basic
Titolo: A volte va... a volte non si esegue. Dove sbaglio?

Ho realizzato la mia prima applicazione in vb2005 EE venendo da vb6.
Molto semplice, non c'è nessun form, l'applicazione, apre dei file, li legge 
e ne scrive altri dopo aver manipolato il primo, finisce con un msgbox.
Ho testato (e funziona) l'applicazione, poi ho generato l'exe, ho preso 
l'eseguibile dalla cartella BIN|RELEASE del progetto in questione (dico 
questo perchè ero abituato diversamento col VB6 ed ho timore d'aver 
sbagliato qualcuno di questi passaggi).
Il mio problema è che in alcuni casi, lanciando l'exe, questo non viene 
eseguito. Al click non succede nulla.
Mi sapete dire dove sbaglio?
Qui di seguito il codice:
*******************************************
Public Class Form
Dim path As String
Private Sub Form_Load(ByVal sender As Object, ByVal e As System.EventArgs) 
Handles Me.Load
Dim sc() As String
[cut]
Dim sourceFile2 As FileIO.TextFieldParser
[cut]
' ----- Open the file with tab-delimited fields.
sourceFile2 = My.Computer.FileSystem.OpenTextFieldParser(path & 
"filedaleggere.txt", vbTab)
[cut]
'scrivo l'intestazione del file
[cut]
My.Computer.FileSystem.WriteAllText(outfile, "testo da scrivere" & vbCr & 
vbLf & vbCrLf, False)
MsgBox("Fine!")
End
End Sub
End Class
**************************************************************

 Qui di seguito il codice:
Scusate m'è partito l'invio prima di scrivere che postavo
solo una parte di codice perchè penso ci sia qualche errore di "forma" 
nell'uso dell'oggetto my.computer.filesystem...

 vbLf & vbCrLf, False)
outfile cosa vale?
che centra con sourceFile2?
Con VB.net si tende a usare My.Computer... prova lo standard 
System.IO.StreamWriter.
Ciao 

 System.IO.StreamWriter.
Ho usato My.Computer... perchč leggevo fosse il piů adatto allo scopo. Nel 
mio caso devo leggere, scrivere,rinominare e cancellare file. 

...dimenticavo... in fase di debug nessunissimo errore. 

 mio caso devo leggere, scrivere,rinominare e cancellare file.
Sì, in teoria funziona, mai usato, io preferisco usare il chiaro e semplice 
System.IO:
System.IO.File.Delete()
System.IO.File.Move()
...
sr =new System.IO.StreamReader(file)
stringa = sr.ReadToEnd()
sr.Close()
Ciao


Vedrò se cambiando questi parametri cambia qualcosa. Grazie della 
disponibilità.
Ultima domanda.
Non ho nessun form... quindi mi chiedo è corretto quello che ho fatto?
Cioè, se vedi il primo post, l'intera procedura è "racchiusa" in un Public 
Class Form.
Grazie di nuovo. 

 Class Form.
Se non hai form, il form che è?
Comunque credo che quello che ti serva sia una classica app Console e non 
Windows, puoi rimuovere il form e usare la sub
Public Shared Main(ByVal args As String())
E far partire la roba da qui.
Ciao

 E far partire la roba da qui.
Grazie, intanto provo questo.


Ok
Io ti direi di testare anche così:
If File.Exists(path & "\primofiledalavorare.txt") Then
    ...
Else
    MessageBox.Show("File " + eoutfile + " non trovato")
End If
If File.Exists(outfile) Then
    ...
Else
    MessageBox.Show("File " + eoutfile + " non trovato")
End If
Ciao 

 Ciao
Ari-ciao. 


Allora ho fatto diversi tentatvi e mi stanno ritornando gli errori (dico 
così perchè sto chiedendo ad altri di provare visto che a me non da sennun 
problema).
Dunque ho semplificato le cose e dato un path di prova "C:\" così da poter 
lanciare l'.exe cliccandoci sopra e quindi funzionare indipendentemente dai 
comandi passati da linea di comando (scusa la ripetizione).
Bene, in questo caso ottengono quest'errore:
"To run this application you must first install one of the following .Net 
framework: v 2.0.50727
Contact your application publisher for instructions about obtaining 
appropriate version of the .Net framework. "
Che sia effettivamente l'uso dell'oggeto My.Computer... etc a dare problemi?
Intanto sto preparando un'altro exe dove seguo il tuo consiglio di 
utilizzare l'altro metodo... 

 path vale C:\secondadir\primofile.txt
ma path non dovrebbe essere solo il path?
poi lo combini con il nome file e quindi č errato.
Ciao 

 appropriate version of the .Net framework. "
Qui c'č qualcosa che non quadra.
Dove cavolo stai testando? Sullo stesso PC?
Su questo PC il Fw 2.0 č stato installato?
Ciao 

 ma path non dovrebbe essere solo il path?
Il path prende la dir dal command$, nel mio esempio path vale C:\secondadir.
Io devo farli lavorare un file pippo.txt che sta in quella dir e allora al 
path aggiungo & "\pippo.txt". 

 Su questo PC il Fw 2.0 è stato installato?
Questo non lo posso sapere. Dovrei preparare qualcosa che giri su XP a 
prescindere da cos'altro c'è installato.
Io ti ringrazio per la disponibilità ma credo che ci sia qualche punto in 
cui non ci stiamo capendo, probabilmente è colpa mia ma non so in quale 
altro modo descriverti la cosa.
Ti metto qui uno zip con le poche righe di codice così magari evitiamo 
incomprensioni una volta per tutte: 
http://snipurl.com/1qxwx
Ovviamente un grazie di cuore per come mi stai aiutando.

 prescindere da cos'altro c'è installato.
Allora non devi usare 
VB.NET
, perché in questo caso il Framework è un 
requisito necessario...
-- 
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Saluti, VITRIOL

 "/S="C:\primadirectory"" "/L="C:\secondadir"" "/C="C:\terzadir""
Ragazzo, devi fare qualcosa :)
Command$ è UNA stringa
Quante cavolo di virgolette ha?
Per curiosità sto guardanto il codice che hai postato, ma io non capisco che 
cosa valuti!
Diciamo che command$ valga
/S="C:\primadirectory" /L="C:\secondadir" /C="C:\terzadir"
(non metto le virgolette iniziali e finali sennò è un casino)
Adesso vedo.
Ciao 

 requisito necessario...
Scusa l'ignoranza totale globale, dici che se sostiuitsco i comandi 
vb.net
 
(intendo i my.computer.etc...) con quelli suggeriti da Fanio (SystemIO), 
risolvo il problema? 

 Adesso vedo.
Ti ringrazio... ma sto perdendo la fiducia sul fatto di "vedere" la luce da 
questo tunnel! :-( 

 risolvo il problema?
VB.Net RICHIEDE IL FRAMEWOOOOORK!
Ma manco questo sai???
E ci sono ancora PC che non hanno il Fw buttato online da anni???
Comunque fallo installare dai tuoi amici, lo trovi sul sito MS tra i vari 
downloads: Framework .Net 2.0 distribuibile (runtime)
Ciao 

 risolvo il problema? 
VB 2005, così come C# 2005, compila solo per piattaforma .NET 2.0. 
Quindi, per fare funzionare i tuoi programmi, sulla macchina ospite è 
obbligatorio che sia installato il Framework .NET 2.0 (minimo).
E questo indipendentemente dai "comandi" che usi.
Nel namespace System.IO ci trovi le classi della libreria che è parte 
integrante del Framework. L'oggetto My si appoggia a quelle stesse classi.
A me sembra un po' strano che una persona si metta a programmare senza 
conoscere nulla dell'ambiente che sta cercando di usare...


 che cosa valuti!
Command$ vale
/S="C:\primadirectory" /L="C:\secondadir" /C="C:\terzadir"
Tuo codice:
RIGA 1
sc = Split(Command$, "=")
path = sc(2).Replace("""", "").Replace(" /L", "")
-- path vale "C:\secondadir /C"
Come cavolo fai a dire che hai fatto il debug e
path & "\primofile.txt"
ti risulta valido.
Domanda: a che serve specificare /L per la seconda se poi la cerchi su sc(2) 
(che comunque è la terza)?
Se lavori sul parametro 2 a che serve sapere che ha /L? E' il secondo e 
basta.
Altrimenti devi cercare quello che inizia per /L.
Sostituiamo con
        sc = Split(Command$, " ")
        Dim pos As Integer = sc(1).IndexOf("=")
        If pos >= 0 Then
            path = sc(1).Substring(pos + 1, sc(1).Length - pos - 
1).Replace("""", "")
        End If
Poi non so, non ho il file che tenti di leggere quindi non posso andare 
avanti con il debug.
Il Debug significa eseguire e valutare il codice passo-passo.
Ciao

 conoscere nulla dell'ambiente che sta cercando di usare...
Ti ringrazio ma io non sono un programmatore.
Lo faccio per diletto... qualche anno fa usavo avevo usato, in uno studio, 
VB6 per una cosetta roba da poco e ora ho ripreso, sempre per diletto, ho 
visto la disponibilità free di VB2005 e stavo provando. Questa è la mia 
prima applicazione.
Chiedo scusa se vi ho fatto perdere tempo e ringrazio per le indicazioni che 
mi avete dato.

 downloads: Framework .Net 2.0 distribuibile (runtime)
Ti ringrazio ma io non sono un programmatore.


 Ti ringrazio ma io non sono un programmatore.
Neppure io sono un programmatore, però capisci che un minimo di 
conoscenza sull'ambiente che si sta usando è necessaria, no? :-)


 sull'ambiente che si sta usando è necessaria, no? :-)
Certo... diciamo che questa, adesso l'ho capita. :-) 

 Il Debug significa eseguire e valutare il codice passo-passo.
Il problema era a monte, come vi avete illustrato nell'altro post... la 
mancanza di FrameWork.Net installato su alcune macchine.
Grazie di nuovo per la pazienza.
Ciao 

 te non č esatta.
E' quella che avrai indicato nella proprietą del progetto (Argomenti alla 
riga di comando) perchč altrimenti non debugghi un cavolo.
Anzichč il codice che hai postato invia un progettino completo, compresi 
qualche file che vai a leggere, altrimenti č un problema testarlo.
Ciao