kostenloser Webspace werbefrei: lima-city


Daten speichern

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    nigolaz

    Kostenloser Webspace von nigolaz, auf Homepage erstellen warten

    nigolaz hat kostenlosen Webspace.

    Hallo

    Ich möchte für ein kleines Programm verschiedene Daten speichern.
    Einfach in eine Text-Datei zu schreiben ist mir zu aufwändig.
    Aber es sollte schon eine zweite Datei (neben der *.exe) sein, ich möchte keine Datenbanke installieren müssen.

    Hab's schon mit MySQL probiert, aber da blicke ich nicht ganz durch. Diese Schnittstellen, müssen die auf dem Server installiert sein?

    Ich verlange keine Anleitung, ich suche nur ein paar Stichwörter, wonach ich suchen kann.

    mfg niGOlaz
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Ich vermute, dass es benutzerdefinierte Daten sind (z. B. Fenstergröße, eingestellte Optionen im Programm usw.)

    Da du nur Stichwörter haben wolltest:
    - Konfigurationsdateien ("app.config" für VB .Net, automatische Verwaltung)
    - Registry (einfacher in VB.Net als VB 6, Eigene Schlüssel in HKCU\Software\Mein Programm\ oder in HKLM
    - Vordefinierte Befehle SaveSetting(), GetSetting(), DeleteSetting() in VB.Net und VB 6 (läuft auch über Registry)

    Wenn du doch einen Punkt ausführlicher haben willst, sag Bescheid.

  4. Autor dieses Themas

    nigolaz

    Kostenloser Webspace von nigolaz, auf Homepage erstellen warten

    nigolaz hat kostenlosen Webspace.

    Erst mal danke für die Antwort.


    cbhp schrieb:
    Ich vermute, dass es benutzerdefinierte Daten sind (z. B. Fenstergröße, eingestellte Optionen im Programm usw.)


    Ich spiele in unserer Klasse den Kassier, also Rechnungen bezahlen und so.
    Damit ich für jeden Schüler individuelle Abrechnung machen kann habe ich so eine Exel-Datei bekommen.
    Ich will mir aber zum Spass selber etwas machen.

    Meine bisherige Lösung geht in die Richtung:

    *
    #Datum
    #Datum
    *
    #Datum
    #Datum


    (Datum als Einzahl von Daten)

    mit split() kann ich das ganz gut auseinanderschneiden.
    Viel wichtiger aber bleibt es eine einzelne *.txt Datei, also kann ich die *.exe und die *.txt problemlos mitnehmen
  5. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Ich hab vor kurzer Zeit ein ähnliches Programm geschrieben. Ich habs jetzt auf deine Daten angepasst, vielleicht kannst du es brauchen.
    Hinweis: Die Daten werden im CSV-Format gespeichert. Diese Dateien kann auch Excel lesen und normal darstellen.



    Der Code für den Aufruf der Routine:

    Sub Schueler_Beispiel()

    'Testdatei erstellen
    Dim Sw As New StreamWriter("D:\Datei.csv")
    Sw.WriteLine("Name;Vorname;Beitrag in Euro;Datum")
    Sw.WriteLine("")
    Sw.WriteLine("Maier;Sepp;14,00 Euro;14.12.2006")
    Sw.WriteLine("Muster;Hans;8,00 Euro;20.12.2006")
    Sw.WriteLine("Maler;Martha;10,50 Euro;08.01.2007")
    Sw.Close()

    'Daten aus Datei lesen
    Dim Sr As New StreamReader("D:\Datei.csv")
    Dim Datei As String = Sr.ReadToEnd
    Sr.Close()
    Dim Zeilen() As String = Datei.Replace(vbNewLine, "|").Split("|"c)
    Dim Zeile As String

    Dim MeineKlasse As New AlleSchueler

    For Each Zeile In Zeilen
    Dim Daten() As String = Zeile.Split(";"c)
    If Daten.Length = 4 Then
    MeineKlasse.Add(New EinzelnerSchueler(Daten(0), Daten(1), Daten(2), Daten(3)))
    Else
    'Ungültiger Datensatz
    End If
    Next

    'Achtung: Schueler(0) ist die Überschrift und noch kein Schüler. Deshalb 1 subtrahieren.
    MsgBox("Es sind " & MeineKlasse.Count - 1 & " Schüler eingetragen.")

    If MeineKlasse.Count >= 2 Then
    MsgBox("Der Schüler " & MeineKlasse.Item(1).Name & " " & MeineKlasse.Item(1).Vorname & " hat am " & MeineKlasse.Item(1).Datum & " " & MeineKlasse.Item(1).Beitrag & " gezahlt.")
    End If

    End Sub



    Die einzelnen selbstdeklarierten Klassen bzw. Routinen:

    Class AlleSchueler
    Inherits System.Collections.CollectionBase
    Public Sub Add(ByVal item As EinzelnerSchueler)
    Me.List.Add(item)
    End Sub
    Default Public Property Item(ByVal index As Integer) As EinzelnerSchueler
    Get
    Return CType(Me.List.Item(index), EinzelnerSchueler)
    End Get
    Set(ByVal Value As EinzelnerSchueler)
    Me.List.Item(index) = Value
    End Set
    End Property
    End Class
    Class EinzelnerSchueler
    Public Name As String
    Public Vorname As String
    Public Beitrag As String
    Public Datum As String
    Public Sub New(ByVal _Name As String, ByVal _Vorname As String, ByVal _Beitrag As String, ByVal _Datum As String)
    Name = _Name
    Vorname = _Vorname
    Beitrag = _Beitrag
    Datum = _Datum
    End Sub
    End Class



    Und so sieht zum Beipiel die CSV-Datei aus, wenn man sie mit Notepad öffnet:

    Name;Vorname;Beitrag in Euro;Datum

    Maier;Sepp;14,00 Euro;14.12.2006
    Muster;Hans;8,00 Euro;20.12.2006
    Maler;Martha;10,50 Euro;08.01.2007



    Fertig


  6. Autor dieses Themas

    nigolaz

    Kostenloser Webspace von nigolaz, auf Homepage erstellen warten

    nigolaz hat kostenlosen Webspace.

    Danke vielmals. Besonders das CSV-Format hat mir geholfen.
    Nur Dim Zeilen() As String = Datei.Replace(vbNewLine, '|').Split('|'c) verstehe ich nicht ganz. Wie genau sind die Werte getrennt.

    Werde mir selber mal so etwas zusammenbasteln.


    Dann habe ich mir noch überlegt, wie man mit dem WebBrowser-Steuerelement zu MySQL verbinden könnte. Mit einer Datenbank wäre das ganze praktischer.
    Tipps?

    mfg niGOlaz
  7. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.


    Danke vielmals. Besonders das CSV-Format hat mir geholfen.
    Nur Dim Zeilen() As String = Datei.Replace(vbNewLine, '|').Split('|'c) verstehe ich nicht ganz. Wie genau sind die Werte getrennt.

    Werde mir selber mal so etwas zusammenbasteln.


    Dann habe ich mir noch überlegt, wie man mit dem WebBrowser-Steuerelement zu MySQL verbinden könnte. Mit einer Datenbank wäre das ganze praktischer.
    Tipps?

    mfg niGOlaz


    Erklärung von Dim Zeilen() As String = Datei.Replace(vbNewLine, '|').Split('|'c)

    Das Zeilenwechselzeichen vbNewLine, das für eine neue Zeile in der Datei sorgt, besteht aus zwei Zeichen [Chr(13) + Chr(10)].
    Damit ich jede Zeile einzeln erhalte, verwende ich die .Split()-Methode. Allerdings kann .Split() nur ein Zeichen verarbeiten zum Aufteilen, somit kann ich vbNewLine nicht in .Split() verwenden.
    Trick: Ich ersetze erst alle Zeilenumbrüche durch ein anderes Zeichen. Also .Replace(vbNewLine, "|") ersetzt den Zeilenumbruch durch ein einzelnes Zeichen. Man sollte ein Sonderzeichen verwenden, da dieses sonst nirgends in der Datei vorkommt.
    Anschließend kann man die gesamte Datei in die einzelnen "Zeilen" (die jetzt eigentlich nur noch aus einer Zeile besteht, mit "|" getrennt) zerteilen mit .Split("|")


    Zu MySQL: wird viel zu aufwendig sein, aber hier 2 gute Links zum Nachschauen:
    http://www.microsoft.com/germany/msdn/library/net/adonet/ADOVersusADONET.mspx?mfr=true
    (in der linken Spalte kannst du dann noch mehr auswählen, z.B. Zugriffe etc.)

    http://www.codekabinett.com/page.php?Theme=4&Lang=1
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!