Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - strutture if annidate, come si fanno?
Forum - Visual Basic 6 - strutture if annidate, come si fanno? - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
D3m0n (Normal User)
Newbie


Messaggi: 6
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 15:34
Giovedì, 06/11/2008
Allora...xD rispondo un po in ritardo per via della scuola... cmq vorrei capire meglio il codice dalla i = i + 1 in giù per comprendere esattamente nei minimi particolari cosa fa asd... nn vorrei chiedere troppo ma ne necessito per poi asportare il concetto base per creare altro. Un altro dubbio che ho da un po, è il "For Input As #1" nel comando open che nn riesco a capire cosa sta a significare...Grazie ancora della disponibilità!

PS: Inoltre se mi potresti spiegare anche come permettere all'interno del programma la traduzione delle parole scritte nel txt te ne sarei molto grato! :k:

Ultima modifica effettuata da D3m0n il 06/11/2008 alle 15:36
PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 16:41
Giovedì, 06/11/2008
Testo quotato

Postato originariamente da D3m0n:

Allora...xD rispondo un po in ritardo per via della scuola... cmq vorrei capire meglio il codice dalla i = i + 1 in giù per comprendere esattamente nei minimi particolari cosa fa asd... nn vorrei chiedere troppo ma ne necessito per poi asportare il concetto base per creare altro. Un altro dubbio che ho da un po, è il "For Input As #1" nel comando open che nn riesco a capire cosa sta a significare...Grazie ancora della disponibilità!

PS: Inoltre se mi potresti spiegare anche come permettere all'interno del programma la traduzione delle parole scritte nel txt te ne sarei molto grato! :k:


Certo!, è fondamentale capire i passaggi ;)
allora ti spiego riga x riga:
Do
Inizia il ciclo, spero che tu sappia almeno i cicli do Loop xD
----------------------
i = i + 1
incrementa i di 1
----------------------
Line Input #1, parole(i)
Nell'array parole mette la linea (1, 2, 3, ecc...) cioè mette la linea 1 in parole(1), la linea 2 in parole(2), tutto questo regolato dalla variabile i (non so se sn stato chiaro...)
-----------------------
Loop Until EOF(1) = True
EOF = End Of File quindi quando arriva alla fine del file termina il ciclo
-----------------------
Close #1
Chiude il documento

Allora per quanto riguarda For Input As #1 la "traduzione" in italiano è più o meno:
apri "ciccio.txt" in input come 1
forse la traduzione come 1 l'ho sbagliata, ma nn saprei come dirlo :P
adesso ti spiego, allora input dice al programma di aprire il documento NON per scriverci dentro, ma per LEGGERLO. Invece il numero #1 è un numero diciamo assegnato al file, infatti se apri più documenti insieme come fai?
si fa così:
open "ciccio.txt" for input as #1
open "ciccia.txt" for input as #2
...
quindi si incrementa il numero se avevi aperto un documento in precedenza e non l'avevi chiudo con il close #numero corrispondente del file da chiudere

Per ricercare le parole nell'array ecco una funzione con un esempio per applicarla (poi te la devi un pò adattare):
Codice sorgente - presumibilmente VB.NET

  1. Dim ciao(2) As String
  2. Private Sub Command1_Click()
  3. ciao(0) = "hi = ciao"
  4. ciao(1) = "lol = lol"
  5. ciao(2) = "asd = asd"
  6. MsgBox CercaInArray(ciao(), "asd")
  7. End Sub
  8. Private Function CercaInArray(ByRef nArray() As String, parola As String)
  9. Dim x As Long
  10. For x = 1 To UBound(nArray)
  11. If InStr(1, nArray(x), parola) > 0 Then
  12. CercaInArray = nArray(x)
  13. Exit Function
  14. End If
  15. Next x
  16. End Function


PM Quote
Avatar
D3m0n (Normal User)
Newbie


Messaggi: 6
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 18:54
Giovedì, 06/11/2008
Grazie tante!!! :k: ho capito tutto il procedimento per l'inserimento delle parole nell'array (che nn ho ancora studiato asd) ma mi risulta ora difficile capire il metodo di ricerca delle parole... xDDDD scusami per il disturbo ulteriore che ti arreco ma potresti anche in questo caso spiegarmi qualcosa sulle funzioni e su quello che ci hai scritto dentro pls ? :( Grazie di tutto comunque!  

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 20:20
Giovedì, 06/11/2008
Certo, non ti preoccupare, nessun disturbo, anzi mi fa piacere che mi chiedi di spiegarti i passaggi, è questo lo spirito che ci vuole per imparare il vb6 come anche gli altri linguaggi:k:

Dim ciao(2) As String
Questo è l'array che massimo può contenere 3 elementi: ciao(0); ciao(1); ciao(2)
------------------------------------------
Private Sub Command1_Click()
ciao(0) = "hi = ciao"
ciao(1) = "lol = lol"
ciao(2) = "asd = asd"
Assegno a ciascun array un valore stringa
------------------------------------------
MsgBox CercaInArray(ciao(), "asd")
Richiamo la funzione CercaInArray
------------------------------------------
End Sub
Private Function CercaInArray(ByRef nArray() As String, parola As String)
Dichiarazione della funzione che chiede come parametri l'array da controllare e la parola da cercare
-------------------------------------------
Dim x As Long
dichiaro la variabile x come una long
-------------------------------------------
For x = 1 To UBound(nArray)
inizio il ciclo, ubound() rende il numero massimo di elementi che contiene l'array, quindi il nostro array ciao avendo max 3 elementi(0; 1; 2) con la funzione UBound() esso restituirà 3 (spero di esser stato kiaro...)
--------------------------------------------
If InStr(1, nArray(x), parola) > 0 Then
La funzione instr cerca in un contesto una parola, inquesto cosa in nArray(x) (cioè ciao(x)) cerca la parola cercata. Se la trova restituisce il numero di caratteri che si contano dall'inizio fino alla parola cercata...esempio, se abbiamo:
Gianni dice hi
Se noi cerchiamo con Instr la parola hi instr assumerà il valore 13, infatti hi si trova dopo i primi 12 caratteri (il risultato è 13 perchè instr restituisce numeri di caratteri prima + 1)
Quindi se Instr restituisce 0 significa che la parola non la trova. Quindi se il risultato è maggiore di 0...
--------------------------------------------
CercaInArray = nArray(x)
La funzione restituisce come valore il valore dell'elemento in cui è contenuta, cioè la frase dove si trova la parola cercata. Per esempio se si cerca ciao ci darà: "hi = ciao", + o - hai capito? (spero di si)
---------------------------------------------
Exit Function
dopo aver dato il valore alla funzione esce da essa
---------------------------------------------
End If
fine if
---------------------------------------------
Next x
fine ciclo
---------------------------------------------
End Function

Spero sia chiaro, anche se sn stato confusionario.

PM Quote
Avatar
D3m0n (Normal User)
Newbie


Messaggi: 6
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 23:02
Giovedì, 06/11/2008
Grazie mille!!! sembrerà strano ma sono riuscito a comprendere dopo un po, tutti i meccanismi! ma ho solo un dubbio... nella rappresentazione della frase trovata (se la trova nei 3 array di quel caso) come viene rappresentata? nel senso... fuoriesce la frase "Hi = Ciao" o esce solo il numero con cui viene identificato cioè 13? (in quel caso ovviamente)

Mi riferisco precisamente alla porzione di codice
CercaNellArray = ciao(x) (l'ho modificato io così per sapere se il ragionamento è esatto... nn vorrei aver sbagliato) Grazie ancora per le dritte! Purtroppo in questa disciplina il mio insegnante va troppo a rilento e la mia curiosità e voglia di fare nn vuole attendere i suoi tempi ne quelli della classe che nn sembra essere interessata alla disciplina... approposito scusa la domanda personale ma sei del 92??? L'ho visto in firma! XD :k:

Ultima modifica effettuata da D3m0n il 06/11/2008 alle 23:07
PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 13:53
Venerdì, 07/11/2008
Con la stringa:
CercaNellArray = ciao(x)

viene mostrato il contenuto di ciao(x) (cioè "hi = ciao")...il numero 13 è trovato dalla funzione Instr...

Cmq si sono del 92, più che dalla firma penso ke l'hai capito dalla mia e-mail xD

PM Quote
Avatar
D3m0n (Normal User)
Newbie


Messaggi: 6
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 14:57
Venerdì, 07/11/2008
Testo quotato

Postato originariamente da GrG:

Con la stringa:
CercaNellArray = ciao(x)

viene mostrato il contenuto di ciao(x) (cioè "hi = ciao")...il numero 13 è trovato dalla funzione Instr...

Cmq si sono del 92, più che dalla firma penso ke l'hai capito dalla mia e-mail xD



xDDDDDDDDDDDDDDDDDD si vero avevo confuso! :asd: allora siamo coetanei! :D che scuola frequenti? perchè sei molto preparato! :k:

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 17:21
Venerdì, 07/11/2008
A esser sincero non è la scuola che mi ha preparato, ma me stesso =)
Io cmq frequento il liceo scientifico tradizionale...

Siccome però stiamo andando fuori topic dobbiamo cercare di trattare dell'argomento del topic, quindi se vuoi aggiungimi su msn :D

Ultima modifica effettuata da GrG il 14/03/2010 alle 20:31
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo