Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Estrarre da elenchi
Forum - Visual Basic 6 - Estrarre da elenchi

Avatar
barilla (Normal User)
Newbie


Messaggi: 8
Iscritto: 13/05/2007

Segnala al moderatore
Postato alle 18:36
Domenica, 20/05/2007
Salve
sto cercando di estrarre dei dati da 2 file ma dopo vari tentativi riesco solo ad estrarre la prima riga.
Questo è il codice del listato:

---------
CLS
OPEN "elenco1.txt" FOR INPUT AS #1
OPEN "elenco2.TXT" FOR INPUT AS #2
OPEN "finale3.TXT" FOR OUTPUT AS #3
LINE INPUT #1, A$
LEGGI:
IF EOF(2)  THEN GOTO FINE
LINE INPUT #2, B$
IF MID$(A$, 1, 13) = MID$(B$, 1, 13) THEN C$ = MID$(B$, 1, 30):PRINT #3, C$:
GOTO LEGGI
FINE:
CLOSE #1
CLOSE #2
CLOSE #3
SYSTEM
----------

Questi sono gli esempi di file:

elenco1.txt (elenco dati totale)

1111111111111;a;b;c;1;2;3
2222222222222;a;b;c;1;2;3
3333333333333;a;b;c;1;2;3
4444444444444;a;b;c;1;2;3
5555555555555;a;b;c;1;2;3
6666666666666;a;b;c;1;2;3
7777777777777;a;b;c;1;2;3
8888888888888;a;b;c;1;2;3

elenco2.txt (elenco dati da estrarre e completare)

2222222222222
6666666666666
8888888888888

finale3.txt (risultato finale)

2222222222222;a;b;c;1;2;3;
6666666666666;a;b;c;1;2;3;
8888888888888;a;b;c;1;2;3;
come devo fare per aver il finale3?
Grazie per l'aiuto

Ultima modifica effettuata da barilla il 20/05/2007 alle 18:38
PM Quote
Avatar
motoboy (Ex-Member)
Pro


Messaggi: 152
Iscritto: 05/04/2007

Segnala al moderatore
Postato alle 20:13
Martedì, 22/05/2007
scusami.
non ho capito cosa dovresti fare..

PM Quote
Avatar
barilla (Normal User)
Newbie


Messaggi: 8
Iscritto: 13/05/2007

Segnala al moderatore
Postato alle 23:51
Martedì, 22/05/2007
La cosa è molto semplice
L'elenco1 è un listino articoli completo di tutti i dati che sono divisi a campi da ";" ed il primo campo e un codice numerico a 13 cifre
L'elenco2 e un file generato da un terminalino lettore di codice barre dove vengono generati più campi dove il  primo campo e sempre un codice numerico a 13 cifre mentre gli altri sono altri dati numerici sempre divisi da ";"
Il finale3 non è altro che il risultato tra la ricerca dei campi dell'elenco2 nell'elenco1 completo di tutti i campi sia del elenco1 che dell'elenco2.
Ancora più semplicemente sparando con il lettore laser su dei prodotti mi genera un codice a barre, una quantità e un suffisso(elenco2).
Questi dati poi scaricati sul pc, in un folder da un terzo programma, vanno elaborati  cioè fanno una ricerca nel listino(elenco1) e vengono estratti e completati dei dati nel nuovo file (finale3) in modo da generare una copia d'ordine.
Il mio problema dunque è che con quel listato riesco nell'intento ma solo per quanto riguarda il primo file dell' elenco2 non riuscendo a capire come far fare la ricerca dei successivi record.
Tutto questo è per evitare di usare l'excel con il "cerca.vert"
Mi accontento di un semplice listato in Qbasic.
Spero di essere stato chiaro per qualsiasi cosa scrivete.
Grazie ed a buon rendere.... ciao

Ultima modifica effettuata da barilla il 22/05/2007 alle 23:54
PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 14:08
Mercoledì, 23/05/2007
non postare in più sezioni.
e secondo questa è la sezione vb6 non qbasic.
capisco che sono simili ma non saprei quali funzioni potrei utilizzare per aiutarti.
in teoria devi confrontare i rusultati del 2 listato coi primi 13 caratteri di ogni riga primo listato se concidono prendi l'intera riga e la mostri.
esistono gli array (VETTORI) in qbasic?
se si è una cazzata.
basta che all'avvio dividi i vari listati in array poi confronti gli array con i cicli a corrispondenza esatta il valore della variabile contatore è l'array corretto del listato1 da eseere mostrato.

Ultima modifica effettuata da P4p3r0g4 il 23/05/2007 alle 14:13
PM Quote