Michele wrote:
Ciao Marco,

Mi piacerebbe cercare di aiutarti ma non sono sicuro di aver capito
bene il procedimento. Provo a farti un paio di domande

grazie per l'interesse!!

Hai scritto:
devo trovare la prima riga che inizia con 20;
inserire sopra la riga trovata un riga (che inizia con 170000........)
prendendo i dati
da una tabella e usando come chiave di ricerca un stringa presente nella
riga 20;

occhio agli zeri, a volte ne usi 4 17000 a volte solo due 1700 a volte
solo uno 20, ma lasciamo perdere questo.
Sono campi di un file CBI per fare i bonifici bancari, rispettano quindi le indicazioni
di  www.associazionecbi.it.
Per esempio il tracciato record della riga che inizia con 10 è (i numeri a sinistra sono la posizione del carattere):
1 filler
2-3 tipo record cod. fisso 10
4-10 num. progressivo che inizia da 0000001 (ogni bonifico è composto da X righe, questo progressivo
cambia quando cambia la disposizione: in un file puoi fare N bonifici)
11-16 filler (blank)
17-22 data esecuzione ecc.
e così via fino a 120

Domanda 1: la tabella in cui cerchi i dati e' gia' in formato ods (e'
una tabella di Calc)?
Sì, può essere una tabella di Calc

inserire sopra la riga 1700 una riga (16000..) con dei dati ripresi da
una tabella con
il riferimento ricavato dalla lettura della riga 10.

Domanda 2: guardando il tuo esempio di risultato mi sembra che non
basta sapere l'inizio del numero di riga da inserire, ma bisogna
sapere anche la fine. Nel tuo esempio, nel file finale hai due righe
che iniziano per 1700. Come si ricava il numero della riga da
inserire?
Ho due righe che iniziano con 1700 perché sono due bonifici diversi all'interno dello stesso file. La riga inizia con 170000001.......il bonifico successivo con 170000002.... poi con 170000003
e così via (spero di essere stato chiaro).

Domanda 3: Riga 10 significa la prima riga che inizia con 10 giusto?
Un file CBI è composto da:
Riga n.1 record di testa (inizia con la stringa fissa PC + dati vari)
Riga n.2 codice fisso 10: 10 + 000000n + altri dati
Riga n.3 codice fisso 16: 16 + 000000n + dati dell'ordinante il bonifico (RIGA CHE DEVO AGGIUNGERE) Riga n.3 codice fisso 17: 17 + 000000n + dati beneficiario (RIGA CHE DEVO AGGIUNGERE)
Riga n.4 codice fisso 20: 20 + 000000n + dati azienda ordinante
Riga n.5 codice fisso 30: 30 + 000000n + dati del beneficiario + cod. fiscale
Riga n.6 codice fisso 40: 40 + 000000n + varie
Riga n.7 codice fisso 50 oppure 60 con dati vari
Riga n.8 codice fisso 70: 70 + 000000n + varie
Riga ultima: record di coda (inizia con la stringa fissa EF + i dati del record di testa)

Le righe dalla n.2 alla n.8 sono ripetute (con dati diversi ovviamente) per ogni singolo bonifico. Il file è quindi composto da: 1 record di testa + (7Xnum_bonifici) +record di coda.
Spero sia più chiaro ora.

Domanda 4: se ho capito bene la riga 10 che ti da' la chiave e' quella
*precedente* o meglio quella che inizia con 10 ma finisce nello stesso
modo della riga cheinizia con 20 dalla quale sei partito. Esempio se
sto esaminando la riga 20005678 la chiave per i dati da mettere nella
riga 16005678 e' nella riga 10005678. Giusto?

alcuni dati sono da ricavare dalla riga che descrive il beneficiario e altri dalla riga che descrive l'azienda (in pratica dalla 10, dalla 20 e dalla 30). Quale prendere effettivamente posso deciderlo
quando capisco come fare a risolvere il problema.

Quanto sopra fino al raggiungimento del fine file

Domanda 5: Devi ripetere l'algoritmo solo per le righe che iniziano con 20?

Certo, devo aggiungere quelle righe per ogni bonifico nel file.

Domanda 6: Nell'esempio hai scambiato utente e ditta tra il file
sorgente e il file destinazione. Immagino che sia solo un errore di
copia-incolla giusto?
E' possibile, spero di avere spiegato meglio più sopra.


In linea di massima mi sembra una cosa piuttosto difficile da fare e
quasi di sicuro ti servira' una macro. Ora se per scrivere la macro ti
ci vuole 3 giorni mentre per fare il lavoro a mano ti ce ne vogliono
2... beh... avrai gia' capito dove voglio arrivare :-)
Sono un centinaio di bonifici, il problema è che ci possono essere errori nel farlo manualmente.
Se riesco a trovare un sistema automatico o semi-automatico è meglio.


Ciao,

Michele


Ciao Marco



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a