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 - Ricerca multipla in un file di testo
Forum - Visual Basic 6 - Ricerca multipla in un file di testo

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


Messaggi: 11
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 22:08
Sabato, 16/01/2010
Ciao a tutti e buon anno.
Sicuramente se ne è parlato ma dopo aver fatto una ricerca non ho trovato niente che vada nel particolare.
Spero che ci sia qualcuno che mi possa aiutare.
il problema è questo :
facendo una ricerca in un file testo costituito da molte righe trovo la stringa ricercata ma ho difficoltà ad inserire tutte le stringhe facenti parte di quella cercata in tutte le textbox create.
Mi spiego con un esempio pratico :
Questo di seguito è una parte del file di testo la parola chiave da cercare è LICJ
una volta trovata devo inserire tutte e 5 le righe che fanno parte di LICJ in altrettante textbox.

A|LICJ|PALERMO PUNTA RAISI|38181944|13099444|65
R|02|22|6804|0|0|0|38166269|13085694|42|300|50
R|07|65|10912|0|0|0|38174747|13087817|33|300|50
R|20|202|6804|1|109900|203|38183308|13095258|22|300|57
R|25|245|10912|1|109500|246|38185331|13119275|50|300|57

Spero che qualcuno possa darmi una dritta per risolvere questo problema.
Grazie in anticipo.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:12
Sabato, 16/01/2010
Non capisco la difficoltà dato che dici di aver individuato la riga che cerchi ...

Hai scritto del codice che non funziona? Mostralo o chiarisci la questione meglio ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Parking (Normal User)
Newbie


Messaggi: 11
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 22:17
Sabato, 16/01/2010
Ti chiedo scusa.
Ecco il codice nel quale ho messo i commenti che mi interessano:

Private Sub cmdElabora_Click()
Dim sTesto As String
Dim sTestoFormattato As String
sTestoFormattato = Trim(txtIcao.Text)
Open "airports.txt" For Input As #1
Do While Not EOF(1)
   Input #1, sTesto
          
      If Mid(sTesto, 3, 4) = sTestoFormattato Then
        
         If Left(sTesto, 4) = "fine" Then
            Close #1
            Exit Sub
         End If
         txtNomeAeroporto = Mid(sTesto, 8, 39)
         txtLbl(0) = Mid(sTesto, 41, 48)   ' questo riesco a inserirlo
         txtLbl(1) = Mid(sTesto, 50, 58)   ' questo riesco ad inserirlo
         txtLbl(2) = Mid(sTesto, 59, 63)   ' questo riesco ad inserirlo
         ' adesso devo passare alla seconda riga
         Close #1
         Exit Sub
      End If
   Loop
txtNomeAeroporto = "ICAO CODE NOT FOUND"
Close #1

cmdElabora.Enabled = False
txtIcao.Enabled = False


End Sub

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:24
Sabato, 16/01/2010
Passare alla seconda riga significa leggere nuovamente dal file.

E poi, potresti usare la funzione Split per ottenere tutti i valori senza impazzire con le Mid ...


P.S. Come mai hai scritto

If Left(sTesto, 4) = "fine" Then

dato che "fine" non c'e' nel testo?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Parking (Normal User)
Newbie


Messaggi: 11
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 22:27
Sabato, 16/01/2010
Scusa
infatti stavo facendo delle prove (non riuscite) mettendo una parola alla fine di tutto quello che mi serve e poi cercarlo di gestirlo con delle IF anche annidate.  

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:31
Sabato, 16/01/2010
Dammi le indicazioni che ti ho chiesto ... quali sono i dati che devi inserire nelle textbox?

Elimina quella if con "fine" che non c'entra ... se le righe successive sono sempre 4, devi semplicemente leggere da file con altre 4 Input # ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Parking (Normal User)
Newbie


Messaggi: 11
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 22:33
Sabato, 16/01/2010
Per completezza di informazione di seguito quello che si trova prima e dopo la stringa cercata. Non hanno tutti lo stesso numero di caratteri

A|LICD|LAMPEDUSA|35498056|12618333|70
R|08|79|5905|0|0|0|35496645|12608286|48|300|50
R|26|259|5905|0|0|0|35499289|12627864|70|300|50

A|LICJ|PALERMO PUNTA RAISI|38181944|13099444|65
R|02|22|6804|0|0|0|38166269|13085694|42|300|50
R|07|65|10912|0|0|0|38174747|13087817|33|300|50
R|20|202|6804|1|109900|203|38183308|13095258|22|300|57
R|25|245|10912|1|109500|246|38185331|13119275|50|300|57

A|LICP|PALERMO/BOCCADIFALCO|38110833|13313333|345
R|17|173|4016|0|0|0|38113758|13312975|278|300|50
R|35|353|4016|0|0|0|38106450|13313861|340|300|50



PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:34
Sabato, 16/01/2010
Ok ... ma la riga vuota l'hai messa tu o c'e' veramente?

E, te lo chiedo ancora una volta, quali sono i dati che ti interessano delle varie righe? Tutti?

Ultima modifica effettuata da nessuno il 16/01/2010 alle 22:34


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Parking (Normal User)
Newbie


Messaggi: 11
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 22:38
Sabato, 16/01/2010
La riga vuota c'è e serve a passare da un aeroporto ad un altro.
Quelli che tu vedi sono i dati specifici di un aeroporto e servono tutti.
Per esempio :
LICJ è Palermo Puntaraisi e tutte e 5 le righe sono tutti i dat che devo prelevare uno ad uno.
Mentre LICD è Lampedusa costituito da tre righe devo quindi prelevare tutti i caratteri di tutte e tre le righe.

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo