Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Terminare un Ciclo di lettura di un file excel tramite datareader
martedì 14 ottobre 2008 - 18.27
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Sig. Travis
Profilo
| Junior Member
104
messaggi | Data Invio:
mar 14 ott 2008 - 18:27
Ciao ragazzi, in un datareader come faccio a far terminare il ciclo di lettura? Su quale proprietà o metodo posso far affidamento per far terminare il ciclo di lettura?
Apro una connessione ad un file excel dopo avervi associato una stringa di comando;
eseguo il comando effetuando una lettura fuori ciclo;
entro nel ciclo per leggere i dati presenti nelle varie colonne;
leggo la prossima riga all'interno del ciclo.
Nel file Excel, anche la riga successiva all'utlima buona da leggere, non risulta propriamente NULL e quindi non riesco ad individuare un metodo per impostare una qualsiasi variabile per far terminare il ciclo.
Mi sapete aiutare?
Grazie mille,
Ciao\G
luigidibiasi
Profilo
| Guru
1.077
messaggi | Data Invio:
mar 14 ott 2008 - 23:06
Ciao,
usi un ciclo di tipo
while datareader1.read
end while
oppure un ciclo usando do while?
forse ti conviene postare il codice che usi per far capire meglio dove sta l'inghippo. (se ho capito bene ti legge una riga in più?)
Luigi Di Biasi
Sig. Travis
Profilo
| Junior Member
104
messaggi | Data Invio:
mer 15 ott 2008 - 09:55
Non so se conosci ma lavoro in COBOL Fujitsu for .NET e questo è il codice:
***--> Leggo il foglio Excel; lettura fuori ciclo.
INVOKE ExcelReader "Read" RETURNING RigheLette.
INVOKE RigheLette "ToString" RETURNING Vero.
INVOKE CLASS-STRING "Compare" USING BY VALUE Vero BY VALUE "True" RETURNING HoLetto.
PERFORM VARYING NumberRow FROM 2 BY 1 UNTIL HoLetto NOT EQUAL ZEROES
***--> Inizializzo le aree di appoggio dati.
SET NomeModulo TO NULL
SET Paragrafo TO NULL
SET Tipo TO NULL
SET Percorso TO NULL
SET Codice TO NULL
INITIALIZE RigaCol
INITIALIZE AppoRiga
INITIALIZE AppoColonna
INITIALIZE ColonnaCol
INITIALIZE NumberColumn
***--> Prima Colonna: Nome Modulo.
INVOKE ExcelReader "GetString" USING BY VALUE NumberColumn RETURNING NomeModulo
***--> Seconda Colonna: Nome del Paragrafo.
ADD +1 TO NumberColumn
INVOKE ExcelReader "GetString" USING BY VALUE NumberColumn RETURNING Paragrafo
***--> Terza Colonna: Tipo di Codice(Paragrafo o Section).
ADD +1 TO NumberColumn
INVOKE ExcelReader "GetString" USING BY VALUE NumberColumn RETURNING Tipo
***--> Quarta Colonna: Pathname.
ADD +1 TO NumberColumn
INVOKE ExcelReader "GetString" USING BY VALUE NumberColumn RETURNING Percorso
***--> Quinta Colonna: Riga.
ADD +1 TO NumberColumn
INVOKE ExcelReader "GetDouble" USING BY VALUE NumberColumn RETURNING AppoRiga
MOVE AppoRiga TO RigaCol
***--> Sesta Colonna: Colonna.
ADD +1 TO NumberColumn
INVOKE ExcelReader "GetDouble" USING BY VALUE NumberColumn RETURNING AppoCol
MOVE AppoColonna TO ColonnaCol
***--> Settima Colonna: Codice del/la Paragrafo/Section.
ADD +1 TO NumberColumn
INVOKE ExcelReader "GetString" USING BY VALUE NumberColumn RETURNING Codice
***--> Lettura in ciclo.
INVOKE ExcelReader "Read" RETURNING RigheLette
INVOKE RigheLette "ToString" RETURNING Vero
INVOKE CLASS-STRING "Compare" USING BY VALUE Vero BY VALUE "True" RETURNING HoLetto
END-PERFORM.
Dici bene che continuo a leggere righe anche dopo aver raggiunto la fine delle righe contenenti informazioni; in poche parole nella variabile RigheLette che è un Boolean continuo ad avere TRUE anche dopo aver terminato le righe buone per me. Dovrei leggere 3295 righe ed invece continuo a ciclare ad alla 3296esima mi genera eccezione. C'è qualche proprietà che posso utilizzare per far terminare il ciclo?
Grazie,
Ciao\G
luigidibiasi
Profilo
| Guru
1.077
messaggi | Data Invio:
mer 15 ott 2008 - 20:49
No mi spiace non conosco il linguaggio
A cosa ti serve la lettura fuori dal ciclo? Probabilmente quando la effetui sposti il putnatore del record in avanti ma non aggiori la variabile delle
righe già lette ( la mia è una ipotesi )...
dobbiamo aspettare qualcuno che usi il cobol ;)
Luigi Di Biasi
Torna su
Stanze Forum
Elenco Threads
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 !