Arbeiten mit CSV Dateien - Tips

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Tommel.

    Arbeiten mit CSV Dateien - Tips

    Hallo,

    ich habe gerade in einem Projekt eine relativ große Excel Datei aufgebaut, bestehend aus mehreren Tabellenblättern, mit nach identischem Schema aufgebauten Daten.
    Diese Excel Datei wird verwendet, um die Daten zu Pflegen.

    Jetzt kam aber noch die Idee auf diese Datei nicht nur zur Pflege, sondern auch zur Recherche zu verwenden. Allerdings würde ich gerne nur möglichst wenige Leute an diese Datei heranlassen. (Ich weiß Excel ist hier nicht das Ideale Tool, aber ich habe es eben so begonnen...)

    Deshalb war jetzt meine Idee, die Tabellenblätter über ein "Freigabe" Makro einzeln als CSV zu exportieren, und einen .net basierten Viewer zu erstellen.

    Meine Frage ist jetzt, wie man in vb.net am besten mit CSV Dateien arbeitet bezüglich Laufzeiten, etc. Wäre es sinnvoll, alle csv Dateien gleich Beim Laden der Oberfläche in arrays zu laden, auf die man dann zugreift, oder sollte ich besser im Hintergrund unsichtbare datagridviews befüllen, oder kann man doch zur Laufzeit auf die Inhalte der CSVs zugreifen?

    Was macht hier am meisten Sinn bezüglich Handling, Programmieraufwand, Laufzeiten, etc. Ich habe hier leider noch keinerlei Erfahrung abgesehen von ein paar Stream Reader Experimenten.

    Bitte teilt eure Erfahrungen mit mir!
    Vielen Dank und Gruß
    Da Du ja nach "Sinn" fragst, dann kann ich Dir nur empfehlen das Konzept jetzt einmal gründlich zu überdenken.
    Du hast ein Selbstgängerprojekt erschaffen, weil es gerade nichts brauchbares gab und bist an Grenzen gestoßen. Dir kommt schon in den Sinn, dass nicht jeder zugriff auf Daten haben soll bzw. wenn, dann sicher nicht mit schreibrechten. Du benötigst Auswertungen und Form von Abfragen, die wieder Listen sind.

    Was Du brauchst ist ein Konzept und kein herumgefrickel am bestehenden Aufbau. Selbst in dem was Du schreibst kommst Du um Datasets nicht herum, was Du aber brauchst ist eine Datenbank und das erste sollte das Konzept zu einem brauchbaren Datenbankmodel sein.
    füllst du diese Excel per Hand oder werden diese Automatisch gefüllt?
    Ich kann dir nur empfehlen das Handling deiner Daten ein bisschen zu überdenken.
    Bearbeite, Erstelle und speichere sie von deiner Anwendung aus und speichere sie dann in eine XML Datei.

    Daten laden, speichern, verarbeiten - einfachste Variante
    die vier Views auf Video
    DatasetOnly: DB-Programmierung ohne Datenbank

    Les dich da mal rein und versuche dein vorhaben als reine Trockenübung ohne echte Daten anzulegen und zu verwalten.
    Das einmalige Laden deiner Daten kann man später noch machen.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.

    Snaptu schrieb:


    Les dich da mal rein und versuche dein vorhaben als reine Trockenübung ohne echte Daten anzulegen und zu verwalten.


    Das sind auf jedem Fall die Grundlagen, der Beschreibung von @Tommel nach benötigt seine Anwendung aber eine Datenbank darunter, denn Mehrplatzfähig sind die wirklich guten Tutorials so nicht. Es sind eben Tutorials die wichtig für den richtigen Aufbau sind, der Unterbau spielt dabei (noch) keine Rolle. Das sehe ich bei @Tommel aber anders.
    Wohl wahr :)

    Ich bezog mich aber nicht auf die Datenmenge sondern auf die Anzahl deren, die gleichzeitig Zugriff auf die Daten haben (schreibend!).
    Kann er die Anzahl auf "eins" begrenzen, dann braucht er definitiv keine Datenbank, Dataset.WriteXml reicht da sicher völlig aus, selbst für Tabellen von ein paar 100 Tsd Daten wie bei einfachen Dealer Management Systemen.

    Es ändert ja auch nichts daran, dass er ein Konzept benötigt und die Grundlagen zum lesen hast Du ihm ja auch gegeben. Eine Datenbank, wenn nötig, da drunter zu packen ist dann auch nicht mehr das Problem.
    Hi,

    vielen Dank schonmal für eure Antworten.
    Mir ist schon klar, dass ein sauberes Konzept eigentlich eine Datenbank wäre.
    Die "relative Größe" der Datei ist im Moment tatsächlich noch sehr überschaubar, wird aber wachsen, wenn auch nicht gigantisch. Schließlich werden alle Daten manuell eingetragen, nicht automatisch und im Grunde genommen nur von einer Person.

    Im Prinzip kann die Datei schon alles was sie können soll. (User bei der Dateneingabe unterstützen und PDF Kataloge ausleiten)

    Jetzt kam eben noch die Idee auf, die Tabellen als Recherchetool zur Verfügung zu stellen. Da ich aber nicht allen die Datei zur Verfügung stellen wollte, war es meine Idee eine Applikation mit separaten Datenquellen zu erstellen, die ebenfalls aus der Excel Tabelle ausgeleitet werden, wenn ein Katalog ausgeleitet wird. Das ganze sollte mit dem gerinstmöglichen Aufwand umgesett werden, weshalb ich an CSV gedacht habe.

    Ich werde mir aber mal die Links zu Gemüte führen.

    Gruß Tommel
    Würdest du jetzt eine Art Viewer bauen in .NET der dem User nur eine Übsicht der Daten liefert hättest du glaube ich Zugriffprobleme wenn die Datei von mehreren Benutzern gleichzeitig geöffnet wird. (bin mir da leider nicht sicher) Im Prinzip müsstest du garnicht als .CSV exportieren sondern könntest die Excel Datei auslesen beim öffnen des Viewers, diese müsste natürlich irgendwo frei zugänglich sein also auf einem Netzlaufwerk liegen.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    Hallo zusammen,

    nochmals vielen Dank für die Hinweise. Ich habe mich mal etwas weiter eingearbeitet und werde den Weg jetzt so gehen, dass ich für den Viewer ein xml File erzeuge, das ich dort dann einlesen kann.

    So bin ich zumindest auf der Seite des Viewers, den ich gerade erstelle einigermaßen sauber.

    Gruß Tommel