Newsgroup: it.comp.appl.access
Titolo: importazione testo e controllo sulle stringhe

Devo elaborare un file di testo in access, non tutte le stringhe (intendo
una linea intera di testo) dovranno essere copiate nei campi della tabella,
infatti alcune andranno scartate secondo il valore assunto da una
sottostringa di controllo.
Tramite la funzione line input scorro il file, raggiunta la sottostringa di
controllo se questa è uguale (ad es "999") l'intera stringa viene scartata e
passo alla successiva.
Proprio quest'ultima operazione mi blocca.
Quale istruzione è appropriato affinchè il cursore abbandoni la linea per
passare a testarne una nuova.
Spero di essere stato abbastanza chiaro e confido nel vostro aiuto.
grazie

 ha scritto nel messaggio 
news:N2D4e.27997$IN.5...@twister2.libero.it...

Ciao,
se vuoi lavorare sulle stringhe e quindi aprirti il file, sistemartelo per 
bene per poi "risalvarlo" le funzioni che puoi utilizzare sono 
fondamentalmente le seguenti:
Instr, Mid, Left, Right, Trim$, Len etc....
In particolare è Instr che ti restituisce la posizione inziale (la prima 
lettera...)  di una stringa all'interno di un'altra...in questo senso forse 
ti riferisci a posizionare il cursore da qualche parte...
Io, ad es., per tirarmi fuori i valori dal seguente testo:
-----------
Contatto
----------------------------
NOME: pinco
COGNOME: pallino
EMAIL: 
pinco....@tin.it
Società
----------------------------
SOCIETA: pinco srl
VIA: venezia nr 32
CAP: 33010
CITTA': udine
TELEFONO: 333646464
FAX: 06050578
------------------------------
ho utilizzato il seguente codice
'stabilisco la lunghezza del testo
lunghezza = Len(testo)
'assegno alla variabile str1 il contenuto del testo
str1 = Trim$(testo)
'assegno alla variabile str2 la stringa "NOME:"
 str2 = "NOME:"
'InStr(1, str1, str2) mi restituisce la posizione della "N" - prima lettera 
trovata della
'stringa "NOME:" all'interno del mio testo e quindi mi sposto alla fine di 
"NOME:" e
'memorizzo la sua posizione nella variabile i
i = InStr(1, str1, str2) + 5
'assegno alla variabile str3 la stringa "COGNOME:"
 str3 = "COGNOME:"
'Cerco all'interno del testo la prima lettera della stringa "COGNOME:"
' e mi sposto indietro di 2 posizioni
j = InStr(1, str1, str3) - 2
'memorizzo nella variabile diff la differenza (valore numerico)
'del seguente intervallo "NOME:"-------intervallo--------------"COGNOME"
 diff = j - i
 'Asseggno alla variabile nome il contenuto del testo, senza spazi, che 
trovo
 'nel precedente intervallo
  NOME = Trim$(Mid(testo, i, diff))
  'assegno alla variabile str4 la stringa "EMAIL:"
   str4 = "EMAIL:"
   'assegno alla variabile x la posizione (all'interno del testo) della 
prima
   'lettera della stringa "EMAIL:" (E) decrementandola di 2 valori
   x = InStr(1, str1, str4) - 2
   'Assegno alla variabile diff1 il valore numerico del
   'seguente intervallo "COGNOME:" ------nr caratteri-------"EMAIL:"
    diff1 = x - diff
   'Assegno alla variabile cognome la stringa di testo che trovo nel 
precedente
   'intervallo togliendo gli spazi iniziali e finali...praticamente il 
cognome per l'appunto
    COGNOME = Trim$(Mid(testo, diff1, diff))
    'assegno alla variabile str5 la stringa "Società"
     str5 = "Società"
   'assegno alla variabile i la posizione (all'interno del testo) della 
prima
   'lettera della stringa "Società" (S) decrementandola di 2 valori
    i = InStr(1, str1, str5) - 2
   'incremento la variabile x di 7 valori spostandomi quindi alla
   'fine della stringa "EMAIL:"
    x = x + 8
   'Assegno alla variabile diff il valore numerico del
   'seguente intervallo "EMAIL:" ------nr caratteri-------"Società"
    diff = i - x
    EMAIL = Trim$(Mid(testo, x, diff))
    'assegno alla variabile str6 la stringa "SOCIETA"
     str6 = "SOCIETA"
   'assegno alla variabile i la posizione (all'interno del testo) della 
prima
   'lettera seguente alla stringa "SOCIETA:"
    i = InStr(1, str1, str6) + 8
    'assegno alla variabile str7 la stringa "VIA"
     str7 = "VIA"
   'assegno alla variabile x la posizione (all'interno del testo) del
   'carattere precedente la stringa "VIA"
    x = InStr(1, str1, str7) - 2
    'Calcolo la differenza, in termini di numeri di caratteri
    'fra "SOCIETA" E "VIA",cioè "SOCIETA"------nr caratteri-------"VIA"
    'assegno la precedente differenza alla variabile diff
     diff = x - i
     'cerco all'interno del testo il nome della società
      SOCIETA = Trim$(Mid(testo, i, diff))
     'mi posiziono alla fine di "VIA"...ne assegno il valore alla z
      z = x + 6
      'assegno "CAP" a str8
       str8 = "CAP"
     'assegno alla variabile x la posizione (all'interno del testo) del
     'carattere precedente la stringa "CAP"
       x = InStr(1, str1, str8) - 2
     'calcolo la seguente differenza numerica di caratteri
     ' "VIA"------intervallo-----------"CAP"
      'ne assegno il valore a diff
       diff = x - z
     'assegno
      VIA = Trim$(Mid(testo, z, diff))
      'mi posiziono appena dopo "CAP:"
      x = x + 6
     'assegno a str9 la stringa "CITTA'"
      str9 = "CITTA'"
     'cerco la stringa "CITTA'" pozionandomi prima...
     y = InStr(1, str1, str9) - 2
     'determino la distanza "CAP:"--------------------"CITTA'"
     'assegnandone il valore a diff
     diff = y - x
     'assegno a cap il relativo valore
      CAP = Trim$(Mid(testo, x, diff))
     'mi posiziono alla fine di"CITTA'".......
     y = y + 9
     'assegno a str10 la stringa "TELEFONO:"
      str10 = "TELEFONO:"
     'trovo la stringa "TELEFONO:" all'interno del testo
     'posizionadomi prima
     z = InStr(1, str1, str10) - 2
     'calcolo la differenza "CITTA'"---------------------"TELEFONO:"
      diff = z - y
     'all'interno della differenza di prima trovo il valore
     'della città e lo memorizzo in citta
     CITTA = Trim$(Mid(testo, y, diff))
    'mi posiziono dopo "TELEFONO:"
    z = z + 11
     'assegno a str11 la stringa "FAX"
     str11 = "FAX"
     'cerco la stringa "FAX:" posiondomi prima
     'ed assegnandone il valore a x
     x = InStr(1, str1, str11) - 2
     'calcolo la distanza numerici in termini di caratteri
     'fra "TELEFONO:"------------------"FAX:"
     'ne assegno il valore a diff
     diff = x - z
     'trovo il valore telefono all'interno del mio intervallo
     'assegnandolo alla omonima variabile
     TELEFONO = Trim$(Mid(testo, z, diff))
     'mi posiziono alla fine di "FAX:"
     x = x + 6
     'calcolo il nr di carattere "FAX:" ------------fine testo
     diff = lunghezza - x
     'assegno il nr di fax alla omonima variabile
     FAX = Trim$(Mid(testo, x, diff))
------------------------------------------------------------------
Spero di esserti stato in qualche modo d'aiuto...
Gaspare