Newsgroup: it.comp.lang.delphi
Titolo: ALLUCINANTE!!! AIUTOOO!

Salve...
Qualcuno puo' dirmi qualche seria ragione per cui un prog. funziona bene da
debug e non come exe???
Veramente sto andando ai matti.
Il prog processa sequenzialmente delle parole e scrive con tfilestream dei
dati in dei file, dei longint (4 byte).
Il problema e' che questo valore quando il prog e' in esecuzione dopo tot
parole processate viene scritto MALE nel senso che invece di scrivere 4 byte
relativi chesso' al valore 100 mi scrive 4 byte relativi ad un valore
tipo -203247832 e alla parola successiva quando si va a leggere quel valore
ovviamente si schianta (perche rappresenta l'offset di un file ed ovviamente
va in stream read error).
Allora mi son detto...forse faccio male il seek...forse leggo male...faccio
da debug step by step...e?....tutto fila liscio...il valore viene scritto
correttamente ed infatti alla parola successiva dove si verifica
puntualmente l'errore non succede nulla e tutto fila liscio!!!!.
L'errore si verifica anche quando lascio il prog girare velocemente dal
debug senza interruzioni ma NON quando gli piazzo il break point per poi
girare nella procedura dove viene letto/scritto il valore step by step a
mano.
Non so che pesci prendere e non so cosa pensare. Mi sento disarmato
Grazie

Ciao!
Ok... forse non troppo allucinante... ma cmq un bel problema...
Se nel debug tutto fila liscio... l'unica cosa che mi viene in mente č che
il compilatore o il debugger stesso possano operare delle
modifiche/conversioni
in automatico a dati che altrimenti (e ne hai la prova col crash) non
sarebbero leggibili.
Gli unici tipi di dati che conosco che potrebbero dare problemi sono PChar e
String...
prova a postare il pezzo di codice che va in crash---
Ciao! Davide  DG

Domanda scema: hai inizializzato le variabili?
Una volta andavo al manicomio poiche in una varibaile di tipo single mi
usciva un valore assurdo che mi sballava tutto.
Mi è basta in testa alla procedure una bella istruzione:
sngMyVar := 0
e tutto è andato a posto.
Forse, se lo esegui da IDE qualcosa lo fa in automatico.
Saluti
AS(Non400!)
"Se è Microsoft non funziona"

"> prova a postare il pezzo di codice che va in crash---
Ciao
E' li il problema il programma va in crash per colpa di un valore che viene
scritto male dall'exe. E' ovvio che va in crash dal memento che invece di
scrivere il valore realtivo all'offset in un file scrive un numero x...la
volta successiva che il prog accede a quel valore che gli serve per fare un
seek in un file va in stream read error...percio' il problema non avviene
realmente quando da l'errore ma accade prima silenziosamente....ma solo via
exe......non so se mi sono spiegato.

Dopo svariate incazzature e ore passate nel debug per assicurarmi che il
codice non avesse errori ho risolto cosi:
var pippo che deve essere scritta nel file
.
.
.la scrivo nel file (qui e dove si verifica l'errore ogni tanto)
.
.
fine della procedura
.
.
acchiappo la var che ho appena scritto, riapro il file, rileggo il valore
appena scritto e se non combacia con quello della var allora RISCRIVO la
var.
COSI ADESSO FUNZIONA
E' MOLTO SPORCO? SI? e chissenefrega! non si possono' perdere i capelli per
4 byte!! :)))
Saluti

Ciao Sem,
perchè non posti il codice di scrittura e lettura ?
Ci deve essere una pecca per forza altrimenti non si spiega un comportamento
simile.
Ciaooo !!!
Antonio Tarolla

prova !!!!!!!!!!!!!!!!!!!!
--
Callegaro Luca
EMail        : Luca_D...@Libero.It
ICQ          : 15825215
Active List : 72728232   UT ITALY