Op 1 oktober 2003 09:10:50 schreef Antoine:
[...]
Ik heb naast e-train ook nog gewoon werk, en daar ben ik er mee bezig

Dus wij zorgen nou eigenlijk voor jouw centjes?! :D ;)

Bastiaan

Wel on topic blijven he ? ;)

Nee, je zorgt voor de baas zijn centjes ;), overigens werkt alles nu zoals het moet, dus geef je rekening nummer maar, dan stort ik het er wel bij :P LOL

Ik krijg mijn centjes toch wel :D +)

Groeten
Antoine

Jaja, daar was ik weer.

Ik zit intussen met een probleem, ik krijg een seriele string binnen en die wordt nu perfect vertaald naar UDP en vice versa. Echter als er in die string het karakter met ASCII waarde 0x00 zit dan gaat het fout. Vermoedelijk omdat dat C die 0x00 als NULL karakter ziet. Ik krijg dus de verstuurde string t/m het 0x00 maar daarna niet meer :(. Kan ik dit omzijlen ?

Dit gebeurd dus waarschijnlijk met het strncpy commando

Alvast bedankt
Antoine

strncpy stopt zodra een 0 in de source wordt bereikt. Dus geen strncpy gebruiken of zorgen dat er geen 0 in staat.

Da's overigens wel logisch omdat alle string bewerkings functies in ANSI C betrekking hebben op 'null terminated strings'...

O ja, vergeet ik nog wat. Je kan misschien beter memcpy gebruiken, die struikelt niet over een nullll.

[Bericht gewijzigd door menno op ]

memcpy werkt hetzelfde als strncpy ?

Prototype:


void *memcpy(void *dest, const void *src, size_t n);

Die werkt dus hetzelfde ja, en die kopieert ook NULL bytes.

Maar hoe kom jij aan strings met een NULL-byte? Waarschijnlijk zijn het geen C-strings, maar ruwe data.

Op 8 oktober 2003 19:08:34 schreef Antoine:
memcpy werkt hetzelfde als strncpy ?

Komop he, wel eens van F1 gehoord? ;)

Op 8 oktober 2003 21:35:07 schreef Bastiaan:

[...]

Komop he, wel eens van F1 gehoord? ;)

Bastiaan,

Ja dat heb ik, en als ik daaruit ook maar IETS kon vinden had ik het hier niet gepost ;). Probleem is dat de help bestanden van Dynamic C er van uit gaan dat je C kent..... en die hebben dus geen uitleg over de C taal zelf. Ik heb ook in mijn studieboek gekeken, maar zoals altijd staat alles erin behalve wat je nodig hebt :)

Op 8 oktober 2003 19:17:58 schreef Jeroen Koeter:
Prototype:


void *memcpy(void *dest, const void *src, size_t n);

Die werkt dus hetzelfde ja, en die kopieert ook NULL bytes.

Maar hoe kom jij aan strings met een NULL-byte? Waarschijnlijk zijn het geen C-strings, maar ruwe data.

Klopt keihard ruwe data die terug komt van een serie ingangen, echter het komt voor dat alle ingangen 0 zijn, en dan heb ik dus een 0x00 oftewel NULL character.

Ik vond het al knap van mezelf dat ik de fout in het C programma had gevonden, oplossen is een ander verhaal *haha*

Op 8 oktober 2003 22:03:02 schreef Antoine:
Ik heb ook in mijn studieboek gekeken, maar zoals altijd staat alles erin behalve wat je nodig hebt :)

Het standaardwerk is "The C Programming Language" van Kernighan & Ritchie, ISBN 0-13-110362-8. Zou ik maar voor m'n verjaardag vragen als ik jou was.

Hmm, heb het zojuist geprobeerd, maar hij breekt de string nog steeds af ???

Vreemd...

Hoe heb je de poort ingesteld? Ziet die een null-karakter misschien als een soort van scheidingsteken? Soms kan je zoiets instellen (meestal met COM-poorten).

[edit]
Ik heb even in de Dynamic C handleiding gekeken, en het lijkt er niet op dat er zo'n schedingsteken gebruikt wordt.
Post eens (een stuk van) je code, dan kunnen we even meekijken...
[/edit]

[Bericht gewijzigd door Jeroen Koeter op ]

Jeroen daar zat ik ook aan te denken, ik kan er nu even niet bij :), maar ik zal even kijken of ik dat eigenlijk wel mag :s dat is nog niet zeker namelijk...