GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
Ciao!
Ho bisogno di sapere come risolvere questi 2 problemi.
1) Come contare le righe in un documento di testo;
2) Come posso fare x visualizzare in una textbox le parole, ad esempio che iniziano per "cia", di un documento di testo.
|
|
LuigiBiasi (Normal User)
Expert
Messaggi: 237
Iscritto: 15/09/2006
|
Ciao, nel form inserisci una label 1 una listbox.
Codice sorgente - presumibilmente VB.NET |
Private Sub Form_Load() Dim c(10) As String Dim i, j As Integer i = 0 Label1.Caption = "nel file ci sono: " Open "C:\prova.txt" For Input Access Read As 1 'ottiene il numero di righe While not EOF(1) i = i + 1 Line Input #1, c(i) Wend Label1.Caption = Label1.Caption & i & "righe." 'stampa nella listbox le righe che iniziano per cia For j = 1 To i If Left(c(j), 3) = "cia" Then List1.AddItem c(j) End If Next j Close 1 End Sub
|
Ultima modifica effettuata da LuigiBiasi il 03/10/2007 alle 16:54 |
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
Grazie infinite!!
Funziona!!!
Noooo!!
maledizione..
era tutto perfetto, il tuo codice funzionava benissimo, ma funziona solo per i documenti di testo quindi i .txt.
Io, si mi serve x i .txt, ma deve contare le righe e visualizzare le parole con "cia" anche in un documento .dat e purtroppo mi da errore,
come posso fare???
Ultima modifica effettuata da GrG il 03/10/2007 alle 16:02 |
|
LuigiBiasi (Normal User)
Expert
Messaggi: 237
Iscritto: 15/09/2006
|
Non so perche io non ho questo problema io riesco benissimo a leggere un file .dat, non so perche tu no magari se mi dici l'errore che hai...
Ultima modifica effettuata da LuigiBiasi il 03/10/2007 alle 16:56 |
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
Ecco l'errore che mi da:
--------------------------------------------------
errore di run-time "9":
Indice non compreso nell'intervallo
--------------------------------------------------
Ti posto il codice che ho scritto:
Codice sorgente - presumibilmente VB.NET |
Private Sub Command1_Click() Dim c(10) As String Dim i, j As Integer i = 0 Label1.Caption = "nel file ci sono: " Open App.Path & "\parole.dat" For Input Access Read As 1 'ottiene il numero di righe While Not EOF(1) i = i + 1 Line Input #1, c(i) Wend Label1.Caption = Label1.Caption & i & "righe." 'stampa nella listbox le righe che iniziano per cia For j = 1 To i If Left(c(j), 3) = Text1.Text Then List1.AddItem c(j) End If Next j Close 1 End Sub
|
|
|
LuigiBiasi (Normal User)
Expert
Messaggi: 237
Iscritto: 15/09/2006
|
prova a dichiarare l'array più grande.
Codice sorgente - presumibilmente Visual Basic 6 |
Ciao.
|
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
si adesso funziona solo che nella text1.text devo inserire x forsa tre lettere x far cercare al programma tutte le parole inizianti es. x "cia".
Altrimenti se si digita ad es. "ci" non succede nulla; mettiamo che con "cia" si visualizza ciao, se invece metto "ci" non ai visualizza niente.
Come posso fare x far si che anche se scrivo nella textbox o 1 o 20 caratteri il programma mi trova lo stesso le parole iniziante x quelle lettere???
es. io digito nella text1 "abcde"(che può essere variabile, io potrei scrivere"sadasasdads", "a", ecc.)
poi nel listbox si visualizzano tutte le parole (in questo caso) inizianti x "abcde" quindi ad esempio si visualizzarà:
abcdefghil
abcdeeeeeastagsg
abcdr
abcd##
curiosità:
Ma perche x far funzionare il programma ho dovuto ingrandire l'array??
Ultima modifica effettuata da GrG il 03/10/2007 alle 18:47 |
|
LuigiBiasi (Normal User)
Expert
Messaggi: 237
Iscritto: 15/09/2006
|
Certo che si puo fare!!!
Il secondo ciclo mi pare,
Codice sorgente - presumibilmente VB.NET |
For j = 1 To i If Left(c(j), 3) = "rig" Then List1.AddItem c(j) End If Next j
|
devi modificarlo in
Codice sorgente - presumibilmente VB.NET |
For j = 1 To i If Left(c(j), len(text1.text)) = text1.text Then List1.AddItem c(j) End If Next j
|
Conosci gli array?
Nel tuo file hai più di 10 righe, l'array era di 10 elementi quindi... Ultima modifica effettuata da LuigiBiasi il 03/10/2007 alle 18:58 |
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
Originariamente postato da LuigiBiasi:
Nel tuo file hai più di 10 righe, l'array era di 10 elementi quindi...
______________________________________________
ah adesso ho capito!!
Originariamente postato da LuigiBiasi:
devi modificarlo in
Codice sorgente - presumibilmente VB.NET |
For j = 1 To i If Left(c(j), len(text1.text)) = text1.text Then List1.AddItem c(j) End If Next j
|
_________________________________________________
ah si funziona non ci avevo minimamente pensato alla funzione len()!!
Avrei l' ULTIMO problema;
il codice che mi hai dato l'ho messo in un pulsante.
Quando lo riclicco xò mi da errore xkè il documento parole.dat è già aperto come posso fare???
Ho risolto, grz di tutto ciao!!
Ultima modifica effettuata da GrG il 03/10/2007 alle 19:20 |
|