VB6: Passaggio dati

mercoledì 01 aprile 2009 - 11.30

Sig. Travis Profilo | Junior Member

Ciao ragazzi,
ho un problemino che non riesco a risolvere e/o trovare la causa, ma forse è colpa della mia ignoranza in materia:

costruisco un array di stringhe tutte formattate ad una lunghezza di 48 caratteri ed in un ciclo For/Next le passo una alla volta ad una funzione che provvede a stamparle in un file di testo.

Ho inserito delle trace che in fase di test mi tengono traccia durante la costruzione delle stringhe ed effettivamente prima di essere inviate alla funzione di scrittura, sono perfette; nel file tali stringhe vengono scritte decurtate di un carattere.

Quale potrebbe essere la causa? Devo inserire degli apici?

Grazie,
Ciao\G

ysdemarc Profilo | Expert

in che modo apri e scrivi il file?

se stai usando ad esempio la modalità Random e scrivendo con la Put molto probabilmente sbagli a definire la lunghezza della riga di scrittura per cui ti taglia tutto a seconda di quello che hai definito nella Len

Vincenzo
Programmatore sbilenco

Sig. Travis Profilo | Junior Member

Purtroppo non sono io che gestisco il file, però orientativamente essendo un dispositivo contabile, il file viene creato ed aperto all'apertura della giornata contabile e di conseguenza chiuso.

Non so come viene gestita l'operazione di chiusura però tutti gli altri dispositivi che utilizzano questo file scrivono righe di 48 caratteri senza alcun problema; ho più idea che si possa trattare di una questione di Line Feed. Tu che pensi?

Grazie,

Ciao\G

ysdemarc Profilo | Expert

>Purtroppo non sono io che gestisco il file, però orientativamente essendo un dispositivo contabile, il file viene creato ed aperto all'apertura della giornata contabile e di conseguenza chiuso.

Ma tu con che istruzione scrivi nel file? immagino Print... e come sai che file è, da qualche parte hai il numero file?
Penso che dovresti aprirlo sempre in Append e scrivere no?


>Non so come viene gestita l'operazione di chiusura però tutti gli altri dispositivi che utilizzano questo file scrivono righe di 48 caratteri senza alcun problema; ho più idea che si possa trattare di una questione di Line Feed. Tu che pensi?

E' possibile che all'interno della riga magari hai qualche byte che taglia la riga e va a capo, ma se così fosse aprendo fisicamente il file con un editor (in caso di file sequenziale) dovresti accorgertene subito. Oppure qualcosa del genere mi capitava scrivendo con Put una variabile dichiarata con Type.. dove i campi stringa che non valorizzavo a volte (e non so perchè non sempre) piuttosto che space contenevano zero binario.

cmq..bisognerebbe vedere il codice per capire
Vincenzo
Programmatore sbilenco

Sig. Travis Profilo | Junior Member

Ciao Vin,

il file viene aperto al 100% in append, è un file giornaliero e conosco la tipologia in quanto viene scritto in un folder apposito che raccoglie le movimentazioni giorno per giorno su ogni singolo file.

Con l'editor di testo ho appurato che l'ultimo carattere che gli dico di scrivere, viene sovrascritto con un line feed, ma non chiedermi perchè; ho così provato ad aggiungere un caratter blank al termine della costruzione delle stringhe e MIRACOLO! ora funziona.

Grazie per l'attenzione,
Ciao\G
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5