Update: I posted it first to the wrong list [sbs] and got no answer.
After playing around the last three day, I thought I found the problem: 
getpid()
but after deleting the the debug-code I have the same problem: 
concatenation of strings doesn't work. 
the same code gives different results (I run memtest86 for 24 hours without 
problems)



Hi All

I am fighting for a week now with a problem: 
a variable in a BASIC program is changing itself.

I work with Universe 9.6 on Windows XP

I read a file, change the Field delimiter for each record and add it to an 
other 
variable und 
write this over a socket to another computer if the length is over 1024.

The Important parts is after opening a file, doing a SELECT and reading the 
SelectList as 
idList
For I =1 TO RecCount
  ImportID = idList(I)
  READ ImportRec FROM aFile, ImportID

  tResult=CHAR(19) : ImportID : @IM : CHANGE( ImportRec, @AM, @IM, 
0, 1)

  rResult := tResult

  IF LEN(rResult) > 1024 THEN
    GOSUB SendResult:
    rResult = ''
  END
NEXT I

So far so good: With nearly all if my files it is working perfect (45000 Record 
with 450 Fields, 
or 200000 Records with 60 Fields ). The biggest chunk is 600kByte ( this 
database is not my 
own development and I can't change it)

Now to the problem: A small file with 512 Records and 42 Fields is making 
my troubles.
On the first run I get at least 2 faulty records (up to 10). If I survive this 
problems, I can read it 
50 times over and over without any problems.

For Debuging I write out with CRT: the ImportRec and the tResult and for 
safety I made a 
tmpVariable with the same formular as tResult and compare both:

[EMAIL PROTECTED]
[EMAIL PROTECTED]

For example:ImportID=1162
ImportRec
Dicht. Puchmotor~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~DE

tmpVariable:
1162Dicht. PuchmotorDE

tResult: 
Dict. PuchmotorDE62116


or another example: ImportID=2471

ImportRec
Differential~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~DE 

tmpVariable: next 2 lines are one line
24712471Differential

tResult:
2471DifferentialDE

most of the time it hits the same record, but sometimes total others. 
If the program survives this first round, I can run it endless without any 
problem.
If it is crashing, it gives me a memory error at 0x000801a4 or 0xffffffff or 
0x000c01da, 
everytime with the instruction from 0x7c92103c.

Oh I forgot to mention: it is a phantom, after the crash the pid in Windows is 
gone, but 
Universe has it still in LISTU and I can LOGOUT the pid.

I changed the motherboard and the Ram to be sure to avoid a faulty memory 
or chipset 
errors.

Another fun: if I change the sequence of the CRT commands I get a 
different output:
once I tried to calculate tResult bevor I printed the ImprtRec and found 
ImportRec with an 
extra letter in the middle and the length was exacty as it should be (the last 
byte was missing)
Sometimes the tResult is filled with CHAR(19) : ImportID : @IM (up to the 
real length)
Another: all the variables are Ok, but rResult gets a different tResult added

The faulty records can be everywhere, but I never had it at the beginning, 
the two examples 
are: 19 (the 3th after the SendResult) and 360 (the first after SendResult) 
out of 512

Does anyone has a glue what is happening with this program?


-- 
Mani
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to