Newsgroup: it.comp.appl.access
Titolo: estrazione di una cifra da testo

Ciao a tutti,
ho un piccolo problemino con l'estrazione di un codice da righe di testo, mi
spiego meglio:
giornalmente, attraverso un programma batch creo un file, nominato lista.txt
che mi restituisce l'elenco di tutti i file di una cartella con relative
sottocartelle. Il formato è più o meno il seguente:
c:\documenti\articoli\casalingo\ceramica\1234567891234.jpg
c:\documenti\articoli\pelletteria\valigie\12345678.jpg
i codici generati non sono altro che CODICI A BARRE a 8 e 13 cifre miste tra
loro.
Questo file lo devo COLLEGARE ad access e tramite una query di accodamento
voglio che venga creata una nuova tabella con due campi che siano
rispettivamente:
PERCORSO che contiene il percorso e nomefile così come contenuti nel file di
testo
CODICE che deve contenere solo il codice, ad esempio 1234567891234 oppure
12345678
avrei pensato a questo:
conteggio dalla lunghezza della riga col percorso dalla fine, fino
all'ultimo "\" e poitramite una funzione mid$ fino alla lunghezza del
percorso -4 (.jpg)
il problema è che non so come fare questo conteggio fino all'ultimo "\"
se potete aiutatemi...
Grazie 1000
--
Nicola

 ha scritto nel messaggio
news:uO_Y8.56506$K_4.1...@twister1.libero.it...

Io userei un ciclo do ... loop dal 1° carattere fino a quando intercetti "\"
(con una if che esce dal ciclo quando trova la barra).
Man mano che gira il ciclo aggiorni una variabile intera e quella è la
posizione di "\".
--
Fabio Dalla Villa
Biella
nomec...@tiscali.it

Ciao sono Massimo, per fare una cosa simile a quella che ti è necessaria ho
utilizzato questo cilco for -next.
Puoi utilizzarlo modificando i nomi delle variabili.
Ciao.
'trova la posizione dell'ultimo slash '\' nella stringa del percorso del
database corrente
    For PosizioneUltimoSlashDatabase = Len(PercorsoDatabaseCorrente) To 1
Step -1
        If Mid(PercorsoDatabaseCorrente, PosizioneUltimoSlashDatabase, 1) =
"\" Then Exit For
    Next PosizioneUltimoSlashDatabase


wrote:

vedi l'istruzione instr()
Saluti.
Emanuele.

se cerco instr() nella guida di access 2000 mi da un foglio tutto in inglese
e giapponese che tratta di tutto tranne che dell'istruzione cercata...
tra le funzioni c'è ma non riesco a decifrare i parametri...
--
Nicola

tra le funzioni c'è ma non riesco a decifrare i parametri...
instr(partenzaricerca,stringa,stringadacercare)  ti restituisce la
posizione della sottostringa
Saluti.
Emanuele.

magari sapessi da dove partire, il problema sta proprio li...
cmq avrei escogitato un'altro stratagemma e come al solito mi sono
impallato....
mi spiego
in una query mi creo i campi calcolati:
lunghstring: len([percorso])
lung13:[lungstrin]-18
lung8:[lungstrin]-13
e fin qui ci siamo (o almeno in parte)
adesso nei due casi vorrei controllare se lung13 e lung8 o meglio il
carattere della posizione restituita sia "\" ed è qui che mi sono bloccato
come faccio ad avere il carattere contenuto nella posizione lung13 e
lung8????
--
Nicola

lung8????
instr(partenzaricerca,stringa,stringadacercare)  ti restituisce la
posizione della sottostringa
guarda che come partenzaricerca devi mettere uno e lui ti parte la
ricerca dal primo carattere, poi cicli un pň per trovare l'ultima
ricorrenza di "\"
oppure fai un 
for contatore = len(stringa) to 1 step -1
if mid(stringa,contatore)="\" then
	trovato=contatore
	contatore =1
next
č molto semplice anche cosě
Saluti.
Emanuele.

Ti ringrazio per la pazienza, ma ragionandoci bene ho risolto la cosa in
modo MOLTO più semplice...
ho collegatgo il file di testo NON a righe intere ma delimitato dal
carattere \
in una query poi ho concatenato i campi per ottenere il percorso completo, e
per il codice ho usato il campo che lo conteneva meno 4 posizioni
dell'estensione....
più semplice di così si muore...
grazie cmq e al prossimo dilemma...
--
Nicola

Ciao a tutti,

ciao Nicola,
scusa se miintrometto, ma io avrei una esigenza simile alla tua.
devo creare quel programma batch che crea la lista.
puoi dirmi come si fa?
grazie mille
Saluti
Fabià

allora, creati un file batch ad esempio lista.bat
dentro mettici questo:
@echo off
dir c:\[percorso]\*.* /b /on /l /s  >lista.txt
quando avvii il programma in c:\ ti verrà creato un file lista.txt che
contiene tutti i percorsi dei file nel percorso specificato...
se ad esempio vuoi che ti vengano elencati solo i file jpg devi sostituire
*.* con *.jpg
--
Nicola