Re: Str_Copy Befehl Kategorie: Programmierung Basic (von Tobias - 13.03.2020 8:36) | |
Als Antwort auf Re: Str_Copy Befehl von Carlo - 12.03.2020 18:16
| |
> Hallo allseits ! > > Ich bin da schon wieder auf was Seltsames gesto�en .... > Wie schon so oft mit dem IDE für den Mega128. > Bin halt ein bisi spät dran, der Mega128 ist nicht mehr populär ... > > Das Str_Copy verhält sich nicht so, wie es in der Hilfe steht. > > Str_Copy(destination, source , offset) > offset Anzahl der Zeichen, um die der Quellstring, verschoben auf den Zielstring kopiert wird. > > Hat offset den Wert STR_APPEND (ffff Hex), so wird als offset die Länge des Zielstrings angenommen. > In diesem Fall wird der Source String hinter den Destination String kopiert. > > 1) Wenn ich das STR_APPEND als offset einsetze, wird > source an destination angefügt. Soweit so gut ! > 2) Wenn ich 0 als offset einsetze, dann wird ebenfalls > source an destination angefügt. Soweit so nochmals gut ! > 3) Jede andere Zahl als offset ergibt einen leeren destination. <<<<--- Das verstehe ich nicht, > sollte doch mit offset "der Quellstring, verschoben auf den Zielstring kopiert" werden, siehe oben. > > Momentan hab ich das Problem so gelöst, dass ich source auf einen EEprom lade und dann die > gebrauchten Zeichen extra rauslese. > > Danke jedem, der mir weiterhilft. > LG, carlos Hallo Carlos, du schreibst: > 2) Wenn ich 0 als offset einsetze, dann wird ebenfalls > source an destination angefügt. Soweit so nochmals gut ! Das ist aber nicht gut. Mit '0' soll es doch nicht angefügt werden sondern den Destination-String ab Pos. 0 überschreiben. Ich habe mal ein paar Zeilen ausprobiert. Bei mir funktioniert die Funktion wie sie soll: void main(void) { char str_dest[19]; char str_source[10]; byte i; str_source="123456789"; str_dest="abcdefghi"; Msg_WriteText(str_source); Msg_WriteChar(13); Msg_WriteText(str_dest); Msg_WriteChar(13); Msg_WriteChar(13); Msg_WriteText("Offset '0':r"); Str_Copy(str_dest,str_source,0); Msg_WriteText(str_dest); Msg_WriteChar(13); Msg_WriteChar(13); str_source="123456789"; str_dest="abcdefghi"; Msg_WriteText("Offset 'STR_APPEND':r"); Str_Copy(str_dest,str_source,STR_APPEND); Msg_WriteText(str_dest); Msg_WriteChar(13); Msg_WriteChar(13); Msg_WriteText("Offset '0-9':r"); for(i=0;i<10;i++) { str_source="123456789"; str_dest="abcdefghi"; Str_Copy(str_dest,str_source,i); Msg_WriteText(str_dest); Msg_WriteChar(13); } } Als Ausgabe erhalte ich dann: 123456789 abcdefghi Offset '0': 123456789 Offset 'STR_APPEND': abcdefghi123456789 Offset '0-9': 123456789 a123456789 ab123456789 abc123456789 abcd123456789 abcde123456789 abcdef123456789 abcdefg123456789 abcdefgh123456789 abcdefghi123456789 Viele Grü�e, Tobias | |
Antwort schreiben Antworten: Re: Str_Copy Befehl (von Carlo - 13.03.2020 19:23) Re: Str_Copy Befehl (von Tobias - 13.03.2020 10:38) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum