Ancora Visual Basic

antonio89x
Mi è sorta una curiosità…
Sapete per caso come si fa, con visual basic, a cambiare le associazioni file e, in caso, ad assegnare un tipo file ad un altro programma?
Non so se mi sono spiegato bene…

Grazie in anticipo :-D

Risposte
carlo232
"antonio89x":
ad assegnare un tipo file ad un altro programma?


Assegnare in che senso?

Ciao ciao! :D

antonio89x
Ad esempio io creo un programma per un certo tipo di file e voglio assegnare quel tipo al mio programma, in modo tale che venga aperto da quest'ultimo.

stellacometa
Quale funzione si usa per arrotondare un numero alla seconda cifra decimale??

TomSawyer1
"antonio89x":
Ad esempio io creo un programma per un certo tipo di file e voglio assegnare quel tipo al mio programma, in modo tale che venga aperto da quest'ultimo.


L'unico modo e apri con..., evidenzi la casella apri sempre con questo programma, lo cerchi e basta. Forse chiedi troppo a VB.

TomSawyer1
"stellacometa2003":
Quale funzione si usa per arrotondare un numero alla seconda cifra decimale??


Usa format. Ad esempio: number=format(number, "#.##").

antonio89x
"Crook":
L'unico modo e apri con..., evidenzi la casella apri sempre con questo programma, lo cerchi e basta. Forse chiedi troppo a VB.


Quindi pensi che con vb non si possa fare?

superpunk733
premesso che non conosco il visual basic....

credo che quando tu doppioclicchi un file non e' il prog che ti apre il file stesso, ma il SISTEMA OPERATIVO.... cioe' tu da riga potresti digitare (mettiamo per assurdo)

admin@macchina  c\programmi\blablabla\word.exe documento1.doc


quindi dici a word di aprire il documento1.doc . nel tuo programmino vb penso che tu debba chiamare il prog seguito dal file che vuoi aprire

(quando doppioclikki e' si sistema operativo che ti fa quel comando per te)

ad esempio, quest'associazione di files c'e' solo in win, in mac os alcuni pdf me li apre con acrobat, mentre altri con preview. se poi io vado a specificare nelle opzioni dell'estensione che me li deve aprire con una certa applicazione, lo fa...

stellacometa
"Crook":

Usa format. Ad esempio: number=format(number, "#.##").


Grazie mille.. :wink:

Sapete come si usa una FlexGrid in Vb per inserire i valori di una matrice o come si carica? Io prorpio non riesco..anche se metto il codice mi viene sbagliato..e poi vorrei visualizzare delle scritte nelle prime colonne e righe ma non riesco proprio...sapete qualcosa in merito?

Enea4
Allora, ti dico quello che mi ricordo sulle caratteristiche più significative di FlexGrid:
Dim k as MSFlexGrid (dichiarazione)
k.rows = 3 (imposti il numero di righe)
k.cols = 4 (imposti il numero di colonne)
k.row = 2 (metti il "puntatore" sulla riga numero 2)
k.col = 3 (metti il "puntatore" sulla colonna numero 3)
k.text = 3 (scrivi il valore 3 nello spazio della matrice individuato dal puntatore; nel nostro caso viene scritto 3 in seconda riga, terza colonna)
Altro non mi ricordo...
Ciao
Enea

antonio89x
"superpunk733":
premesso che non conosco il visual basic....

credo che quando tu doppioclicchi un file non e' il prog che ti apre il file stesso, ma il SISTEMA OPERATIVO.... cioe' tu da riga potresti digitare (mettiamo per assurdo)

admin@macchina  c\programmi\blablabla\word.exe documento1.doc


quindi dici a word di aprire il documento1.doc . nel tuo programmino vb penso che tu debba chiamare il prog seguito dal file che vuoi aprire

(quando doppioclikki e' si sistema operativo che ti fa quel comando per te)

ad esempio, quest'associazione di files c'e' solo in win, in mac os alcuni pdf me li apre con acrobat, mentre altri con preview. se poi io vado a specificare nelle opzioni dell'estensione che me li deve aprire con una certa applicazione, lo fa...


Non ti seguo bene, ma non penso sia quello a cui mi riferivo io... :?

antonio89x
Volevo sapere, inoltre, se è possibile aggiungere operazioni ai tipi file sempre con vb.
Con operazioni intendo (ad esempio) "Apri", "Mostra", "Autoplay", ecc.

lorven
@ stella
Se ho capito cosa vuoi ottenere, ti ricordo che non è possibile immettere direttamente dati in un flexgrid, nè editarli; bisogna fornire l'input, ad esempio con InputBox, e poi trasportarlo nel FlexGrid. Vedi se ti può essere utile questo abbozzo di programma, che immette dati in un FlexGrid, li copia in una matrice, e riporta in un secondo FlexGrid il contenuto, eventualmente elaborato, della matrice.
Const r = 50
Const c = 100
Option Base 1
Dim m, n, i, j As Integer
Dim A(r, c) As Integer

Private Sub form_load()
MSFlexGrid1.Rows = r + 1
MSFlexGrid1.Cols = c + 1
MSFlexGrid2.Rows = r + 1
MSFlexGrid2.Cols = c + 1
For i = 1 To r
    For j = 1 To c
        MSFlexGrid1.TextMatrix(i, j) = ""
    Next
Next
End Sub

Private Sub command1_click()
'immette dati nel 1° FlexGrid e li trasporta nella matrice A
m = Val(InputBox("n.righe"))
n = Val(InputBox("n.colonne"))
MSFlexGrid1.Rows = m + 1
MSFlexGrid1.Cols = n + 1
For i = 1 To m
    For j = 1 To n
        MSFlexGrid1.TextMatrix(i, j) = InputBox("immetti A(" + Str(i) + "," + Str(j) + ")")
        A(i, j) = Val(MSFlexGrid1.TextMatrix(i, j))
    Next
Next
MSFlexGrid1.TextMatrix(0, 0) = "matr. input"
End Sub

Private Sub command2_click()
'porta nel 2° FlexGrid il contenuto della matrice A
For i = 1 To m
    For j = 1 To n
        MSFlexGrid2.TextMatrix(i, j) = Str(A(i, j))
    Next
Next
MSFlexGrid2.TextMatrix(0, 0) = "matr. output"
End Sub

E' anche presente una intestazione nei FlexGrid.
Ciao. :-)

stellacometa
Grazie Lorven...senti, io nel mio caso vorrei fare la prima colonna con tutti i nomi delle materie, vorrei acquisire tali nomi dagli inputbox e poi trascriverli nella colonna, e poi altre tre colonne in cui voglio andare a scrivere per ogni materia i voti scritto, orale e pratico...tu che mi suggerisci di fare??

stellacometa
"Enea":
Allora, ti dico quello che mi ricordo sulle caratteristiche più significative di FlexGrid:
Dim k as MSFlexGrid (dichiarazione)
k.rows = 3 (imposti il numero di righe)
k.cols = 4 (imposti il numero di colonne)
k.row = 2 (metti il "puntatore" sulla riga numero 2)
k.col = 3 (metti il "puntatore" sulla colonna numero 3)
k.text = 3 (scrivi il valore 3 nello spazio della matrice individuato dal puntatore; nel nostro caso viene scritto 3 in seconda riga, terza colonna)
Altro non mi ricordo...
Ciao
Enea



GRAZIE mi serviva anche questo!!! :-D

lorven
Per immettere nella colonna 0 le materie e nelle colonne 1,2 e 3 i voti:
un ciclo, con I che varia secondo l'indice della materia, in cui si effettui qualcosa del genere:
MSFlexGrid2.TextMatrix(I, 0) = InputBox('Materia:')
MSFlexGrid2.TextMatrix(I, 1) = InputBox('Voto Scritto:')
MSFlexGrid2.TextMatrix(I, 2) = InputBox('Voto Orale:')
MSFlexGrid2.TextMatrix(I, 3) = InputBox('Voto Pratica:')
Completalo tu... :)
(si faceva prima a scrivere il programmino) :!:

stellacometa
Ecco...ora sorge il mio dubbio..se tengo fermo l'indice I con cui indico le materie e incremento solo J che voglio arrivi fino a 3 per indicare i voti come faccio ad incrementare visto che la domanda cambia di volta in volta ??

Es.
For I=0 to numeromaterie
'chiedo nome materia
for J=1 to 3
'chiedo voto orale
'ora dovrei incrementare j
'chiedo voto scritto
'incremento
...
....

Non penso sia così...
Qui mi perdo!!

Nidhogg
Mi intrometto! Se devi incrementare in alcune parti specifiche, ti conviene utilizzare un while che testa un contatore!

stellacometa
"leonardo":
.. un while che testa un contatore!


Una struttura while quindi :-) ....in che senso "testa un contatore"?

lorven
Ti suggerisco di usare un solo ciclo su I (le materie) e procedere con le 4 assegnazioni che ti ho già postato... ;-)

stellacometa
Quindi farei:

For I=0 to numero materie
MSFlexGrid2.TextMatrix(I, 1) = InputBox('Voto Scritto:')
MSFlexGrid2.TextMatrix(I, 2) = InputBox('Voto Orale:')
MSFlexGrid2.TextMatrix(I, 3) = InputBox('Voto Pratica:')
Next I

così?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.