Forum: Mikrocontroller und Digitale Elektronik String leeren


von Alain (Gast)


Lesenswert?

hallo
ich habe ein Buffer so deklariert:
char Buffer[3][50], danach auch dem Display anzeigen lassen.
Buffer[0][]
Buffer[1][]
Buffer[2][]

wie  kann ich die buffer leerer damit ich nicht nochmal den gleichen 
alten Inhalt angezeigt bekomme?

danke

von Falk (Gast)


Lesenswert?

In einer Schleife in alle Elemente ein Leerzeichen schreiben?

MFG
Falk

von irgendein Rahul (Gast)


Lesenswert?

Buffer[0][0] = "\0";
Buffer[1][0] = "\0";
Buffer[2][0] = "\0";

Dann muß deine Anzeigenausgaberoutine nur "\0" als Stringende erkennen 
und die Ausgabe abbrechen.
Also erst nachgucken, ob was anderes als "\0" ausgegeben werden soll und 
das gegebenenfalls ausgeben.

von Alain (Gast)


Lesenswert?

so habe ich es versucht aber klappt nicht: da ich den Buffer mit 50 
initialisiert habe.

for(i=0;i<50;i++)
{
Buffer[0][i] = ' ';
Buffer[1][i] = ' ';
Buffer[2][i] = ' ';
}

von irgendein Rahul (Gast)


Lesenswert?

>char Buffer[3][50];

Versuch es mal mit
unsigned char Buffer[3][50];

von irgendein Rahul (Gast)


Lesenswert?

>so habe ich es versucht aber klappt nicht

Irgendwie muß deine Ausgaberoutine ja merken, dass der Stroíng zuende 
oder leer ist.
Wie macht sie das?

von Alain (Gast)


Lesenswert?

vor der ausgabe habe ich immer mit '\0' das string beendet, ich versuch 
erstmal mit unsigned

von Alain (Gast)


Lesenswert?

wenn ich 'hallo word' löschen will, dann ergibt sich das:
' a l  w r '.

von irgendein Rahul (Gast)


Lesenswert?

>wenn ich 'hallo word' löschen will, dann ergibt sich das:
>' a l  w r '

In welcher Version? Mit '\0' oder mit ' '?
Wenn du die Zeile wieder komplett ausgeben willst, ohne dass da 
irgendwelcher Text drinsteht, solltest du Leerzeichen in den String 
schreiben.
Ich vermute, dein Problem liegt im Bereich der Ausgaberoutine.
Poste doch mal deinen Code!

von Alain (Gast)


Lesenswert?

for(;;)
{
... hier kommt ein While schliefe... neues Zeichen!! ja!
{
Buffer[Next] = RXBUF1;
Next++;
}
Buffer[Next] = '\0';
...
...hier wird auf dem Display angezeigt.

das ganze funktioniert soweit gut.

...und nun möchte ich den Buffer ausleeren.

}

von irgendein Rahul (Gast)


Lesenswert?

Wie die Daten in deinen Puffer kommen ist (mir) relativ egal.

>wenn ich 'hallo word' löschen will, dann ergibt sich das:
>' a l  w r '

Wie sieht denn dein Löschvorgang aus? (Ist das der von oben?)
Wie sieht deine Ausgabe-Routine aus? (Oder ist das geheim? In diesem 
Fall sollte man sich aber überlegen, ob man überhaupt in einem Forum 
nach Hilfe fragen sollte...)

von Peter D. (peda)


Lesenswert?

Jau, wieder mal ne hübsche Raterunde hier.

Wie findet man Fehler im Code ohne den Code ?


Peter

von irgendein Rahul (Gast)


Lesenswert?

>Wie findet man Fehler im Code ohne den Code ?

Kristall-Kugel?
Selber schreiben, bis der Fehler auftritt...

von kolrabi (Gast)


Lesenswert?

> char Buffer[3][50]

> wie  kann ich die buffer leerer damit ich nicht nochmal den gleichen
> alten Inhalt angezeigt bekomme?

memset(Buffer, 0, sizeof(Buffer));

von Alain (Gast)


Lesenswert?

leute wenn man kein bock hat zu antworten dann nicht. aber bitte kein 
kritik.

von Freddy (Gast)


Lesenswert?

Hier einen einfache Lösung.

#include <string.h>

int main(void)
{
char Buffer[3][50];
Buffer[0][0]='A';
Buffer[1][0]='B';
Buffer[2][49]='C';


memset(&Buffer,0,150);

return 0;

MfG

von Freddy (Gast)


Lesenswert?

Ooops, kohlrabi war schneller

von irgendein Rahul (Gast)


Lesenswert?

>leute wenn man kein bock hat zu antworten dann nicht. aber bitte kein
>kritik.

Was hilft es dir, wenn du eine Frage stellst, auf die niemand antwortet 
bzw. keine vernünftige Antwort geben kann, weil ihm gewisse Dinge zwecks 
Fehleranalyse fehlen?

Bis jetzt war das, was von dir kam nur etwas, wo man raten konnte.
Entweder postest du mal vernünftige Code-Fragmente, oder dir wird 
niemand helfen (können).
Jammern hilft da überhaupt nicht.
Deine ursprüngliche Frage wurde inzwischen mehrfach beantwortet. Da aber 
immer noch ein Fehler auftritt, wird das Problem an einer anderen Stelle 
sitzen.

von Peter D. (peda)


Lesenswert?

Alain wrote:
> leute wenn man kein bock hat zu antworten dann nicht. aber bitte kein
> kritik.


Wenn Du keine Hinweise auf die Fehlerquelle (sitzt in diesem Fall vor 
Deinem Bildschirm) verträgst, bitte.


Es ist ja Dein Bier, wenn Du Dein Problem nicht gelöst haben willst.


Peter

von Alain (Gast)


Lesenswert?

danke Freddy,
es hat wirklich funktioniert und der Buffer ist leer.


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.