Newsgroup: it.comp.lang.visual-basic
Titolo: da file di testo estrapolare vari dati

sono alle prime armi con il vb6
ho un file di testo tipo:
Nome: XXXXXXX   Data di nascita: 05-06-1980   città: YYYYYY
....
....
eccetera per altre righe
come posso estrapolare i dati che mi servono (cioé XXXXXX 05/06/1980
YYYYYY)?
grazie a tutti.

 ha scritto nel messaggio 
news:1181050198.3...@m36g2000hse.googlegroups.com...

Prima di tutto bisogna sapere la logica che ti fa identificare un dato, poi 
ci si lavora sopra.
Ciao 

 Ciao
hai ragione.
dunque secondo me bisognerebbe:
- creare una matrice tipo stringa
- aprire il file con "Open <file> For Input As #1"
- leggere una riga con split (delimitatore tab?) di modo da separare
le varie parole del testo.
- eliminare le parole che si ripetono (nome: Data di nascita:) ovvero
"tutte quelle che finiscono con ":" le salto)
- memorizzare le parole in un altro file di testo
- ripetere per ciascuna riga
il problema sorge con l'operatore split (che crea sì una matrice ma
che non riesco "a leggerla", perlomeno non mi ritornano stringhe...).
potreste darmi una dritta su come fare? mi sto perdendo...
grazie per la risposta

 potreste darmi una dritta su come fare? mi sto perdendo...
Cioč non fa quello per cui č stata scritta? :)
Dim s() as string
s = Split(Riga, vbTab)
Ciao

 Ciao
ti posto le righe che sto cercando di scrivere. grazie comunque per
l'aiuto.
    Const strSep  As String = " "
    Dim strFile   As String
    Dim intFile   As Integer
    Dim s() As String
    Dim strMatrice() As String
    Dim lVar As Long
    Open strFile For Input As #intFile
        s = Split(intFile, vbTab)
    Close #intFile
    ReDim strMatrice(LBound(s) To UBound(s))
    For lVar = LBound(s) To UBound(s)
        strMatrice(lVar) = Split(s(lVar), strSep) <==== ERRORE "Tipo
non corrispondente!"
    Next

> grazie a tutti.
puoi usere la funzione INSTR per trovare la posizione della stringa "Nome:", 
"Data" etc e poi (note le posizioni dei vari campi) con Mid$ estrapoli ciò 
che ti interessa.
Marco 

    Close #intFile
intFile è un intero, mica una stringa
La stringa la devi leggere.
Se è una linea di testo puoi usare Line Input
Se invece vuoi leggere TUTTE le righe in un colpo solo ti serve Input(), ma 
lo split va fatto sul terminatore di linea, che per windows di solito è 
vbCrLf.
Cerca sula guida la sintassi che ora non ricordo.
Ciao 

 Ciao
hai ragione!
ti posto quello che sono riuscito a fare:
    Const strSep  As String = " "
    Dim strFile   As String
    Dim intFile   As Integer
    Dim s() As String
    Dim vMatrice() As Variant
    Dim lVar As Long
    strFile = App.Path & "\prova.txt"
    intFile = FreeFile(0)

 ha scritto nel messaggionews:1181053268.4...@k79g2000hse.googlegroups.com...

    Const strSep  As String = " "
    Dim strFile   As String
    Dim intFile   As Integer
    Dim s() As String
    Dim vMatrice() As Variant
    Dim lVar As Long
    strFile = App.Path & "\prova.txt"
    intFile = FreeFile(0)
    Open strFile For Input As #intFile
        s = Split(Input$(LOF(intFile), #intFile), vbCrLf)
    Close #intFile
    ReDim vMatrice(LBound(s) To UBound(s))
    For lVar = LBound(s) To UBound(s)
        vMatrice(lVar) = Split(s(lVar), strSep)
    Next
Quindi la matrice è carica. Come faccio ora a scrivere i dati in un
file di testo, eliminando "data:", "nome:" eccetera?
mille grazie e scusatemi per l'altro post... mi è scappato l'invia :)