Hallo,
Mit der do While schleife lese ich eine Datei von der SD-Card in einen
puffer(site_puffer)ein.
Dieser ist aber nur 1500 byte gross, meine Datei aber grösser.
Meine überlegung ist erstmal count_a bis 1499 in den puffer zuschreiben
und dann zusenden, dann count_a wieder auf null setzen und weiter in den
puffer schreiben bis mein Ende zeichen kommt.
aber irgendwie haut das mit meiner if else abfrage nicht hin.
könnte mir da einer weiterhelfen
mfg
1
staticcharsite_puffer[1500];
2
3
do
4
{
5
res=f_read(&fsrc,&by,1,&br);// Daten lesen
6
//site_puffer[count_a]=by;
7
count_a++;
8
9
//ist count_a = 1499 dann erstmal die daten senden
Andreas Schweigstill schrieb:> Und Du meinst, dass irgendjemand Lust hat, sich Deinen> hingerotzten> Quellcode näher anzuschauen, wenn nicht einmal die Einrückungen stimmen?
ich habe Höflichst gefragt.
Und solch eine Aussage ist ja wohl unterstes Niveau
junge junge
andy schrieb:> ich habe Höflichst gefragt.
In der deutschen Sprache wird eine Frage mit einem Fragezeichen
abgeschlossen. Das hast Du nicht getan.
Und "aber irgendwie haut das mit meiner if else abfrage nicht hin." ist
keine angemessene Fehlerbeschreibung.
hast Du mal in einem C Forum gefragt?
Da gibt es meist brauchbare Antworten oder im Roboternetz.de
Wenn Du glück hasst, weist Dich jemand auf Tippfehler hin :-) und auf
unkorrektes Deutsch lol
Hallo Andy, was verstehst du an dem copy&paste-code nicht?
Von dir ist er ja wohl nicht.
Also: Problem beschreiben, Fragen stellen -> Antworten erhalten.
andy schrieb:> ich habe Höflichst gefragt.> Und solch eine Aussage ist ja wohl unterstes Niveau> junge junge
Er hat aber Recht.
Vielleicht gefällt dir der Ton nicht, aber inhaltlich gibt es nichts zu
meckern - wenn dir jemand helfen soll, kann man wenigstens lesbaren
Quelltext und eine ordentliche Beschreibung verlangen.
a) sicher stellen, dass count_a mit 0 initialisiert ist
b) die von dir auskommentierte Stelle für "site_puffer[count_a] = by;"
war schon richtig. Du willst ja den Buffer ab Index 0 füllen.
c) ich nehme stark an, du willst auch den Rest der Datei, der nach einem
Vielfachen von 1499 bytes gelesen wurde abschicken -> "if ((count_a ==
1499) || (by == '%'))"
d) Ein String wird in C üblicherweise mit einem Nullbyte terminiert.
Dies fehlt bei dir.
also so sollte es gehen:
1
staticcharsite_puffer[1500];
2
3
count_a=0;
4
5
do
6
{
7
res=f_read(&fsrc,&by,1,&br);// Daten lesen
8
site_puffer[count_a]=by;
9
count_a++;
10
11
// ist count_a = 1499 oder das Ende der Datei erreicht, Daten senden
Steht das '%' eigentlich wirklich mitten im File, oder ist das das
letzte Zeichen im File und du nimmst das als Hilfskonstruktion, weil du
nicht wusstest, wie man das Ende des Files erkennt?
Wenn du das gesamte File übertragen willst, wirds natürlich einfacher.
Dann kannst du dir die Suche nach dem '%' komplett sparen.