Oppure

Loading
21/10/08 16:10
GrG
Scusa se ti risp un pò in ritardo... ecco un esempio commentato:

Dim parole(1 To 99999) As String ' Array che dovrà contenere le parole, in questo caso max potrà contenere 99999
Dim i As Integer
Open "tuapath\Tuofile.txt" For Input As #1 'Apre il txt con le parole
Do 'ciclo
i = i + 1
Line Input #1, parole(i) 'mette riga per riga del txt nell'array parole
Loop Until EOF(1) = True 'fino alla fine del txt
Close #1 'chiude la lettura txt


adesso nell'array parole hai tutte le tue parole e io ti consiglierei di crearti una funzione per la ricerca della parola nella textbox (quella da tradurre) nell'array parole.

Magari nel txt metti così tipo:
hello = ciao
ecc...

RICORDA: prima di fare la ricerca nell'array devi usare split per separare "hello = ciao"

ora devo skappare...ciao

p.s. se vuoi kiarimenti(100% asd) dimmelo...xD
aaa
06/11/08 14:34
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:
Ultima modifica effettuata da D3m0n 06/11/08 14:36
aaa
06/11/08 15:41
GrG
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):
Dim ciao(2) As String
Private Sub Command1_Click()
ciao(0) = "hi = ciao"
ciao(1) = "lol = lol"
ciao(2) = "asd = asd"
MsgBox CercaInArray(ciao(), "asd")
End Sub
Private Function CercaInArray(ByRef nArray() As String, parola As String)
Dim x As Long
For x = 1 To UBound(nArray)
If InStr(1, nArray(x), parola) > 0 Then
CercaInArray = nArray(x)
Exit Function
End If
Next x
End Function
aaa
06/11/08 17:54
D3m0n
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!
aaa
06/11/08 19:20
GrG
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.
aaa
06/11/08 22:02
D3m0n
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 06/11/08 22:07
aaa
07/11/08 12:53
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
aaa
07/11/08 13:57
D3m0n
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:
aaa