Ciao a tutti, sto realizzando un programma in vb6 che scriva da un file ASCII corrispondente al tracciato EDI contenente fatture di vendita e scriva solo alcuni valori in un altro file, ma ho problemi ad impostare i cicli di lettura e scrittura.
Queste le operazioni che eseguo, in pseudocodice:
Il problema della logica nasce dal fatto che io scrivo all'interno del file già durante il primo ciclo, e ho impostato le condizioni con gli if, quindi nel file finale avrò un rigo con tutti i record BGM, poi tutti i record NAI, e così via, mentre io nel file finale devo avere un solo rigo per ogni fattura, quindi contenente sullo stesso rigo prima BGM, di seguito NAI, ecc... ma se io scrivo contestualmente nel file va a finire che con il primo if io leggo la riga BGM e scrivo nel file, ricomincio il ciclo e leggo la riga NAI e la scrivo A CAPO nel file, in maniera errata.codice:Open txtPercorsoFileOrigine.Text For Input As #1 'Apro il file origine Open "C:\TRAF2000" For Append as #2 'Apro il file destinazione Do Line input #1, lineal 'lineal è la mia riga tiporiga = Mid$(lineal, 1, 3) 'da questo mi capisco che tipo di linea sto leggendo if tiporiga = "BGM" Then 'Se tiporiga=BGM è l'inizio del pacchetto che devo scrivere nel file '.... 'Scrivo nel file i campi che mi interessano tipodoc = Mid$(lineal, 110, 6) 'Leggo i campi di origine tipodocMulti = tipodoc '...e assegno i valori a variabili che poi userò x scrivere nel file di destinazione Elseif tiporiga = "NAI" then 'prendo altra roba '... End if 'Fatto questo scrivo nel file print #2, tipodocMulti, datadoc, ecc... Loop until EOF(1)
Per meglio spiegarmi in due parole, il ciclo di lettura del file di origine inizia con il tiporiga = BGM e finisce quando nel file di lettura incontro per la seconda volta tiporiga = BGM, oppure quando tiporiga = TMA, che è l'ultima riga nel tracciato contenente i totali, e che pure mi serve
Mi aiutate a capirci come devo strutturare i cicli di lettura e scrittura?

Rispondi quotando