Daten einer CSV Datei einlesen, bearbeiten und speichern

  • 10 Antworten
  • Letztes Antwortdatum
A

AlexOB

Neues Mitglied
0
Hallo zusammen,

ich habe gerade erst mit der Android-Appentwicklung angefangen und stehe vor dem folgenden Problem. Ich habe eine CSV Datei auf einem Server liegen. Die darin befindlichen Daten möchte ich gerne in einer Android App einlesen, bearbeiten und speichern. Sprich ich habe zum Beispiel die folgenden Spalten:

  1. Artikel
  2. Bezeichnung
  3. Standort
  4. Anzahl
Über ein Suchfeld möchte ich den Artikel filtern und anschließend die Anzahl des vorhandenen Artikels eintragen. Über den Button "Speichern" sollen die Daten dann in der CSV-Datei übernommen werden. Am besten wäre zudem, wenn der Appnutzer die CSV-Datei nicht erst runterladen, aktualisieren und wieder hochladen muss, sondern die Schritte direkt auf dem Server vollzogen werden. Ich hoffe das Beschriebene ist einigermaßen verständlich.

Meine Frage wäre nun, ob das Ganze so überhaupt umsetzbar ist und wenn ja, ob jemand mir eventuell ein paar Denkanstöße geben könnte, die mir bei der Umsetzung helfen. Ich habe bereits sehr viel Recherche betrieben aber bisher bin ich zu keinem wirklichen Ergebnis gekommen.

Beste Grüße,

Alex
 
Ich entwickle zwar keine Apps, und bin wenn dann ein absoluter Programmieranfänger, aber, ich könnte mir vorstellen, dass deine Frage anhand der gegebenen Info schwer zu beantworten sein wird. Ich z.B. verstehe nicht, was diese App machen soll, wie auf den Server (welcher Server eigentlich?) zugegriffen wird, und ob die App den Inhalt der CSV anzeigt. Von daher wäre es sicher hilfreich, wenn du die Problemstellung genauer beschreiben würdest, auch, was diese App denn überhaupt genau tun soll.
 
Zuletzt bearbeitet:
Die App soll für die Inventur genutzt werden. Das heißt ich habe eine CSV Datei mit allen Produktdaten und Mengenangaben. Diese Datei liegt auf einem lokalen Server. Mit der App möchte ich auf die Datei zugreifen und die die Menge entsprechend der Zählung ändern.
 
Ich würde hier sicher nicht zu einer csv Datei greifen die auf einem Server gehalten wird.

Für das was du willst ist eine DB auf einen Server mit Backend API. Wohl sinnvoller.
 
  • Danke
Reaktionen: Wald-Otto
Frage arbeitet nur du ein User mit der App und somit mit der Datei. Oder mehrere zur gleichen Zeit?

Wenn mehr brauchst du auf dem Server eine Versionskontrolle. Die entscheidet welche Daten die neusten sind. Wenn zwei User die Datei zur gleichen Zeit verändern.

Diese Logik sollte der Server Übernehmen. Nicht die App die zeigt dann immer nur aktuelle Daten an und sendet neue Daten. Speichern und ändern der Daten sollte der Server machen.



Ob das mit der CSV Datei überhaupt der richte weg ist?

Es wird doch wohl so sein das die CSV aus einer Datenbank erstellt wird um zb in der Nacht mit einer anderen Datenbank einen Datenabgleichh zu fahren.

Wenn du jetzt einfach die Csv selber änderst dann weis die DB des Produktionsserver nichts davon . Somit ist die Produktion DB nicht gleich mit dem Host System (wahrscheinlich Warenwirtschafts System) nach dem abgleich. Ist sicherlich nicht das was du willst.
 
Zuletzt bearbeitet:
@AlexOB

Dein Konzept berücksichtigt nicht einen gemeinsamen Zeitpunkt der Bearbeitung.

Ich muss @jogimuc daher Beipflichten - Auf einem Server eine CSV zu bearbeiten ( schliesslich eine reine ASCII) ist recht tödlich.
Du kannst schlichtweg nicht sicherstellen, dass kein gemeinsamer Zugriff auf das Filesystem erfolgt.
Darüber hinaus hast du ein unendliches Parsing, welches die größte Unsicherheitsquelle darstellt.
Deine Daten werden recht schnell schon ins Nirwana verschwinden

Und das ist erst einmal völlig unabhängig , wer den Server nun über welche Plattform ansteuert.

Bastel dir auf dem Server eine ordentliche REST Schnittstelle (z.B. mit JSON) , bediene damit eine SQL und erstelle dir auf dem Server dann Deine CSV in einem Batchlauf für die weitere Verarbeitung.

Auf Client-Seite gilt das Gleiche :

a)
JSON vom Server einlesen, temporär dann in eine SQlite, Bearbeiten über REST/ JSON zurückschicken .

- oder -

b) - Das wäre Standard :
Eine REST-Schnittstelle direkt zur DB auf dem Server und Datensätze sperren die gerade bearbeitet werden .
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Wald-Otto
Ich würde ein Web-Frontend bauen, an dem man sich mit dem Browser anmelden kann.

Dann ein ordentliches PHP-Backend zur Benutzerauthentifizierung und Datenmanipulation.

Man braucht nicht für jeden Sch**ß eine "App".
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: jogimuc und swa00
@Wald-Otto
Wer verwendet denn heute noch PHP ? :)
Da würde ich doch zu Besserem greifen und nicht etwas, was deprecated ist :)

Aber Recht hast du schon ..... Kann er auch auf einem Frontend lösen
 
Ok, ich gebe zu, dass der SOAP-Server unseres Produkts mit C++ geschrieben ist, aber für so eine Anwendung, wie sie der Threadersteller geplant hat, ist PHP mehr als ausreichend. 🫣
 
Moin zusammen,

erstmal danke für die ganzen Rückmeldungen. Ich habe jetzt angefangen das Vorhaben wie von @swa00 vorgeschlagen zu lösen. Derzeit bin ich soweit gekommen, dass der Bentutzer der App sich registrieren kann. Beim Login werden die Daten dann wieder aus der SQL Datenbank abgerufen. Die Inventurdaten stehen jetzt ebenfalls in einer SQL-Datei zur verfügungund können per List-View in der App angezeigt werden. Als nächstes versuche ich, speziell den aus dem ListView ausgewählten Artikel bzw. dessen Daten zu aktualisieren. Hierbei hänge ich noch etwas fest. Für weitere Anreize zur Lösung dieses Problems wäre ich euch dankbar.

@Wald-Otto
Es braucht nicht für alles eine App, jedoch erscheint es uns einfacher, wenn jeder Zähler eine App statt den Browser auf seinem Handy benutzt während er durchs Lager läuft.
 
speziell den aus dem ListView ausgewählten Artikel bzw. dessen Daten zu aktualisieren

RecyclerView - nicht ListView (deprecated)
 
Zuletzt bearbeitet:

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
5
Aufrufe
516
swa00
swa00
H
Antworten
2
Aufrufe
1.671
Hcman
H
D
Antworten
4
Aufrufe
270
Appento
Appento
Zurück
Oben Unten