Newsgroup: it.comp.appl.access
Titolo: importare da testo

Gentili signori,
innanzi tutto vi ringrazio per la disponibilità e per gli ottimi consigli
che date su questo ng. Infatti giornalmente leggo decine di spunti ed idee
che talvolta utilizzo anche per il mio piccolo grande db.
Ho intenzione di avventurarmi in un programmino (sono ancora alle prime armi
con vb) che estrapoli da un testo preformattato quasi standard, i campi per
riempire una maschera, lavoro che ad oggi viene eseguito a mano previa
stampa e tramite ridigitazione da un operatore; in futuro vorrei che il
lavoro dell'operatore fosse solo quello di controllo.
Vado ad esemplificare: ho un txt così:
Ordine IL2EL7PO
------------------------------------------
Articolo: cu039 Alterazioni del controllo posturale in età evolutiva e
patologie del rachide  - Rumiano C., Di Marco A.
Varianti:
   1)
   2)
   3)
Quantità: 1
Prezzo:   22,10
Totale:   22,10
Iva:   0,00
Articolo: ee079 Tecnica della ginnastica medica - Educazione motoria
preventiva e compensativa - SCOLIOSI - Sergio Pivetta, Marco Pivetta
Varianti:
   1)
   2)
   3)
Quantità: 1
Prezzo:   27,00
Totale:   27,00
Iva:   0,00
------------------------------------------
Totale netto: Euro  49,10
Spedizione: Euro  4,00
IVA: Euro  0,00
Totale + spese + IVA: Euro  53,10
Pagamento: Pacco Ordinario - da 4 a 7 euro
Nome e cognome: Scilabra Davide
Ragione sociale:
IVA o CF: scsdaee3242fs
Indirizzo: via osacca 13
CAP: 43100
Localita': Parma
Denominazione spedizione:
Indirizzo spedizione:
CAP spedizione:
Localita' spedizione:
Stato: Italia
Telefono:
E-mail: dav...@aparma.comNote:
Provenienza:
Provincia: pr
Fattura: No
Cellulare: 33312312312e mi interessa "grabbare" solo le informazioni che mi
interessano: telefono, nome e cognome, codice ordine, data ordine, email,
ecc.Chiedo gentilmente A) è possibile? B) qualche dritta per cominciare. Ho
pensato ad un programma esterno che mi restituisca un csv da importare,
oppure ad una scansione passo passo: vai avanti fino a quando trovi la
stringa "Nome e Cognome: " e importa il testo rimanente fino a fine riga
nella casella NomeCognome. Ovviamente visto che lo facevo sul Pascal ho
supposto sia possibile anche su vb.Tenete presente che gli ordini da
importare sarebbero una decina alla volta.Ringrazio anticipatamente chi mi
aiuterà. NB non ho richiesto alcun codice ma se serve per esemplificare sarà
sicuramente graditissimo.Buona serataDavide

 ha scritto nel messaggio 
news:4363b11c$0$8482$5fc...@news.tiscali.it...

Se davvero vuoi trovare dove si pesentano determinate stringhe puoi usare la 
funazione
INSTR
nel codice sotto c'è la funzione vera e propria e una sub che funge da 
esempio per le
chiamate alla funzione
Function EstraiContenuto(sTestoTotale As String, sDaCercare, Optional 
iPosPrec) As String
Dim iPosizione As Integer, iLung As Integer, sTemp As String
Dim iCR As Integer ' carattere di fine riga
iLung = Len(sDaCercare)          ' ---- la lunghezza della sequenza cercata
If Not IsMissing(iPosPrec) Then
    'in questo caso vuol dire che potresti trovare
    'la stessa sequenza in più punti del testo
    'Devi creare un ciclo che estrae una accezione alla volta
    'e per ricordare da dove iniziare la prox ricerca devi passare
    'iPosPrec opportunamente impostato alla fine della posizione precedente
Else
    'cerco la posizione di inizio
    iPosizione = InStr(sTestoTotale, sDaCercare)
    'aggiungo subito la lunghezza di sDaCercare per portarmi _
        all'inizio dei dati veri e propri
    iPosizione = iPosizione + iLung
    '---------------ottengo solo la parte destra del testo
    sTemp = Mid(sTestoTotale, iPosizione)
    '--adesso cerco il prox fine riga(LF) o un CRLF(INVIO = CR +LF)
    If Len(sTemp) Then
        iCR = InStr(sTemp, vbCr)
            If iCR Then sTemp = Left(sTemp, iCR - 1)
            sTemp = Trim(sTemp) 'ripulisco spazi in testa e coda
        'iCRLF = InStr(sTemp, vbCrLf)
    End If
End If
EstraiContenuto = sTemp
End Function
Sub Cerca()
Dim sDaCercare As String, sT As String, sA As String
Dim iPosPrec As Integer
'simulo la presenza del testo formattato ( ho inserito solo una parte, 
funzionale all'esempio)
sT = "Totale netto: Euro  49,10" & vbCrLf & "Spedizione: Euro  4,00" & 
vbCrLf & "IVA: Euro  0,00" _
     & vbCrLf & "Totale + spese + IVA: Euro  53,10" & vbCrLf & "Pagamento: 
Pacco Ordinario - da 4 a 7 euro" _
     & vbCrLf & "Nome e cognome: Scilabra Davide" & vbCrLf & "Ragione 
sociale:" _
     & vbCrLf & "IVA o CF: scsdaee3242fs" & vbCrLf & "Indirizzo: via osacca 
13" & vbCrLf & "CAP: 43100" _
     & vbCrLf & "Localita': Parma" & vbCrLf & "Denominazione spedizione:" & 
vbCrLf & "Indirizzo spedizione:" _
     & vbCrLf & "CAP spedizione:" & vbCrLf & "Localita' spedizione:" & 
vbCrLf & "Stato: Italia" _
     & vbCrLf & "Telefono: 051 051051" & vbCrLf & "E-mail: 
dav...@aparma.com
" & vbCrLf & "Note:"
'in questo caso otteniamo un valore
sDaCercare = "Nome e cognome:"  ' ---- la sequenza nota
sA = EstraiContenuto(sT, sDaCercare)
MsgBox sA
'in questo caso otteniamo una stringa vuota
'a lunghezza zero : dovrai gestire questi casi
sDaCercare = "CAP spedizione:"
sA = EstraiContenuto(sT, sDaCercare)
MsgBox sA
End Sub