Pages: [1]   Go Down
Author Topic: Inhalt der SD-Karte sortiert anzeigen  (Read 622 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 3
Posts: 112
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
ich verwende die "normale" SD library und habe bei mir im Webserversketch eine Funktion drin, welche den Inhalt der SD-Karte ausliest und die Dateinamen auf einer Webseite in einem Auswahlfeld anzeigt, so dass der Anwender dann eine der Dateien auswählen kann.

Das lesen des SD-Inhaltes habe ich vom Beispielsketch "SD --> listfiles" aus der IDE.

Leider werden damit die Dateinamen nicht alphabetisch sortiert ausgelesen.
Zuerst hatte ich die Dateinamen in ein array gelesen ,dann sortiert und in die html-Datei geschrieben, aber jetzt muß ich den Speicherplatz sparen.

Gibt es hier noch einen Trick dafür, die Dateien gleich sortiert von der SD-Karte auszulesen?

Viele Grüße, paulinchen
Logged

Offline Offline
Full Member
***
Karma: 2
Posts: 105
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey,

OT//
verwendest du den ethernet shield? Wie regelst du das, dass nur ethernet oder sdcard einzeln geht? Würde mich über den code zum nachvollziehen oder sowas freuen smiley
Logged

Germany S-H
Offline Offline
Faraday Member
**
Karma: 146
Posts: 3040
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gibt es hier noch einen Trick dafür, die Dateien gleich sortiert von der SD-Karte auszulesen?

Die Dateien werden üblicherweise in der Reihenfolge ausgelesen, in der sie in die FAT-Tabelle reingeschrieben wurden.

Wenn Du eine bestimmte Sortierfolge bei der Ausgabe der Dateien möchtest, brauchst Du im allgemeinen nur die Karte frisch zu formatieren und die Dateien dann in genau der Reihenfolge auf die Karte zu kopieren, in der die Reihenfolge später ausgegeben werden soll.

Ansonsten: Webclients mit Webbrowser haben egal ob PC oder Smartphone immer ein mehrhundertfaches an Rechenleistung und RAM-Speicher wie Dein Arduino. Also lass die Liste einfach unsortiert ausgeben und wenn sie tatsächlich sortiert benötigt wird, lass den Client die Liste sortieren, z.B. per Javascript oder mit anderem clientseitigem Scripting im Browser.
Logged

Offline Offline
Full Member
***
Karma: 3
Posts: 112
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Also lass die Liste einfach unsortiert ausgeben und wenn sie tatsächlich sortiert benötigt wird, lass den Client die Liste sortieren, z.B. per Javascript oder mit anderem clientseitigem Scripting im Browser.

Hallo jurs,
Du bist mein Held!  smiley-cool

Auf diese Idee bin ich gar nicht gekommen! Ich lese die Dateien sowieso in ein "Blindfeld" ein und zeige dann per javascript nur bestimmte Dateitypen an, da kann ich diese ja gleich noch mit sortieren! Gibt ja "array.sort()".
Naja, oft will man einfach alles alleine mit dem Arduino machen...

Viele Grüße, paulinchen
Logged

Offline Offline
Full Member
***
Karma: 3
Posts: 112
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Dertester:

Was meinst Du denn damit?

Ich will z.Bsp. eine Datei von der SD-Karte an den Webbrowser (=Client) ausgeben:

- Datei auf SD-Karte öffnen
- 1. Zeile der html-Datei in einen Buffer lesen
- Zeile per "client.write(buffer)" an den Browser senden
- nächste Zeile der html-Datei lesen
- Zeile per "client.write(buffer)" an den Browser senden
usw.
- Datei auf SD-Karte schliessen

Wo ist dabei das Problem? Alles geht immer schön nach einander.

Viele Grüße, paulinchen
Logged

Wien
Offline Offline
Edison Member
*
Karma: 28
Posts: 1895
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

@dertester,
ethernet und sd verwenden zwar die gleichen pins, aber über cable-select (pin4 und 10, glaube ich) wird ausgewählt, was gerade benutzt werden soll. bin mir nicht sicher, aber das machen die libraries alleine, Du mußt nur schauen, daß nicht beide gleichzeitig arbeiten wollen.

gruß stefan
Logged

Pages: [1]   Go Up
Jump to: