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 - contare righe; completare parole
Forum - Visual Basic 6 - contare righe; completare parole

Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 14:08
Mercoledì, 03/10/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.

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 15:05
Mercoledì, 03/10/2007
Ciao, nel form inserisci una label 1 una listbox.
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form_Load()
  2. Dim c(10) As String
  3. Dim i, j As Integer
  4. i = 0
  5. Label1.Caption = "nel file ci sono: "
  6. Open "C:\prova.txt" For Input Access Read As 1
  7. 'ottiene il numero di righe
  8. While not EOF(1)
  9. i = i + 1
  10. Line Input #1, c(i)
  11. Wend
  12. Label1.Caption = Label1.Caption & i & "righe."
  13. 'stampa nella listbox le righe che iniziano per cia
  14. For j = 1 To i
  15. If Left(c(j), 3) = "cia" Then
  16. List1.AddItem c(j)
  17. End If
  18. Next j
  19. Close 1
  20. End Sub


Ultima modifica effettuata da LuigiBiasi il 03/10/2007 alle 16:54
PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 15:28
Mercoledì, 03/10/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
PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 16:54
Mercoledì, 03/10/2007
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
PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 17:52
Mercoledì, 03/10/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

  1. Private Sub Command1_Click()
  2.  
  3. Dim c(10) As String
  4. Dim i, j As Integer
  5. i = 0
  6. Label1.Caption = "nel file ci sono: "
  7. Open App.Path & "\parole.dat" For Input Access Read As 1
  8. 'ottiene il numero di righe
  9. While Not EOF(1)
  10. i = i + 1
  11. Line Input #1, c(i)
  12. Wend
  13. Label1.Caption = Label1.Caption & i & "righe."
  14. 'stampa nella listbox le righe che iniziano per cia
  15. For j = 1 To i
  16. If Left(c(j), 3) = Text1.Text Then
  17. List1.AddItem c(j)
  18. End If
  19. Next j
  20. Close 1
  21.  
  22. End Sub


PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 18:05
Mercoledì, 03/10/2007
prova a dichiarare l'array più grande.
Codice sorgente - presumibilmente Visual Basic 6

  1. dim c(100) as string


Ciao.

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 18:43
Mercoledì, 03/10/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
PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 18:54
Mercoledì, 03/10/2007
Certo che si puo fare!!!
Il secondo ciclo mi pare,
Codice sorgente - presumibilmente VB.NET

  1. For j = 1 To i
  2. If Left(c(j), 3) = "rig" Then
  3. List1.AddItem c(j)
  4. End If
  5. Next j


devi modificarlo in
Codice sorgente - presumibilmente VB.NET

  1. For j = 1 To i
  2. If Left(c(j), len(text1.text)) = text1.text Then
  3. List1.AddItem c(j)
  4. End If
  5. 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
PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 19:15
Mercoledì, 03/10/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

  1. For j = 1 To i
  2. If Left(c(j), len(text1.text)) = text1.text Then
  3. List1.AddItem c(j)
  4. End If
  5. 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
PM Quote