String inneholder chr(0). Ufrivillig terminering. Hvordan kan man unngå de...

Tags:    delphi

Hei. Jeg er en Norsk amatør innen Delphi, og har et problem.

Jeg holder på å utvikle en OPC server som mottar data fra en Atmel micro controller. Sending av informasjon skjer seriellt via RS-232. Her blir informasjon sendt som ascii characters.

Mitt problem er som følger:

Micro controlleren sender chr(0), og da få jeg Access violation på grunn av Delphi tolker dette som et terminerings tegn av string som data lagres i.

Problemet oppstår når jeg benytter peker: Pchar og string scan

Hvordan kan jeg få delphi til og overse chr(0)?




Inden du sætter det i databasen:
chr(1) -> chr(1)+chr(2)
chr(0) -> chr(1)+chr(3)
Når du har hentet det:
chr(1)+chr(3) -> chr(0)
chr(1)+chr(2) -> chr(1)

F.eks.:
Hentes: "0131210131"
->
012312212012312
->
Smides i access: "13123122121312312"
Hentes fra access: "13123122121312312"
->
012312212012312
->
Udskrives til brugeren: "0131210131"



Jeg plejer at bruge et array[1..1024] of char når jeg læser fra seriel porten. Ved så at se hvor mange bytes jeg får ved jeg hvor lang strengen er for netop at undgå streng terminatorere



t