|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jun 2006
Messaggi: 10
|
[Visual Basic] Problema di Stringhe
Ciao a tutti,
non son sicuro di aver aperto altri post in passato per cui intanto saluto tutti e vi ringrazio per le innumerevoli volte in cui mi siete stati d'aiuto. Questa volta, però, non son riuscito a trovare nulla che faccia al caso mio tra i vari post. Il mio problema è banale quanto complesso per le mie conoscenze di visual basic. Io ho un file .txt con un testo molto lungo. Miste, in mezzo al testo, ci sono le seguenti parole: Nome: [ giovanni ] indirizzo: [ via pinco pallino ] e questa struttura si ripete diverse volte nel testo, ma tra queste due righe e le successive due di nome e indirizzo ci sono tante altre parole che nn mi interessano. Quello di cui ho bisogno è creare un nuovo documento di testo in cui è presente solo nome e indirizzo, in questo formato: giovanni;via pinco pallino; nome2;indirizzo2; nome3;indirizzo3; il risultato mi servirà per avere un mini database in excel con solo nome e via, estrapolati dal file iniziale. Quindi ciò che ho pensato di fare è stato copiare tutto il documento in una mega stringa, controllare le parole nella stringa fino a trovare "nome" e dirgli che voglio salvare su un altro file solo il contenuto delle due parentesi [], quindi nel primo caso "giovanni". La stessa cosa poi andrebbe fatta cercando la parola "indirizzo". Entrambe le ricerche però non si dovranno fermare al primo risultato utile ma continuare fino a quando il file di lettura non sarò stato completamente esaminato. Purtroppo con visual basic non sono riuscito a risolvere il problema in nessun modo. Ovviamente non sono obbligato ad usare visual basic, posso tranquillamente usare altri linguaggi... accetto qualsiasi tipo di soluzione che riesca a rendere veloce il salvataggio dei miei dati, compresi degli script di word (se esistono). Grazie a tutti per la vostra pazienza! |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: May 2009
Messaggi: 186
|
Puoi postare il codice che hai utilizzato finora per il parser?
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
importalo in excel...
fai testo in colonna usi come separatore [ e poi cancelli a mano nella colonna 2, che sarà quella che ti interessa, il carattere ] ![]()
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
![]() |
![]() |
![]() |
#4 | |
Junior Member
Iscritto dal: Jun 2006
Messaggi: 10
|
Quote:
Dim leggifile As String leggifile = my.Computer.FileSystem.ReadAllText("documento.txt") e poi provando a usare comandi di confronto inStr, ma effettivamente oltre non riesco ad andare perchè i casi sono due, o elimino tutto tranne quello che mi serve, o tengo solo quello che mi serve... Vi mostro uno spezzone del file di testo, che altro non è che una pagina html: Codice:
<div xmlns:pb="pb" class="client-identifying-pg fix-identifying-pb-noVV"> <h3 class="org">Scuola Elementare </h3><div class="fix-float-identifying-pg"> <address><p> <span class="postal-code">40055</span> <span class="locality">Castenaso</span> <span class="region">(BO)</span> <span class="street-address">Via Nasica, 2</span></p></address> dopo il comando <h3 class="org"> ho il nome della scuola che mi serve, e ovviamente si chiude col tag </h3> poi ho il codice postale dopo il " <span class="postal-code"> " e mi voglio salvare solo il codice postale... lo stesso poi con locality, region e street-address. quindi l'esempio che ho fatto prima con le parentesi quadre [] non era rappresentativo. |
|
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: May 2009
Messaggi: 186
|
Quote:
Può essere una strada. Non è che ci sia molto altro da dire: devi creare un parser HTML, eventualmente utilizzando le regular expression, ma non necessariamente. La cosa non è banale, ma limitandoti alla struttura del file che ti interessa forse non è nemmeno troppo complicato. In rete trovi comunque parecchi esempi. |
|
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Jun 2006
Messaggi: 10
|
Ahimè, di esempi ce ne sono, ma nn ne ho trovati che fanno al caso mio... non trovo un comando che mi permetta di dirgli: visualizza tutta la stringa, quando arrivi a questo tag salva tutto ciò che segue fino alla chiusura del tag, e continua così per tutte le volte che vedi quel tag...
|
![]() |
![]() |
![]() |
#7 | |
Member
Iscritto dal: May 2009
Messaggi: 186
|
Quote:
Comunque, ripeto, puoi anche limitare il controllo al formato che ti serve e scrivere il parser da zero. |
|
![]() |
![]() |
![]() |
#8 |
Junior Member
Iscritto dal: Jun 2006
Messaggi: 10
|
Sembra che sia riuscito a trovare un risultato soddisfacente con uno script Perl...
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:45.